五星老土这几天心血来潮, 突然感到DOS的有趣。
老土本事不大,探索精神却不减当年。
这不,又发现一个有趣现象。
For 语句出错之后如何处理? 我尝试在FOR 语句之后设置退出码, 但无论FOR语句是否有错,退出码总是 1。
无奈之下,又一个怪念头,用CALL FOR 语句来获取退出码,居然收到奇效,不敢藏秘, 与大家共探讨。
@echo off
call:test error 1>nul 2>nul
IF %ERRORLEVEL%==0 (ECHO FOR语句运行无误) ELSE (ECHO FOR 语句出错)
pause&exit
:test
for /f "usebackq delims==" %%i in (`%1`) do (echo %%i)
上述代码 “error” 换成"dir"" 之类则说明 FOR 语句运行成功。
另外, 请注意 IF ERRORLEVEL 0 语句再次无用, 大家不妨一试, 所以提醒大家尽量不要用该语句。 该语句的有关讨论见我另一贴 http://www.cn-dos.net/forum/viewthread.php?tid=40969&fpage=1