首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >start-process是什么时候执行的?

start-process是什么时候执行的?
EN

Stack Overflow用户
提问于 2018-01-06 03:06:26
回答 1查看 289关注 0票数 1

基本上,我尝试将退出代码从start-process返回到脚本,以便在安装失败时MDT/SCCM可以正确地失败。

下面是我使用的代码:

代码语言:javascript
复制
$proc = Start-Process -FilePath $setupexe -ArgumentList $setupargs -Wait -Passthrough
Exit $proc.ExitCode 

我的问题是Start-Process什么时候执行?当我定义$proc或调用$proc.ExitCode

我要做的是在if语句中使用退出代码,而不必将该代码存储在另一个变量中(减少代码混乱)。

代码语言:javascript
复制
$proc = Start-Process -FilePath $setupexe -ArgumentList $setupargs -Wait -PassThru
if ($proc.ExitCode -ne 0) {Exit $proc.ExitCode}

$proc2 = Start-Process -FilePath $setupexe2 -ArgumentList $setupargs2 -Wait -PassThru
if ($proc2.ExitCode -ne 0) {Exit $proc.ExitCode}

vs

代码语言:javascript
复制
$proc = Start-Process -FilePath $setupexe -ArgumentList $setupargs -Wait -PassThru
$procexit = $proc.ExitCode
if ($procexit -ne 0) {Exit $procexit}

$proc2 = Start-Process -FilePath $setupexe2 -ArgumentList $setupargs2 -Wait -PassThru
$procexit2 - $proc2.ExitCode
if ($procexit2 -ne 0) {Exit $procexit2}

我不希望再次调用Start-Process只是为了杀死脚本并返回错误代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-06 03:14:11

Start-Process将在您定义$proc时启动该进程,并且不会移动到下一行,直到它退出,因为您已经定义了-Wait参数。

这一行的if ($proc.ExitCode -ne 0) {Exit $proc.ExitCode}不会导致代码再次运行。

你可以在你的电脑上用记事本之类的快速程序运行代码来测试它,看看程序什么时候出现。

代码语言:javascript
复制
$a = start-process notepad.exe -wait -passthru
$a.exitcode
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48119797

复制
相关文章

相似问题

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