PowerShell에서 표준 오류를 변수로 리디렉션 스크립트를 작성하여 해당 스크립트를 사용 하여이

dcdiag 테스트를 스크립트하여 오류가 발견되면 알려주십시오. PowerShell 에서이 작업을 수행 할 수 있다고 생각했습니다 …

$test = dcdiag 2>$err

현재 dcdiag에서 오류가 없으므로 직접 테스트 할 수는 없었지만 예외를 발생시키는 다른 PowerShell 스크립트를 작성하여 해당 스크립트를 사용 하여이 방법을 테스트 할 수 있기를 바랍니다. 위의 방법으로는 작동하지 않으므로 다음을 선택했습니다.

try {
    $test = dcdiag
}
catch {
    $err = $_.Exception.Message
}

테스트 사례에서 효과가 있었지만 이것이 dcdiag에서 표준 오류를 가져올 지 모르겠습니다.

dcdiag와 함께 사용하려는 경우 PowerShell에서 변수로 표준 오류 리디렉션을 가장 잘 수행하려면 어떻게해야합니까?



답변

try...catch 이 경우 도움이되지 않습니다.

당신은 할 수 있습니다 :

$test = dcdiag 2>&1
$err = $test | ?{$_.gettype().Name -eq "ErrorRecord"}
if($err){
    # Error has occurred
}