输入命令for /?可以看到这个命令的介绍和参数帮助,for这个命令的参数比较复杂。得花点时间理解。

@echo off
for %%i in (*.*) do echo %%i
pause

在批处理中for使用变量的话,是需要两个%的,所以变量i就是%%i,第二行for这个命令是循环处理,把当前的目录的文件保存到变量i中,然后执行echo输出这个变量i,就是输出当前目录里边所有的文件的意思。

运行这个批处理,会输出当前目录里边的文件,这个是不加参数的时候for的使用方式。

@echo off
for /d %%i in (*) do echo %%i
pause

在这个批处理基础上修改一下,加了一个参数d,/D用于搜索目录(或文件夹),只搜索文件夹,不搜索文件,只搜索指定目录,不搜索子目录。

bd4c9b0666b0223196b54d1fe8e73cfc.png

运行这个脚本能输出当前目录下边的两个文件夹,这个是参数d的用法。

@echo off
for /r %%i in (*.exe) do echo %%i
pause

再看一下参数r的用法,/R搜索的范围从当前目录或指定目录开始,深入所有子目录,这行命令把*.*修改为了*。exe这样会显示目录下边的子目录里边的EXE文件。

运行这个脚本能显示出当前目录子目录里所有的EXE文件。

@echo off
for /l %%i in (1,1,5) do @echo %%i
pause

/L 参数相当于编程里边的一个循环计数,可以根据自己设定的数量,循环次数。

ee9f278c-215a-4d2a-8dba-f6f85259f837.png

运行这个脚本可以看到命令循环了五次,并输出了五个数字。

@echo off
for /f %%i in (a.txt) do echo %%i
pause


/F 参数参数是比较复杂,这里简单的介绍一下,它可以读取一个文本,根据指定的格式,然后保存到变量进行操作。


准备了一个a.txt,这个文本里边有三行,每行一个内容。

c6241e35-12a8-4ce2-86b1-8985ca590f13.png

以上是for这个命令基础用法。