将错误输出重定向到脚本中的文件

时间:2014-10-22 10:11:22

标签: powershell error-handling

我有一个被称为某种方式的脚本,我无法改变它。 我想将错误消息从整个脚本重定向到文件。这是如何工作的?

我这样做了,除了错误完全消失之外,这是有效的:

$ErrorActionPreference="SilentlyContinue"
Start-Transcript -path C:\output.txt -append

write-host "test"

some nonsence that creates as error

Stop-Transcript

由于

3 个答案:

答案 0 :(得分:2)

这对你有用吗?

try{
    # your code goes here
}
catch{
    $exception = $_.Exception.Message
    Out-File -FilePath 'c:\myscript.log' -Append -InputObject $exception
}

答案 1 :(得分:0)

之前我需要这样的东西,但我可以改变文件的调用方式等。

如果通过arco444从命令行启动,您可以使用以下内容将所有内容传输到一个文件:

PowerShell.exe -Command "& {c:\myscript.ps1}" > c:\myscript.log

答案 2 :(得分:0)

注意使用Start-Transcript。您可能会收到以下错误:

Start-Transcript : This host does not support transcription.
At D:\Apps\TranscriptTest\TranscriptTest.ps1:3 char:1
+ Start-Transcript -Path Log.txt -Append
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotImplemented: (:) [Start-Transcript], PSNotSupportedException
    + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.StartTranscriptCommand