在Powershell 2.0中,我使用以下命令在新窗口中启动cmd.exe进程:
Start-Process cmd.exe "/k proc.cmd"
是否有办法实时监控和处理此流程的标准输出(例如,当流程输出"已完成"时执行命令)而不隐藏其控制台输出?
答案 0 :(得分:2)
不要使用start-process
- 您将在活动控制台中看到输出实时。如果你需要这种方式,那么
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
}