我有一个PowerShell脚本,我想将输出重定向到一个文件。问题是我不能改变这个脚本的调用方式。所以我不能:
.\MyScript.ps1 > output.txt
如何重定向PowerShell脚本执行期间的输出?
我有一个PowerShell脚本,我想将输出重定向到一个文件。问题是我不能改变这个脚本的调用方式。所以我不能:
.\MyScript.ps1 > output.txt
如何重定向PowerShell脚本执行期间的输出?
当前回答
我认为你可以修改MyScript.ps1。然后试着像这样改变它:
$(
Here is your current script
) *>&1 > output.txt
我刚刚用PowerShell 3试了一下。你可以像内森·哈特利的回答一样使用所有的重定向选项。
其他回答
也许Start-Transcript对你有用。如果它已经在运行,首先停止它,然后启动它,完成时停止它。
$ErrorActionPreference="SilentlyContinue" Stop-Transcript | out-null $ErrorActionPreference = "Continue" Start-Transcript -path C:\output.txt -append # Do some stuff Stop-Transcript
你也可以让它在工作时运行,并让它保存你的命令行会话以供以后参考。
如果你想在试图停止一个没有转录的转录时完全抑制错误,你可以这样做:
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue" # or "Stop"
Use:
Write "Stuff to write" | Out-File Outputfile.txt -Append
要在你的脚本中嵌入它,你可以这样做:
Write-Output $server.name | Out-File '(Your Path)\Servers.txt' -Append
这样应该可以了。
我认为你可以修改MyScript.ps1。然后试着像这样改变它:
$(
Here is your current script
) *>&1 > output.txt
我刚刚用PowerShell 3试了一下。你可以像内森·哈特利的回答一样使用所有的重定向选项。
powershell ".\MyScript.ps1" > test.log