2011-01-25 7 views
2

나는 아래의 PowerShell 구문을 stdout을 캡처하는 데 실수로 사용했습니다.PowerShell은 exes 명령을 비활성으로 만듭니다?

 $output = devenv.exe ..... 

또는 함수 매개 변수로 exe를 호출하면 다음과 같이 나타납니다 :

 obj.LogOutput((devenv.exe ...)) 

이러한 명령 중 하나가 실행 된 후에는 같은 명령 창 내에서 아무것도하지 마십시오. 예를 들어 devenv, echo 또는 xcopy를 실행하면 실행하지 않고 즉시 반환됩니다. "devenv /?"를 실행하면 산출물은 생산되지 않았다. 명령 창을 닫고 새 창을 시작하면 모든 것이 정상으로 돌아 왔습니다. 이 명령을 다시 실행할 수있었습니다.

무엇을 제공합니까? 구문이 올바르지 않지만 PowerShell이 ​​구문에 오류가 발생하지 않았다는 것을 알고 있습니다. 대신 다음 EXE를 실행할 때 자동으로 실패합니다 (PowerShell 명령은 계속 작동합니다, btw). 내 구문이 PowerShell을 너무 망 쳤단 말인가? 나는이 행동을 다시보고 있기 때문에 주로 묻습니다. 그러나 위 스크립트를 스크립트에서 찾을 수 있습니다.

 $output = devenv.exe ..... 
 $output = devenv.exe ..... 

업데이트 : 내 생각에이 구성은 다음과 같습니다. 원래 스크립트에서 문제를 일으키는 코드 줄과 매우 유사하지만이 코드는 독립 실행 형에서 문제를 재현하지 않습니다. 어쨌든 모든 EXE가 작동하지 않게 만드는 꿈을 꾸는 문법은 없을 것이라고 생각합니다.

+0

Ctrl + C를 누르면 어떻게됩니까? – mjolinor

+0

더 잘 재현하면 PowerShell 용 connect.microsoft.com에 버그를 제출해야합니다. – JasonMArcher

답변

1

http://social.technet.microsoft.com/Forums/en/winserverpowershell/thread/5148df55-b1bf-4eeb-a84c-ca0e1a728db4

는 분명히 미래의 명령 입력을 손상 쓰기 호스트로 배열을 통과하는 문제가 있습니다.

+0

하나의 파일로 이것을 재현 할 수 있었지만 다른 파일로는 재현 할 수 없었습니다. 그래서 대부분의 내용이 제거 된 첫 번째 파일의 사본을 시도했는데 문제가 발생하지 않았습니다. 그래서 나는 단순히 배열이 아닌 특정 내용과 관련이 있다고 생각합니다. 문제 파일에 따옴표가 없다고 말할 수 있습니다. – JasonMArcher

관련 문제