【发布时间】:2015-11-08 03:23:56
【问题描述】:
目前我在 PowerShell 中像这样启动进程:
$proc = Start-Process notepad -Passthru
$proc | Export-Clixml -Path (Join-Path $ENV:temp 'processhandle.xml')
稍后像这样杀死它:
$proc = Import-Clixml -Path (Join-Path $ENV:temp 'processhandle.xml')
$proc | Stop-Process
问题是,如果进程在我调用 $proc | Stop-Process 之前就死了,我会在 PowerShell 输出中得到错误。我需要禁用此错误并获取指示 Stop-Process 是否成功进入 PowerShell 脚本变量的布尔值。如何在 PS 中获取此信息?
【问题讨论】:
-
$?变量如果最后执行的命令成功则为真,如果失败则为假。要禁用错误输出,请将 -ErrorAction 设置为 SilentlyContinue -
您还可以在尝试杀死它之前检查该进程是否存在。
-
@Cole9350,您的解决方案很有魅力。您可以发表您的评论作为答案,我会将其标记为一个。非常感谢!
-
你也可以使用
$proc.HasExited。