首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取cmd.exe退出的返回值

获取cmd.exe退出的返回值
EN

Stack Overflow用户
提问于 2018-06-07 15:50:40
回答 3查看 168关注 0票数 0

我开发了一个PowerShell应用程序。我举了个例子

代码语言:javascript
复制
Start-Process "cmd.exe" "/c some_command"
#rest of the source code

但当我运行这段代码时,它并不是在执行其余源代码之前等待cmd.exe关闭。

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

或者在cmd.exe运行时让PowerShell脚本休眠的其他方法?

EN

回答 3

Stack Overflow用户

发布于 2018-06-07 16:00:13

我发现答案是使用-wait

代码语言:javascript
复制
Start-Process "cmd.exe" "/c some_command" -wait
票数 1
EN

Stack Overflow用户

发布于 2018-06-07 21:25:07

您可以直接从PowerShell调用CMD:

代码语言:javascript
复制
cmd.exe /c some_command

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

代码语言:javascript
复制
& 'cmd.exe' /c some_command

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

默认情况下,Start-Process调用是异步的。您可以通过添加参数-Wait将行为更改为synchronous。

票数 1
EN

Stack Overflow用户

发布于 2018-06-07 21:50:18

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

代码语言:javascript
复制
[int]$ExitCode = (Start-Process "cmd.exe" "/c some_command" -Wait).ExitCode

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50735707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档