PowerShell:运行批处理文件并将输出写入文本文件

时间:2015-01-30 19:41:28

标签: powershell batch-file

我的PowerShell脚本中有一个批处理文件要运行并将其输出写入文本文件。我尝试了以下方法:

Start-Process C:\path\file.bat | Out-File C:\path\output.txt

我还尝试使用Tee-ObjectWrite-Output代替Out-File,但没有任何内容写入文本文件。

3 个答案:

答案 0 :(得分:2)

您可以使用Start-TranscriptStop-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隐藏用于批处理文件的窗口。