我的PowerShell脚本中有一个批处理文件要运行并将其输出写入文本文件。我尝试了以下方法:
Start-Process C:\path\file.bat | Out-File C:\path\output.txt
我还尝试使用Tee-Object和Write-Output代替Out-File,但没有任何内容写入文本文件。
答案 0 :(得分:2)
您可以使用Start-Transcript
和Stop-Transcript
让PowerShell控制台将所有控制台输出写入文本文件。
像这样使用:
Start-Transcript -Path C:\temp\log.txt
&C:\path\file.bat
Stop-Transcript
有关详细信息,请参阅the documentation。
答案 1 :(得分:0)
如果要输出bat文件,例如生成脚本的结果,然后发现以下方法效果最好:
$Product = 'ProductName'
&C:\Path\$Product.bat | Out-File C:\Path\$Product-Output.txt
答案 2 :(得分:0)
您只需要几个参数:
Start-Process -FilePath 'C:\Path\File.bat' -RedirectStandardOutput 'C:\Path\Output.txt' -Wait -WindowStyle Hidden
-RedirectStandardOutput
发送输出到文本文件,-Wait
等待批处理文件完成,-WindowStyle Hidden
隐藏用于批处理文件的窗口。