在Powershell 2.0中监控其他进程的输出

时间:2016-04-12 07:44:00

标签: powershell events process powershell-v2.0 stdout

在Powershell 2.0中,我使用以下命令在新窗口中启动cmd.exe进程:

Start-Process cmd.exe "/k proc.cmd"

是否有办法实时监控和处理此流程的标准输出(例如,当流程输出"已完成"时执行命令)而不隐藏其控制台输出?

1 个答案:

答案 0 :(得分:2)

不要使用start-process - 您将在活动控制台中看到输出实时。如果你需要这种方式,那么

  • 在作业中运行你的行
  • 定期使用循环(例如每1秒)通过receive-job获得作业输出。

修改

这是演示您想要的示例脚本

$j = start-job { while(1) { Get-Random; sleep 1 } }
while($j.State -eq 'Running') {
   $out = Receive-Job -Job $j
   $out
   if ($out -like '*44*') { break }
   sleep 1
}