我使用此命令在控制台和文件中查看输出:
powershell -command "my_command_1 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
powershell -command "my_command_2 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
# etc
它的效果不如我预期,我有一些疑问:
- 如何将stderr也重定向到文件?
输出结果很奇怪。对于某些命令,在打印文本和更新控制台/文件之间会有很大的延迟。对于其他一些命令,在打印文本时输出似乎已更新(我不带tee运行命令,并且知道应该打印什么)。这种延迟使该T恤几乎毫无用处-如果将打印一些严重错误,该怎么办,所以我需要停止该命令,但是直到为时已晚,我什么都看不到?
对于某些命令,仅在完成完整命令后才输出输出。
- 此外,即使命令要求用户输入,控制台/文件输出也为空!对于该命令,我知道它的期望,并盲目打印所需的文本,并且可以正常工作,但是对于其他命令-没有输出,我将无限期地等待某件事发生,同时该命令将等待我的输入!
这些问题有解决方案吗?如果没有,那么PowerShell中的T恤是完全没有用的。
我不敢相信,成千上万个脚本中使用的工具只是因为它可能无法满足您的特定要求而“完全无用”。
—
斯蒂芬·詹宁斯
是的,我的意思是在这种特殊情况下它是没有用的:)我最好不要开球,否则会有这么糟糕的问题。
—
种族2011年