【发布时间】:2009-09-19 07:38:11
【问题描述】:
PowerShell 可以调用命令行批处理文件。可以使用“tee”命令记录 PowerShell 脚本输出。但是 tee 命令不会在 PowerShell 1 中为我记录 PowerShell 脚本中批处理文件的输出。
试试这个精简的例子:
制作一个名为 test.bat 的批处理文件,其中包含内容
@echo hello from bat
从 PowerShell 运行它:
PS C:\> .\test.bat | tee out.txt
这行得通 - 您将有一个输出文件,其中包含
hello from bat
现在制作一个名为 test.ps1 的 PowerShell 脚本,用于包装批处理文件,其中包含
write-output "hello from PS"
.\test.bat
现在用 tee 运行它:
.\test.ps1 | tee pout.txt
这不记录批处理文件的输出 - 输出文件只包含
hello from PS
没想到
hello from PS
hello from bat
但是没有捕获到批处理输出。如何捕获此 PowerShell 脚本和从属批处理文件的输出?
【问题讨论】:
-
我在最后的答案中添加了一些东西。你为什么制作这个社区维基?这不是不鼓励人们回答,因为他们不会得到积分吗?
-
自从我上次访问此站点以来,我将其设为社区 wiki,人们要求这样做 - 关键是他们可以对其进行编辑。分差不是我所知道的,这些规则可能在此期间发生了变化。但这不是次要问题吗?这是我可以改变的吗?
-
我真的不在乎;我只是好奇而已。我的理解是,社区 wiki 是针对没有黑白答案的“意见”问题,特别是对于诸如“你最喜欢的编程语言是什么”之类的问题,这些问题会产生荒谬的分数。顺便说一句,任何问题都可以由有足够分数的人编辑(我认为是 2000 年)。
标签: powershell powershell-1.0 tee