【发布时间】:2019-08-22 02:42:44
【问题描述】:
我需要暂停一个 powershell 脚本,直到它启动的进程完成。太好了,我可以使用Start-Process xxxx -wait
但是在某些情况下,我需要能够在不等待的情况下继续执行脚本,并且在开始进程之前我无法做出此决定。
最好我什至可以在这里杀死启动的进程,但是有没有办法启动一个进程,然后监听输入键或“继续”,这将停止进程并让 powershell 脚本继续运行,否则只是等待进程完成并退出以继续执行脚本?
我已经研究了几个小时的 powershell 文档,但我很难找到最能解决我的问题的命令。
此外,理想情况下,这将是 powershell 7(核心)跨平台兼容。
【问题讨论】:
-
$p = Start-Process -Passthru然后循环调用$p. WaitForExit(2000),查看图书结果。如果需要终止进程调用$p. Kill() -
谢谢,这听起来确实像我要找的东西,但如果我要接受输入可能会杀死它,这不会阻止循环再次运行吗?
-
使用 [Console::KeyAvailable] 和循环我可以检查它。但是使用 start-process 输入在进程退出之前不会返回到我的 powershell 窗口。我不得不使用 -NoNewWindow 来保留输入,但它似乎确实有效
标签: powershell powershell-core