我试图从批处理文件中的控制台应用程序获取返回值。控制台应用程序保持返回0值,即使rtnValue在控制台应用程序1从批处理文件中的控制台应用程序获取返回值
控制台应用程序代码
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
'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