我正在尝试在PowerShell脚本中运行一些命令提示符命令,例如schtasks
。 我想知道如何在PowerShell中处理命令抛出的错误。
我尝试过:
& cmd.exe /c 'schtasks /Query /TN xx || echo ERROR'
& cmd.exe /c 'ping.exe 122.1.1.1 && exit 0 || exit 1'
Invoke-Expression -Command:$command
我无法运行这些命令并忽略或捕获PowerShell脚本的try..catch
块中的异常。 我知道有库,但我受限于PowerShell v2.0。
cmd.exe
后检查$LASTEXITCODE
- 非零值表示命令失败。通常情况下,您可以让命令本身报告其退出代码,而无需使用||
子句。但是,如果您确实使用了一个,请确保它以exit 1
(或不同的非零退出代码)结束;在您的第一个命令中,因为您在||
子句中执行echo
(作为唯一的命令),所以整体退出代码将错误地为0
。 - mklement02>NUL
附加到相关命令中(在单引号内);例如:'schtasks /Query /TN xx 2>NUL'
。如果还要抑制stdout输出,请添加>NUL
。 - mklement0