【发布时间】:2016-09-22 13:48:08
【问题描述】:
我有一个将输出发送到日志文件的进程。我想编写一个 Powershell 脚本来启动这个过程,等待它完成,在它运行的同时,将它的日志文件实时跟踪到控制台。
我试过这个:
$procs = Start-Process "some_process.exe"
$logjob = Start-Job -Arg "some_logfile.log" -ScriptBlock {
param($file)
Get-Content $file -wait | foreach { Write-Host($_) }
}
$procs | Wait-Process
$logjob | Stop-Job
... 和其他类似的安排,使用作业。但看起来作业的输出只有在作业停止后才可用,或者通过从中发送“事件”,这听起来好像它们并不是真正意味着快速的事情,比如日志消息(例如 100,000 行在约 1 分钟内)。
还有其他方法可以做到这一点吗?我的下一个选择是从Start-Process 调用“tail”,这样可以完成工作(我认为 - 希望这没有相同的“等待停止”输出行为),但感觉不对。
【问题讨论】:
标签: powershell