读取关键字的CMD控制台输出

时间:2012-05-22 20:36:58

标签: windows batch-file cmd

我有一个运行外部控制台程序的简单.bat脚本,完成后会输出几​​行数据。

在外部程序完成后,是否可以在控制台输出中查找关键字。

例如: 外部程序完成后,.bat文件将查找关键字:success,如果找到它,则相反地保存控制台输出,如果关键字为:failed,则.bat程序将退出。

1 个答案:

答案 0 :(得分:1)

通常通过使用return code构造直接检查外部流程的IF ERRORLEVEL来完成成功检查:

external.exe
IF ERRORLEVEL 4 GOTO error1
IF ERRORLEVEL 3 GOTO error2
IF ERRORLEVEL 2 GOTO error3
IF ERRORLEVEL 1 GOTO error4
REM if you reached this point, external.exe reported success

当然这取决于外部程序,因此您可能根本无法使用它。在这种情况下,您可以重定向外部程序的输出并使用find来查找它; find使用非零(不记得确切)返回代码来表示找不到目标字符串。所以你可以写:

external.exe | find >nul "success"
IF ERRORLEVEL 1 GOTO notfound
REM if you reached this point, "success" was present in the output

>nul重定向确保find实际上不会输出任何匹配的文本,因为这不是您想要做的。