假设我们在PS中有get-credential
,并且用户在凭据提示期间命中了转义-在我的情况下,脚本继续进行(但会失败)。您如何捕获该逃逸并对其采取行动(例如write-host; exit
等)?
答案 0 :(得分:3)
通过-ErrorAction
参数,您可以定义在发生错误时cmdlet应该执行的操作。对于stop
,该cmdlet会引发一个异常,您可以捕获该异常。
Try {
Get-Credential -ErrorAction Stop
}catch {
Write-Error "User canceled. Exception $($_.Exception)"
return
}
如果您不想捕获异常,则可以使用Powershells自动$error
变量:
# User cancels the dialog
$error.Clear()
Get-Credential
if ($error.Count -gt 0) {
Write-Error "User canceled"
}
由于$error
将包含先前称为cmdlet的错误,因此您必须清除内容。您还可以选择通过-ErrorVariable
参数来定义自己的错误变量。
下面的链接包含有关此主题的更多信息: