1

目前我在 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 中获取此信息?

4

1 回答 1

3

使用该$?变量来确定您上次执行的命令是成功还是失败。设置$ErrorActionPreference变量来决定每个脚本如何处理错误输出,或者使用-ErrorAction参数来设置每个命令:

$proc = Import-Clixml -Path (Join-Path $ENV:temp 'processhandle.xml')
$proc | Stop-Process -ErrorAction SilentlyContinue
if($?) {
    #Success
    Write-host $proc " Stopped Successfully"
}
else {
    #Failure
    #Use $error variable to retrieve the message
    Write-Error $error[0]
}
于 2015-08-17T19:30:57.657 回答