处理PowerShell脚本中的DISM错误

时间:2017-02-16 20:49:28

标签: powershell cmd error-handling dism

如何在PowerShell脚本中使用DISM工具时捕获错误?

& cmd /c 'DISM /online /disable-feature /NoRestart /featurename:[feature_name] >NUL 2>&1'

if ($LASTEXITCODE -ne 0) {
    Write-Host "ERROR"
} else {
    Write-Host "SUCCESS"
}

[feature_name]是否存在,我总是得到错误。

但是,如果我将cmd命令替换为另一个,例如

,它就可以工作
& cmd /c 'dir [some_file] >NUL 2>&1'

如果[some_file]存在,我会获得成功,否则会出错。

1 个答案:

答案 0 :(得分:0)

似乎DISM返回的成功退出代码是3010而不是0。

这适用于PowerShell中的DISM命令:

if ($LASTEXITCODE -ne 3010) {
    ...
} else {
    ...
}