在命令行处理 console 应用执行的返回值。
新建一 Win32 Console 工程: CompareDirs
代码如下(VS2008 默认生成的代码):
1 // CompareDirs.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include "CompareDirs.h" 6 7 #ifdef _DEBUG 8 #define new DEBUG_NEW 9 #endif 10 11 12 // 唯一的应用程序对象 13 14 CWinApp theApp; 15 16 using namespace std; 17 18 int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 19 { 20 int nRetCode = 0; 21 22 // 初始化 MFC 并在失败时显示错误 23 if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) 24 { 25 // TODO: 更改错误代码以符合您的需要 26 _tprintf(_T("错误: MFC 初始化失败\n")); 27 nRetCode = 1; 28 } 29 else 30 { 31 // TODO: 在此处为应用程序的行为编写代码。 32 } 33 34 return nRetCode; 35 }
要从命令行处理 CompareDirs.exe 的返回值。
在网上查找了一下,有处理不正确的、也有处理 LOG 而不是返回值的。
修改 CompareDirs.exe 的不同返回值,来验证批处理程序执行的输出。
@echo off CompareDirs @if "%ERRORLEVEL%" == "0" goto good :fail echo (Execution Failed) echo (return value = %ERRORLEVEL%) goto end :good echo (Execution succeeded) echo (Return value = %ERRORLEVEL%) goto end :end pause
时间: 2024-10-09 05:18:01