返回cmd.exe退出

时间:2018-06-07 07:50:40

标签: powershell

我开发了一个PowerShell应用程序。我用的是例如

Start-Process "cmd.exe" "/c some_command"
#rest of the source code

但是当我运行它时,它不会等待cmd.exe关闭,然后再执行其余的源代码。

如何让cmd.exe“退出事件”返回以继续运行我的PowerShell脚本?

还是在cmd.exe运行时睡眠PowerShell脚本的其他方法吗?

3 个答案:

答案 0 :(得分:1)

我发现答案是使用-wait

Start-Process "cmd.exe" "/c some_command" -wait

答案 1 :(得分:1)

您可以直接从PowerShell调用CMD:

cmd.exe /c some_command

如果可执行文件是以字符串而不是单词提供的,则必须在语句前加上call operator(否则使用运算符是可选的):

& 'cmd.exe' /c some_command

这种调用会自动同步运行。

默认情况下,

Start-Process调用是异步的。您可以通过添加参数-Wait将行为更改为同步。

答案 2 :(得分:1)

除了使用-Wait之外,您还可以检查退出代码以验证命令成功:

[int]$ExitCode = (Start-Process "cmd.exe" "/c some_command" -Wait).ExitCode

# Check exit code
if ($ExitCode -ne 0) {
    throw "Something went wrong.
}

这对于调试和检查cmd成功非常有用。

相关问题