나는 배치 파일 errorlevel 반환 문제에서 고민하고 대답을 찾을 수 없습니다.
아무도 내게 어떤 힌트를 줄 수 있습니까?배치 파일 호출 errorlevel을 두 번
외부 바이너리 파일 external.exe는 배치 파일의 리턴 코드 (0 성공, 기타 실패)를 읽음으로써 수행 할 작업을 결정합니다.
배치 파일 mybatch.cmd에서 스크립트 (perl)를 실행하고 그 결과를 배치 파일에 반환하고 싶습니다. 예를 들어
, mybatch.cmd :@echo off
myperl.pl
exit %errorlevel%
myperl.pl 동안입니다 :
#!perl.exe exit 0;
그래서 내가 myperl.pl 배치 파일에 0 값을 반환하고 싶었다, 배치 파일은 0을 external.exe 파일로 반환합니다. 그러나 external.exe가 예상대로 작동하지 않았습니다. 내가 표시 줄을 추가하면 그때 CLI에서 mybatch.cmd 실행하고있는 경우
1) "에코 % ERRORLEVEL %"CLI에서, 나는 그것이 0
2)입니다 볼 수 있습니다 myperl.pl의 리턴 코드, 나는 myperl.pl의 리턴 코드는 예를 들어 정확히 0
입니다 볼 수 있습니다 : 그것은 0을 표시합니다
@echo off
myperl.pl
echo %errorlevel%
REM exit %errorlevel%
, 펄 스크립트가 정확하게 값을 반환 있도록.
3) 줄을 추가하여 수동으로 반환 코드를 0으로 설정하면 external.exe가 올바르게 작동합니다.
@echo off
myperl.pl
result=0
exit %result%
정말 이상합니다. 어떤 아이디어? external.exe를 제어 할 수 없어서 디버깅을 할 수 없었습니다. 이 예에서
는 %의 ERRORLEVEL %의 두 배라고 : 일괄 myperl.pl에서1) 돌아갑니다.
2) mybatch.cmd에서 external.exe로 돌아갑니다. 그게 문제가 될까요?
@Aacini에 감사드립니다. 설명서에 "external.exe가 mybatch.cmd의 반환 값을 읽고 0- 성공, 기타 실패"라고 표시됩니다. 그리고 만약 내가 수동으로 배치 코드에서 반환 코드를 0 또는 1로 설정하면. "결과 설정 = 0"및 "exit % result %", external.exe 예상대로 잘 작동합니다. 문제는 배치 파일 대신 perl 파일에 값을 설정해야한다는 것입니다. – user1748640