【发布时间】:2023-12-20 19:40:01
【问题描述】:
我的 PowerShell 脚本中有一个批处理文件,我想运行该批处理文件并将其输出写入文本文件。我尝试了以下方法:
Start-Process C:\path\file.bat | Out-File C:\path\output.txt
我也尝试使用Tee-Object 和Write-Output 代替Out-File,但没有写入文本文件。
【问题讨论】:
标签: powershell batch-file
我的 PowerShell 脚本中有一个批处理文件,我想运行该批处理文件并将其输出写入文本文件。我尝试了以下方法:
Start-Process C:\path\file.bat | Out-File C:\path\output.txt
我也尝试使用Tee-Object 和Write-Output 代替Out-File,但没有写入文本文件。
【问题讨论】:
标签: powershell batch-file
您可以使用 Start-Transcript 和 Stop-Transcript 让 PowerShell 控制台将所有控制台输出写入文本文件。
像这样使用它:
Start-Transcript -Path C:\temp\log.txt
&C:\path\file.bat
Stop-Transcript
更多详情请见the documentation。
【讨论】:
Out-Null。类似Invoke-BatchFile | Out-Null。
如果你想要 bat 文件的输出,例如构建脚本的结果,然后我发现以下效果最好:
$Product = 'ProductName'
&C:\Path\$Product.bat | Out-File C:\Path\$Product-Output.txt
【讨论】:
你只需要几个参数:
Start-Process -FilePath 'C:\Path\File.bat' -RedirectStandardOutput 'C:\Path\Output.txt' -Wait -WindowStyle Hidden
-RedirectStandardOutput 将输出发送到您的文本文件,-Wait 等待批处理文件完成,-WindowStyle Hidden 隐藏用于批处理文件的窗口。
【讨论】: