Windows 批处理脚本指南: 循环语句

在集合中遍历条目是脚本的常见任务。它可以遍历目录中的文件,或者一次读取一行文本。

传统的GOTO语句


早期版本的DOS的老方法是使用标签和GOTO语句。虽然它对于通过命令行参数循环很有用,但现在已经不再使用了。

:args
SET arg=%~1
ECHO %arg%
SHIFT
GOTO :args

FOR


遍历文件或者文本更现代的方法是使用for命令。在我看来,for是DOS最强大的命令,也是最不常使用的命令之一。

FOR命令使用一个特殊的变量语法%,后跟一个字母,如%I。当批处理文件中使用此语法时,略有不同,需要两个百分号%%I。在编写脚本时,这是一个常见的错误来源。如果for循环因为语法错误退出,确认是否使用了%%I

遍历文件


FOR %I IN (%USERPROFILE%\*) DO @ECHO %I

遍历文件夹


FOR /D %I IN (%USERPROFILE%\*) DO @ECHO %I

递归遍历%TEMP%下所有的文件

FOR /R "%TEMP%" %I IN (*) DO @ECHO %I

递归遍历%TEMP%下所有的文件夹

FOR /R "%TEMP%" /D %I IN (*) DO @ECHO %I

一个例子


:: Name:     del-overlays.cmd
:: Purpose:  delete overlay folder in each module
:: Author:   ettingshausen
:: Revision: 2017/12/19 - initial version
::

@ECHO OFF
SET parent=%~dp0
FOR /D %%I IN (%parent%*) DO RD /S /Q %%I\overlays
EXIT /B 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,799评论 0 11
  • OverviewPart 1 – 开始Part 2 – 变量Part 3 – 返回值Part 4 – 标准输入输出...
    ettingshausen阅读 26,468评论 0 5
  • dos 批处理 一:windows的命令行模式(win+R)在里面写CMD就可以进入windows的命令行模式了二...
    chenchao981阅读 791评论 0 6
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,470评论 0 9
  • 简介 DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是...
    Coder_Cat阅读 18,061评论 1 18