首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Start-Process : Id为5344的进程未运行

Start-Process : Id为5344的进程未运行
EN

Stack Overflow用户
提问于 2012-07-24 05:12:18
回答 2查看 4.9K关注 0票数 3
代码语言:javascript
复制
PS C:\> start regedit -ArgumentList '/S', 'D:\resources\hawk_config.reg' -Wait
Start-Process : Process with an Id of 5344 is not running.
At line:1 char:6
+ start <<<<  regedit -ArgumentList '/S', 'D:\resources\hawk_config.reg'
    + CategoryInfo          : NotSpecified: (:) [Start-Process], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.StartProcessCommand

我搞不懂这是什么。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-24 12:57:35

/S参数不会导致regedit在合并.reg文件后立即退出吗?我怀疑您得到的错误是因为在Start-Process有机会在process对象上调用Process.WaitForExit()之前,regedit已经退出。通过在命令之后运行$error[0] | Format-List *来查看错误的内部。如果进程已经退出,WaitForExit()将抛出SystemException。我不能在PowerShell v3上重现这个。也许他们修复了此cmdlet的问题。

作为一种解决方法,您可以尝试:

代码语言:javascript
复制
$p = start-process regedit -ArgumentList '/S', 'D:\resources\hawk_config.reg' -passthru
$p.WaitForExit()
票数 3
EN

Stack Overflow用户

发布于 2014-12-19 01:43:21

如果进程已经退出,WaitForExit()将抛出SystemException。

我在一个在循环中使用start-process的PS脚本中随机地得到了同样的东西。从不在相同的迭代中,有时根本不会。这将完美地解释这种行为。线程和进程的随机异步计时。

我尝试了建议的错误消息转储,它似乎证实了进程在WaitForExit()看到它之前就已经结束的想法:

Start-Process :无法处理请求,因为进程(38152)已退出。

$result = start-process <<<< -filepath $compiler -argumentlist $argstr -nonewwindow -passthru -wait CategoryInfo : NotSpecified:(:) Start-Process,InvalidOperationException + FullyQualifiedErrorId : System.InvalidOperationException,Start

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

https://stackoverflow.com/questions/11620591

复制
相关文章

相似问题

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