我有一个被称为某种方式的脚本,我无法改变它。 我想将错误消息从整个脚本重定向到文件。这是如何工作的?
我这样做了,除了错误完全消失之外,这是有效的:
$ErrorActionPreference="SilentlyContinue"
Start-Transcript -path C:\output.txt -append
write-host "test"
some nonsence that creates as error
Stop-Transcript
由于
答案 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