FOR语句用于循环处理,使用FOR中的不同开关,实现不同功能,主要有3个开关,具体如下:
注:变量名区分大小写,如%%i和%%I不相同
一、不使用开关
@ECHO OFF FOR %%i IN (a,b,"1,2",d) DO ( ECHO %%i ) PAUSE
二、使用/R开关
常用于遍历文件夹,查找指定的文件或者目录
@ECHO OFF FOR /R "F:\temp" %%i IN (.) DO ( ECHO %%~fi )
上面代码表示:遍历F:\temp目录下的所有文件夹,并输出文件夹全路径。
注:.表示枚举F:\temp目录下的所有文件夹
@ECHO OFFFOR /R %%i IN (.) DO ( ECHO %%~fi ECHO %%~ni )
/R后面如果没有设置要遍历的根目录,那么将使用脚本所在的目录作为根目录进行遍历。
三、使用/F开关
@ECHO OFFFOR /F "EOL=; TOKENS=1,2 DELIMS=," %%i IN (11.txt) DO ( ECHO "第一个字符是:%%i,第二个字符是:%%j" )
EOL=;表示忽略分号开头的行
DELIMS=,表示用逗号分隔每行内容
TOKENS=1,2表示将分隔后的第1个字符和第2个字符传递给FOR函数处理
如果TOKENS=1,2*表示将分隔后的第1个字符、第2个字符及剩余的字符传递给FOR函数处理
%%i表示分隔后的第1个字符,%%j表示分隔后的第1个字符,%%k表示分隔后的剩余的字符
四、FOR变量修饰符
@ECHO OFF FOR /R F:\temp\11.txt %%i IN (.) DO ( ECHO %%~fi ECHO %%~ni ECHO %%~di ECHO %%~pi ECHO %%~xi ECHO %%~si ECHO %%~ai ECHO %%~ti ECHO %%~zi )
%%~i:删除变量%%i的引号
%%~fi:将变量%%i扩展到全路径,如F:\temp\11.txt
%%~ni:将变量%%i扩展到文件名,如11
%%~di:将变量%%i扩展到驱动器号,如F:
%%~pi:将变量%%i扩展到路径,如\temp\
%%~xi:将变量%%i扩展到文件扩展名,如.txt
%%~si:将变量%%i的扩展路径只包含短名
%%~ai:将变量%%i扩展到文件属性,如--a------
%%~ti:将变量%%i扩展到文件日期,如2016/07/19 16:57
%%~zi:将变量%%i扩展到文件大小,如34
组合变更修饰符:
%%~dpi:将变量%%i扩展到驱动器号和路径,如F:\temp\
%%~nxi:将变量%%i扩展到文件名和扩展名,如11.txt
时间: 2024-11-03 22:11:15