使用if条件检查命令执行状态

时间:2019-04-24 06:44:24

标签: powershell powershell-v4.0 powershell-v5.0

我正在Windows 10上使用Powershell 5.1。

我在下面的代码中尝试检查执行状态,如果可以,则输出成功,否则失败。

当我运行代码时,代码可以工作,但是输出失败。

下面是代码

if(Enable-LocalUser -Name TEST)
{
    Write-Host "Success"
}
else
{
    Write-Host "Failed"
}

如何正确确认命令执行?请帮助

1 个答案:

答案 0 :(得分:1)

您可以使用$?检查上一个powershell命令是否成功执行:

Enable-LocalUser -Name TEST
if($?)
{
    Write-Host "Success"
}
else
{
    Write-Host "Failed"
}

如果您想要异常详细信息,那么我建议尝试catch:

try{
    Enable-LocalUser -Name TEST2 -ErrorAction Stop
    #The below line will only run if enable-localuser did not generate any exception
    Write-Host "Success"
}
catch
{
    Write-Host "Failed,Due to :"
    $_.exception
}

$?包含最后一个操作的执行状态。如果最后一个操作成功,则包含TRUE,如果失败,则包含FALSE。(Excerpt from: Powershell Automatic Variables Documentation)