BAT命令之FOR命令详解
BAT是Windows操作系统中常用的脚本语言,常常用于批量处理文件、运行程序等。其中,FOR命令是BAT脚本中非常强大的一个命令,可以用于循环处理、批量操作等。本文将详细介绍FOR命令的各种用法。
基本语法
FOR命令的基本语法如下所示:
for %variable in (set) do command
其中,%variable
表示遍历过程中使用的变量名,set
是一组用空格隔开的元素,command
是在每个元素上执行的命令。set
可以包含多个元素,每个元素可以是字面值、文件名、文件夹名、通配符等。
常见用法
遍历当前目录下的所有文件
for %f in (*) do echo %f
这条命令将遍历当前目录下的所有文件,并将文件名输出到控制台。*
通配符表示所有文件,将会枚举当前目录下的所有文件。
遍历指定路径下的所有文件
for %f in (C:\myfile\*) do echo %f
这条命令将遍历C:\myfile
目录下的所有文件,并将文件名输出到控制台。同样使用了*
通配符。
遍历多个路径下的所有文件
for %f in (C:\myfile\*, D:\myfiles\*) do echo %f
这条命令将遍历C:\myfile
和D:\myfiles
目录下的所有文件,并将文件名输出到控制台。将多个路径用,
隔开即可。
遍历指定类型的文件
FOR %f IN (*.txt) DO echo %f
这条命令将遍历当前目录下所有.txt
文件,并将文件名输出到控制台。.txt
表示文件类型,可以替换为其他的文件类型。
遍历一段数字
FOR /L %i IN (1,1,5) DO echo %i
这条命令将遍历数字1~5
,并将数字依次输出到控制台。/L
表示for
命令拓展为“List”(列举),1,1,5
表示从1
开始,每次增加1
,直到5
结束。
遍历所有子目录
FOR /R "C:\mydir" %%f IN (*) DO echo %%f
这条命令将遍历C:\mydir
及其子目录下的所有文件,并输出文件名。/R
表示递归地列出子目录中的文件。
高级用法
内嵌FOR循环
FOR %%i IN (A,B,C) DO (
FOR %%j IN (1,2,3) DO (
echo %%i %%j
)
)
这条命令包含两个嵌套的for
循环。外层循环遍历字母A~C
,内层循环遍历数字1~3
。每次遍历都会输出一个字母和一个数字,最终输出结果如下:
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
将结果赋值给变量
SETLOCAL EnableDelayedExpansion
SET COUNT=0
FOR /f %%a IN ('dir /b "C:\mydir" ^| find /v /c ""') DO SET FILES=%%a
FOR /R "C:\mydir" %%f IN (*) DO (
SET /A COUNT+=1
SET PROGRESS=!COUNT! / !FILES!
ECHO !PROGRESS!
)
ENDLOCAL
这条命令将统计C:\mydir
及其子目录下的文件总数,然后在遍历的时候将进度输出。SETLOCAL EnableDelayedExpansion
表示开启延迟变量扩展,SET COUNT=0
表示初始化计数变量。FOR /f %%a IN ('dir /b "C:\mydir" ^| find /v /c ""') DO SET FILES=%%a
表示用dir
命令列出C:\mydir
下的文件列表,然后用find
命令统计行数并赋值给FILES
变量。FOR /R "C:\mydir" %%f IN (*) DO
表示递归地遍历C:\mydir
下的文件,每次遍历时累加COUNT
变量并计算进度,最终输出结果。
总结
本文介绍了FOR命令的基本语法和常见用法,同时也提供了一些比较实用的高级用法。通过掌握FOR命令的各种用法,可以方便地进行文件遍历、批量操作等任务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:bat命令之for命令详解 - Python技术站