CMD文件:翻译Windows错误消息

时间:2017-02-28 11:25:02

标签: windows batch-file cmd error-handling

有没有办法在CMD脚本中检索和显示Windows错误消息的文本?

例如,假设MYAPP.EXE返回2(ERROR_FILE_NOT_FOUND)。与此关联的Windows错误消息是: "系统找不到指定的文件"

我可以在我的CMD脚本中检索并显示它吗?例如,

REM mycmd.cmd
MYAPP.EXE
ECHO %ERRORMESSAGE%

感谢。

2 个答案:

答案 0 :(得分:4)

Asumming your program返回标准窗口system error code作为退出代码

myapp.exe
net helpmsg %errorlevel%

答案 1 :(得分:0)

FOR /f "delims=" %%a IN ('COPY /y "%sourcedir%\xyz" "%sourcedir%\pol" 2^>^&1') DO SET "copyresult=%%a"

ECHO %ERRORLEVEL% %copyresult%

假设源文件不存在,则应将错误消息从设备2(stderr)重定向到设备1(stdout),因此for应用于%%a并由此{ {1}}。

这会为copyresult案例生成errorlevel 1。

如果您使用copy之类的不存在的命令代替czopy,则copy将为9009,但由于输出位于两行,

  

'CzOPY'未被识别为内部或外部命令,
  可操作程序或批处理文件。

仅将最后一个分配给errorlevel