2010-07-21 5 views
9

tee-object를 사용할 때 PowerShell에서 콘솔 메시지 색을 제거하지 못하게 할 방법이 있습니까? 나는 티 - 객체없이 실행하면tee-object를 사용할 때 PowerShell에서 콘솔 메시지 색을 제거하는 중

나는이 같은 좋은 오류 및 자세한 PowerShell은 메시지 색상을 얻을 : 나는 티 - 객체 (의 b/C를 사용하고

powershell.exe -noprofile -file $project_root/test_main.ps1 

with color http://i32.tinypic.com/250779w.jpg

그러나

, 나는, 메시지 색상이 콘솔에 표시되지 않습니다) & 파일을 콘솔에 로그인하려는 (이 같은) 파일이 표시되지 않습니다 알고

powershell.exe -noprofile -file $project_root/test_main.ps1 | tee-object -FilePath $log 

no color http://i29.tinypic.com/bzpc2.jpg

powershell이 ​​콘솔 외에도 파일을 출력하기 위해 tee-object를 사용하는 경우 콘솔 서식을 잃어 버리는 이유는 무엇입니까?

답변

5

대신보십시오 :이 부분이 먼저 실행되기 때문에이 문제가 발생

powershell.exe -noprofile -command { $path\test_main.ps1 | tee-object $log } 

을 :

powershell.exe -noprofile -file $project_root/test_main.ps1 

이러한 것을 티 - 객체가 보는 것을 네이티브 EXE의 출력입니다. AFAICT, PowerShell은 오류 스트림 (예 : 2>err.log)을 리디렉션하지 않는 한 네이티브 EXE에서 오류 기록 (또는 강조 표시) stderr 출력을 출력하지 않습니다.

+0

나는 그 명령을 얻을 수 없지만 메서드가 작동하는 것입니다. 첫 번째 오류는 "/ 연산자"의 오른쪽에 값 식을 제공해야합니다. "행운을 남기지 않고 도망 치려했습니다. 그런 다음"$ path \ test_main .ps1 | tee-object $ log "a $ command var. 따라서 powershell.exe -noprofile -command {$ command} 을 호출하지만 존재하지 않는 스크립트를 호출해도 스크립트를 호출하거나 오류를 발생시키지 않습니다. 키스를 볼 수 있듯이, 나는 일하고있다. "효과적인 PowerShell 항목 14 : 모든 출력 캡처 및 캡쳐"모든 출력 캡처 및 캡처 :) – DetectiveEric

+0

PowerShell.exe에서 명령을 실행하면 작동 할 것입니다 (적어도 내 테스트에서 나에게 도움이되었습니다. 스크립트). PowerShell을 제외하고 다른 곳에서 실행한다면'...-command "& {$ path \ test_main.ps1 | tee-object $ log}"'를 사용하십시오. –

+0

RE "스크립트의 모든 출력 캡처 중"- PowerShell 2.0이 스크립트 로깅 문제를 해결하지 않고 실망했을 때 실망했습니다. :-( –