我开发了一个PowerShell应用程序。我举了个例子
Start-Process "cmd.exe" "/c some_command"
#rest of the source code
但当我运行这段代码时,它并不是在执行其余源代码之前等待cmd.exe
关闭。
如何让cmd.exe
“退出事件”返回继续运行我的PowerShell脚本?
或者在cmd.exe运行时让PowerShell脚本休眠的其他方法?
发布于 2018-06-07 16:00:13
我发现答案是使用-wait
Start-Process "cmd.exe" "/c some_command" -wait
发布于 2018-06-07 21:25:07
您可以直接从PowerShell调用CMD:
cmd.exe /c some_command
如果可执行文件是以字符串而不是纯单词的形式提供的,则必须在语句前面加上call operator (否则使用运算符是可选的):
& 'cmd.exe' /c some_command
这种调用会自动同步运行。
默认情况下,Start-Process
调用是异步的。您可以通过添加参数-Wait
将行为更改为synchronous。
发布于 2018-06-07 21:50:18
除了使用-Wait
之外,您还可以检查退出代码以验证命令是否成功:
[int]$ExitCode = (Start-Process "cmd.exe" "/c some_command" -Wait).ExitCode
# Check exit code
if ($ExitCode -ne 0) {
throw "Something went wrong.
}
这对于调试和检查cmd
成功非常有用。
https://stackoverflow.com/questions/50735707
复制相似问题