2016-07-28 4 views
0

이 스크립트는 verbose의 결과 인 redirect$output1을 사용합니다.Powershell Standard Verbose to

$output1 = $(
    cmdlet1 [Some Parameters] -Verbose | % { 
     cmdlet2 [Other Some Parameters] -Verbose 
    }) 4>&1 

변수에 표준 상세 정보를 저장하지 않으면 좋은 방법으로 줄 바꿈으로 인쇄됩니다. 그러나 $output1에서 표준 상세 정보를 캡처하여 파일에 저장하면 모든 내용이 하나의 매우 긴 한 줄로 인쇄됩니다.

변수에 표준 상세 정보를 좋은 방법으로 저장할 수있는 방법은 무엇입니까?

답변

1

내가 아는 한 쉬운 구문은 없습니다. 왜? 그렇지 않으면 파이프 라인 출력이 장황하고 경고 및 오류 메시지를 방해합니다. 아직 해결 방법이 조금 복잡합니다. 자세한 출력을 임시 파일로 리디렉션하고 컨텐츠를 가져오고 파일을 제거하십시오. 당신의 예에서

$resultFile = [System.IO.Path]::GetTempFileName(); 
1| % { 
    $x = [System.IO.Path]::GetTempFileName(); 
    rm $x -Verbose 
} 4>$resultFile 
$result = cat $resultFile 
rm $resultFile 

:

$resultFile = [System.IO.Path]::GetTempFileName(); 
$(
cmdlet1 [Some Parameters] -Verbose | % { 
    cmdlet2 [Other Some Parameters] -Verbose 
}) 4>&1 
$output1 = cat $resultFile 
rm $resultFile 
보세요