我想编写一个 dcdiag 测试脚本,以便在发现任何错误时提醒我。我想我可以通过以下方式在 PowerShell 中做到这一点...
$test = dcdiag 2>$err
目前我没有收到来自 dcdiag 的任何错误,因此无法直接测试,但我编写了另一个 PowerShell 脚本来抛出异常,希望可以使用该脚本测试此方法。使用上述方法不起作用,因此我选择了:
try {
$test = dcdiag
}
catch {
$err = $_.Exception.Message
}
它对我的测试用例有用,但我不知道它是否会从 dcdiag 中获取标准错误。
如果我想将标准错误重定向到 PowerShell 中的变量,并且想将其与 dcdiag 一起使用,我应该如何最好地实现它?
答案1
try...catch
在这种情况下不会有帮助。
你可能想要这样做:
$test = dcdiag 2>&1
$err = $test | ?{$_.gettype().Name -eq "ErrorRecord"}
if($err){
# Error has occurred
}