日期:2014-05-17  浏览次数:20909 次

【批处理】标号:XXX范围的设定
在批处理中可以用“:XXX”来构建一个标号,然后用GOTO XXX或者CALL :XXX来跳转到标号:XXX处,然后执行标号后的命令。
Assembly code

@ECHO OFF
FOR /R D:\2012-02-27 %%i IN (test.log) DO (
    ECHO %%~Zi
    IF %%~Zi EQU 0 GOTO exeError
    IF %%~Zi GTR 0 ECHO OK
)

:exeError
ECHO ERROR>>error.txt

pause


想法是:判断test.log文件,如果大小是0的话,在error.txt中加条信息。如果大于0,则显示OK。
如果test.log文件大于0,在运行的时候,,在控制台窗口显示OK,同时也生成了error.txt。
想请问一下,该怎么改?

同时想问一下,如何去确定:XXX标签的范围。
Assembly code

@ECHO OFF
GOTO test
:test
ECHO 1234
ECHO abcd
pause


如何操作才能确定:test只包含"ECHO 1234"这一句。
谢谢。

------解决方案--------------------
:XXX只是一个标志,GOTO :XXX表示执行跳到这一行,然后继续按顺序往下执行。这个是不能限制范围的。
------解决方案--------------------
@ECHO OFF
FOR /R D:\2012-02-27 %%i IN (test.log) DO (
ECHO %%~Zi
IF %%~Zi EQU 0 CALL :exeError
IF %%~Zi GTR 0 ECHO OK
)
pause
goto :eof

:exeError
ECHO ERROR>>error.txt