NIk*_*lla 0 windows powershell cmd
我正在运行一个具有大运行时间和大输出的程序,因此为了在查看输出时进行日志记录,我tee在 windows 上使用命令cmd.exe:
./program | tee -a program.log
的program打印输出住(具有显着的时间间隙行之后线),但是tee打印仅输出程序终止之后。有什么方法可以tee与实时输出一起使用吗?
注意:该问题在 windows 上也仍然存在 powershell.exe
Tee-Object不刷新输出流本身。它等待解释器来做,并且解释器经常等待一段时间。这是设计使然。
我会提出一种解决方法,例如:
./program | ForEach-Object {
Write-Host $_
$_
} | Set-Content program.log
Run Code Online (Sandbox Code Playgroud)
如果您仍然遇到问题,请尝试:
./program | ForEach-Object {
[Console]::WriteLine($_)
[Console]::Out.Flush()
$_
} | Set-Content program.log
Run Code Online (Sandbox Code Playgroud)
这应该与 相同Write-Host,但我不确定它刷新到控制台的频率。
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |