Windows에서 파이프 및 실행 파일의 반환 값을 얻는 방법

Windows에서 파이프 및 실행 파일의 반환 값을 얻는 방법

이와 같이 실행 파일에 파이핑하는 것과 관련된 일부 단위 테스트를 실행하고 있습니다.

cat text.txt | my_exe --options

이 명령을 실행하면 의 반환 값을 어떻게 얻을 수 있나요 my_exe? 반환에 실패 하더라도 my_exe반환값은 폐기됩니다. 대신 반환 값이 cat우선 순위가 있다고 가정합니다.

다른 방법으로 질문하면 위의 파이프 명령을 실행하여 다음과 동일한 반환 값을 제공하는 방법은 무엇입니까?

cat text.txt && my_exe --options

타이!

편집 : 전통적인 cmd.

답변1

cmd파이프라인의 종료 상태를 가장 오른쪽 구성 요소로 설정하고 다른 구성 요소(또는 모든)는 '우선 순위'가 지정되지 않거나 고려되지도 않습니다. 관찰하다:

c:\temp>echo exit 42 | cmd >NUL

c:\temp>echo %errorlevel%
42


c:\temp>cmd/c echo exit 42 | cmd >NUL

c:\temp>echo %errorlevel%
42


c:\temp>cmd/c "echo exit 42 && exit 17" | cmd >NUL

c:\temp>echo %errorlevel%
42


c:\temp>cmd/c exit 17 | cmd/c exit 0

c:\temp>echo %errorlevel%
0


c:\temp>cmd/c exit 11 | cmd/c exit 22 | cmd/c exit 33

c:\temp>echo %errorlevel%
33


c:\temp>cmd/c exit 11 | cmd/c exit 22 | cmd/c echo GOOD
GOOD

c:\temp>echo %errorlevel%
0

다른 결과를 얻는다면 Q에 표시된 것과 다른 작업을 수행해야 합니다. 그러나 그것이 무엇인지 전혀 모르기 때문에 유용한 제안을 하는 것은 불가능합니다.

관련 정보