2016-08-15 1 views
0

콘솔 응용 프로그램에서 배치 파일의 반환 값을 가져 오려고합니다. rtnValue 콘솔 응용 프로그램에서 한 경우에도 콘솔 응용 프로그램은 반환 0 값을 유지콘솔 응용 프로그램에서 배치 파일의 반환 값 가져 오기

콘솔 응용 프로그램 코드

Public Function Main() As Integer 
Dim rtnValue as Int16 = 0 

    if Not Process Then rtnValue = 1 

    Return rtnValue 

End Function 

배치 파일

@ECHO OFF 

start /d "%~dp0" ConsoleApp.exe 

if "%ERRORLEVEL%" == "0" goto success 

:success 
echo Success with error code: %ERRORLEVEL% 
PAUSE 
goto end 

:error 
echo Failed with error code: %ERRORLEVEL% 
PAUSE 

:end 
+0

'START' 명령은 실행 된 명령의 값을 반환하지 않습니다 (명령이 존재하지 않으면 9059를 반환합니다). 'START/WAIT'을 사용하거나 START 명령을 완전히 제거 할 수 있습니다. [이 답변]의 ** 표 4 **에 대한 자세한 내용 (http://stackoverflow.com/questions/34987885/what-are-the-errorlevel-values-set-by-internal-cmd-exe-commands/ 34987886 # 34987886) – Aacini

답변

1

에 새 쉘을 출시 start /d "%~dp0" ConsoleApp.exe를 사용하지 마십시오 그것을 대신 사용하십시오. 대신에 사용하십시오

cd %~dp0 
ConsoleApp.exe 

및 그런 다음 종료 코드를 테스트하십시오.

+0

배치 파일을 능숙하게 처리했습니다. 당신이 올바른지. – Steve

+0

cd % ~ dp0 ConsoleApp.exe로 시작/d "% ~ dp0"ConsoleApp.exe를 바꿀 때 "Sytem에서 지정된 경로를 찾을 수 없습니다"라는 메시지가 나타납니다. 오류 코드 성공 : 1 – belltric

+0

몇 가지 문제가 있습니다. 나는 왜 첫 번째 라인이 아직 실패하고 있는지 확신 할 수 없다. "오류 코드가 성공 함"메시지는'goto error'가 아니기 때문에입니다. – FloatingKiwi

관련 문제