我們使用Start-Transcript
和Stop-Transcript
來記錄PowerShell腳本的輸出。
腳本正在執行應用程序的安裝,因此如果遇到任何錯誤,我們還會使用$ErrorActionPreference = "Stop"
來停止執行。
這樣做的問題是如果發生錯誤,轉錄本會在錯誤輸出到控制檯之前停止。這意味着錯誤不會包含在我們的日誌文件中。這個擁有真實的,即使我們使用try...finally
如下:從運行此腳本
Start-Transcript "$(Split-Path $MyInvocation.MyCommand.Path -Leaf)-$((Get-Date).toUniversalTime().ToString('yyyy-MM-ddTHH-mm-ss')).log"
$ErrorActionPreference = "Stop"
try
{
Write-Host "various things happening"
Write-Error "an error"
}
finally
{
Stop-Transcript
}
控制檯輸出爲:
E:\> .\Testing.ps1
Transcript started, output file is Testing.ps1-2013-02-18T11-39-27.log
various things happening
Transcript stopped, output file is ...
Write-Error : an error
At ...
我們可以做些什麼,以確保該錯誤消息被包括在日誌中?