处理外部程序的错误

时间:2017-12-03 19:22:59

标签: windows powershell error-handling ps1

我正在编写执行外部程序和其他脚本的PowerShell脚本。

我正在主脚本中调用.exe和.ps1脚本,如下所示:

& ./directory/file.exe

or

& ./directory/script.ps1

我怎样才能发现错误?

是否像unix一样,我可以使用$?并执行类似的操作:

if($? -ne 0) then exit 1 ...

这是最好的方法吗? 我们可以在PowerShell中使用退出吗?

顺便说一下,正在使用“&”调用.exe文件的最佳方法? .ps1?

1 个答案:

答案 0 :(得分:0)

powershell中的

$?是布尔值,仅反映前一个 powershell语句的执行状态。

对于外部程序,请检查$LASTEXITCODE

& .\directory\file.exe 
if($LASTEXITCODE){
    return 
}

在上面的示例中,我使用return - exit也可以使用,但我通常会避免使用exit,因为它会指示主机应用程序立即退出,这可能是如果您希望将来从另一个脚本调用脚本作为更大操作的一部分,则可能不合适。

invokcation运算符&将与可执行文件和powershell脚本文件路径完美配合。