在PowerShell脚本中捕获批处理文件的输出

4
我需要捕获在 .ps1 文件中运行的 .bat 文件创建的输出。
我对 Powershell 脚本编写还很陌生,但我知道这不是正确的语法。下面是最能说明我的需求的示例:
我需要执行 facter.bat 脚本,然后将其输出存储在变量 $Body 中,以便以后使用该文本。
 "C:\Program Files (x86)\Puppet Labs\Puppet\bin\facter.bat" > $Body
2个回答

9
这应该可以解决问题: $Body = & "C:\Program Files (x86)\Puppet Labs\Puppet\bin\facter.bat"

2
它能够运行,但是这种解决方案存在问题。以这种方式进行操作只包含标准输出,而不包括标准错误。我们有没有办法也捕获标准错误呢? - Piyush Soni
@PiyushSoni:2>&1 - quetzalcoatl

1
如果您需要直接将输出复制到另一个文件中,可以使用以下命令。
& "C:\Program Files (x86)\Puppet Labs\Puppet\bin\facter.bat" | Out-File -FilePath "<FilePathToWrite>.txt"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接