批处理命令中for循环基本用法.pdf
丹青不知老将至,贫贱于我如浮云。——杜甫
循环基本用法
DOS语言中for循环的
各种模式:如/r,/d,/l,/f等,以及各种参数:如tokens,delims,usebackq等的基
本用法。我们须要根据实际情况选择不同的模式和参数来配置for循环以达到我们的目
的。
for语句的常规用法】
形式1:for%%iin(字符串集合/数字列表/…)do命令语句
for%%iin(aa,bb,cc)doecho%%i
pause
结果为:
aa
bb
cc
注:这里如果用点进行分割,字符串会作为一个整体输出
如果用逗号分割,则会一次一个单次进行打印。
判断某个磁盘是否存在,如果盘符存在,则输出它:
@echooff
echo存在有驱动器:
for%%iin(a,b,c,d,e,f,g)ifexist%%i:echo%%i
pause
显示当前目录下的文件名称(非文件夹,文件夹将不会被列出):
@echooff
pause
仅显示当前目录下的txt文件名称(通配符*.txt的用法):
@echooff
pause
丹青不知老将至,贫贱于我如浮云。——杜甫
换成其他扩展名亦可仅列出其他格式的文件名
仅显示当前目录下的txt文件名称(通配符?规定字符个数):
pause
仅会输出当前目录下文件名为2个字符的txt文件名
for语句的/f模式(遍历文件内容模式)】
①/f模式
/f模式用于遍历文件中的内容:
@echooff
for/f%%iin(test.txt)doecho%%i
pause
运行的结果,
会逐行打印test.txt文件中的内容
②delims参数(表示分隔符)
使用delims提取每一行在特定符号之前的内容;
当设置delims为逗号(,)时,
只显示每一行逗号之前内容;
@echooff
pause
如果识别切分的符号有多个,
则可以直接继续在第一个后面写,例如:
此时会先判定是否有英文句号,
丹青不知老将至,贫贱于我如浮云。——杜甫
英文逗号。
如果有则会在第一个英文句号或者逗号处,
提取之前的字符串。
注:如果省略了delims参数,
则默认以空格和tab键作为一行结束的标志,
每行仅提取这两个字符之前的内容。
③参数tokens
用于提取一行中的某个局部的内容;
tokens=2表示提取第二节;
tokens=3,4,8表示同时提取第三、四、八节
pause
表示以逗号为分隔符,在每一行中提取第三节。
如何一次性读取一行中的多节?