![Windows에서 파이프 및 실행 파일의 반환 값을 얻는 방법](https://rvso.com/image/1703331/Windows%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%B4%ED%94%84%20%EB%B0%8F%20%EC%8B%A4%ED%96%89%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%B0%98%ED%99%98%20%EA%B0%92%EC%9D%84%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
이와 같이 실행 파일에 파이핑하는 것과 관련된 일부 단위 테스트를 실행하고 있습니다.
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에 표시된 것과 다른 작업을 수행해야 합니다. 그러나 그것이 무엇인지 전혀 모르기 때문에 유용한 제안을 하는 것은 불가능합니다.