PowerShell tr​​y-catch不起作用

Pau*_*aul 1 powershell try-catch

我正在处理脚本,想检查是否存在任务名称。到目前为止看起来像这样:

try {
    Get-ScheduledTaskInfo -TaskName "taskname"
}
catch {
    echo "doesn't exist"
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它向我显示错误消息,而不是“不存在”:

PS C:\Windows\system32> try {
    Get-ScheduledTaskInfo -TaskName "taskname"
}
catch {
    echo "doesn't exist"
}
Get-ScheduledTaskInfo : The system cannot find the file specified.
At line:2 char:5
+     Get-ScheduledTaskInfo -TaskName "taskname"
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Get-ScheduledTaskInfo], CimException
    + FullyQualifiedErrorId : HRESULT 0x80070002,Get-ScheduledTaskInfo
Run Code Online (Sandbox Code Playgroud)

有人知道为什么不触发流行语吗?

谢谢你的帮助!

最好的祝福

gms*_*man 6

try/ catch仅捕获终止错误

使用Try,Catch和Final块来响应或处理脚本中的 终止错误

使用-ErrorAction Stop把你的非终止错误到终止错误:

Get-ScheduledTaskInfo -TaskName "taskname" -ErrorAction Stop
Run Code Online (Sandbox Code Playgroud)