电脑学堂
第二套高阶模板 · 更大气的阅读体验

批处理文件for循环用法详解

发布时间:2025-12-19 17:41:20 阅读:175 次

批处理ref="/tag/182/" style="color:#874873;font-weight:bold;">文件中for循环的基本写法

在Windows系统里,批处理文件(.bat)是个挺实用的小工具。比如你想批量重命名照片、自动清理临时文件,或者把某个文件夹里的所有文档复制到另一个地方,写个简单的批处理脚本就能省事不少。其中,for循环是核心功能之一,能帮你重复执行命令。

最基本的格式是:

for %%变量 in (集合) do 要执行的命令

注意这里用的是两个百分号%%,这是在批处理文件里写的规则。如果你是在命令行直接输入,就只用一个%

遍历一组文件

假设你家孩子拍了一堆照片,存到了“D:\Photos”下面,现在想把所有.jpg文件的名字显示出来看看。

@echo off
for %%f in (D:\Photos\*.jpg) do echo 文件:%%f
pause

这段代码会一条条列出所有jpg文件的完整路径。如果你想顺便把它们复制到另一个文件夹,把echo换成copy就行。

处理多个目录

有时候不光是一个文件夹,而是好几个子目录都要操作。比如家里每个人的照片都放在不同的子文件夹里,你想统一处理。

这时候可以用for /r,它会递归进入每个子目录。

@echo off
for /r "C:\FamilyPics" %%i in (*.png) do echo 找到PNG图片:%%i
pause

这个脚本会从“C:\FamilyPics”开始,一层层往下找,只要发现.png文件,就打印出来。

按数字范围循环

还有一种情况,比如你要创建“第1周”到“第12周”的文件夹来整理家庭记账表。

可以用for /l来实现类似编程中的计数循环。

@echo off
for /l %%n in (1,1,12) do md "每周记录\第%%n周"
echo 文件夹生成完成
pause

这里的(1,1,12)意思是:从1开始,每次加1,直到12。运行后就会自动生成12个文件夹。

读取文本内容逐行处理

假如你导出了一份家庭成员的邮箱列表,保存在emails.txt里,每行一个地址,现在想用脚本一个个发提醒邮件(配合其他工具使用)。

可以用for /f来读文件内容。

@echo off
for /f "tokens=*" %%e in (emails.txt) do echo 处理邮箱:%%e
pause

tokens=*表示整行都读进来,%%e就是每一行的内容。如果文件里有空格或特殊符号,也可以加usebackq和引号支持。

实际应用场景举例

举个更实用的例子:你每周都会下载一些电视剧集,文件名像S05E01.mp4S05E02.mp4这样。想快速把这些文件移动到对应的“第5季”文件夹里。

可以写个脚本:

@echo off
if not exist "第5季" mkdir "第5季"
for %%v in (*S05*.mp4) do (
move "%%v" "第5季"
)
echo 所有第五季剧集已归档
pause

下次只需要双击这个.bat文件,几秒钟就整理好了。

掌握for循环的几种写法,能让日常电脑操作变得轻松很多。不用装复杂软件,靠系统自带的功能就能搞定不少重复性任务。