rem echo off 表示之后所有命令行不显示,但命令结果总是会显示的!! 不存在%ROOT_DIR% 、 %CUR_DIR%的变量 rem @表示命令行不显示当前行,但命令结果总是会显示的!! ___ 对后面的行没影响! 参考 http://www.cnblogs.com/sgsoft/archive/2010/09/12/1824275.html、 http://www.cnblogs.com/freewl/archive/2008/11/02/1324805.html @rem asffsaf @echo 1234 echo off echo %ROOT_DIR% cd ../linuxSocket echo this is %%cd%% %cd% echo this is %%~dp0 %~dp0 echo %CUR_DIR% dir IF not ERRORLEVEL 1 goto aa1 IF ERRORLEVEL 0 goto aa2 :aa1 echo 123 :aa2 echo 456 @echo off rem (应先判断数值最高的错误码) choice /c dme /m defrag,mem,end[Default:men] if errorlevel 3 goto defrag if errorlevel 2 goto mem if errorlevel 1 goto end :defrag dir echo 123 copy xcp mkdir C:\Users\LWX193~1\Desktop goto end :mem mem goto end :end echo good bye
一直有疑问的地方是 @ 的作用, echo off的作用, @echo off 这样的就更加糊涂了、、、
一些用法也老是忘记。。
errorlevel
1 不区分大小写,
2 如果需要在echo引用的话,需要用%包起来:
C:\Users\lwx193682\Desktop\linuxSocket>echo errorlevel
errorlevel
C:\Users\lwx193682\Desktop\linuxSocket>echo %errorlevel%
1
如果在if中则不能再用%包起来,否则报错:
if errorlevel 0 echo 123 —— if errorlevel integer doSth 应该是一种语法,不可变更, windows会自动计算%errorlevel % , 如果变成%%errorlevel %%则出问题。。
%x% 应该有直接计算的意思吧
每个命令都有自己的errorlevel