2024年5月25日发(作者:)

批处理命令行中for循环基本用法

for循环是在办公自动化中非常实用的语句之一,本节讨论DOS语言中for循环的

各种模式:如/r,/d,/l,/f等,以及各种参数:如tokens,delims,usebackq等的基

本用法。我们须要根据实际情况选择不同的模式和参数来配置for循环以达到我们的目

的。

1、【for语句的常规用法】

形式1:for %%i in (字符串集合/数字列表/…) do 命令语句

@echo off

for %%i in (aa,bb,cc) do echo %%i

pause

结果为:

aa

bb

cc

注:这里如果用点进行分割,字符串会作为一个整体输出

如果用逗号分割,则会一次一个单次进行打印。

判断某个磁盘是否存在,如果盘符存在,则输出它:

@echo off

echo 存在有驱动器:

for %%i in (a,b,c,d,e,f,g) if exist %%i: echo %%i

pause

显示当前目录下的文件名称(非文件夹,文件夹将不会被列出):

@echo off

for %%i in (*.*) do echo "%%i"

pause

仅显示当前目录下的txt文件名称(通配符*.txt的用法):

@echo off

for %%i in (*.txt) do echo "%%i"

pause

1

把txt换成其他扩展名亦可仅列出其他格式的文件名

仅显示当前目录下的txt文件名称(通配符?规定字符个数):

@echo off

for %%i in (??.txt) do echo "%%i"

pause

仅会输出当前目录下文件名为2个字符的txt文件名

2、【关于for语句的/f模式(遍历文件内容模式)】

①/f模式

/f模式用于遍历文件中的内容:

@echo off

for /f %%i in () do echo %%i

pause

运行的结果,

会逐行打印文件中的内容

②delims参数(表示分隔符)

使用delims提取每一行在特定符号之前的内容;

当设置delims为逗号(,)时,

只显示每一行逗号之前内容;

@echo off

for /f "delims=," %%i in () do echo %%i

pause

如果识别切分的符号有多个,

则可以直接继续在第一个后面写,例如:

"delims=.,"

此时会先判定是否有英文句号,

2