我想编写一个 dcdiag 测试脚本以在发现任何错误时提醒我。我以为我可以通过以下方式在 PowerShell 中执行此操作...
$test = dcdiag 2>$err
Run Code Online (Sandbox Code Playgroud)
我目前没有来自 dcdiag 的任何错误,所以我无法直接测试,但我编写了另一个 PowerShell 脚本来抛出异常,希望我可以使用该脚本测试此方法。使用上述方法不起作用,所以我选择了:
try {
$test = dcdiag
}
catch {
$err = $_.Exception.Message
}
Run Code Online (Sandbox Code Playgroud)
它适用于我的测试用例,但我不知道这是否会从 dcdiag 中获取标准错误。
鉴于我想将它与 dcdiag 一起使用,我应该如何最好地实现标准错误重定向到 PowerShell 中的变量?
man*_*lds 21
try...catch
在这种情况下无济于事。
你可能想要这样做:
$test = dcdiag 2>&1
$err = $test | ?{$_.gettype().Name -eq "ErrorRecord"}
if($err){
# Error has occurred
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25502 次 |
最近记录: |