Dos 中的 for 命令可以对一组文件中的每一个文件执行某个特定命令。
对一组文件中的每一个文件执行某个特定命令。
FOR %variable IN (set) DO command [command-parameters]
参数 | 描述 |
---|---|
%variable | 指定一个单一字母可替换的参数。 |
(set) | 指定一个或一组文件。 |
command | 指定对每个文件执行的命令。 |
command-parameters | 指定对每个文件执行的命令。 |
for /?
查看帮助文档,输入以下命令:
for /?
运行结果如下图:
for %variable IN (set) DO command
循环输出一串数字,输入以下命令:
for %i in (1,2,3) do @echo %i
运行结果如下图:
循环打印文本文件名称,输入以下命令:
for %i in (*.txt) do @echo %i
运行结果如下图:
循环输出目录,输入以下命令:
for /r %i in (*.txt) do @echo %i
运行结果如下图:
FOR /L %variable IN (start,step,end) DO command
循环正序输出一串数字,输入以下命令:
for /l %i in (1,1,5) do @echo %i
运行结果如下图:
循环倒序输出一串数字,输入以下命令:
for /l %i in (5,-1,1) do @echo %i
运行结果如下图:
FOR /F ["options"] %variable IN (file-set) DO command
options 含以下参数:
参数 | 描述 |
---|---|
eol=c | 指一个行注释字符的结尾。 |
skip=n | 指在文件开始时忽略的行数。 |
delims=xxx | 指分隔符集。 |
tokens=x,y,m-n | 指每行的哪一个符号被传递到每个迭代的 for 本身。 |
usebackq | 迭代单引号内的字符串。 |
创建文本文件,文本内容如下图:
输出文本内容,输入以下命令:
for /f %i in (haicoder.txt) do @echo %i
默认情况下会输出每行第一个值,运行结果如下图:
输出指定位置内容,输入以下命令:
for /f "tokens=2" %i in (haicoder.txt) do @echo %i
此时会输出每一行的第二个值,运行结果如下图:
如果需要输出前 3 个值,可以输入以下命令:
for /f "tokens=1,2,3" %i in (haicoder.txt) do @echo %i %j %k
运行结果如下图:
若要输出字符串指定位置的值,可以输入以下命令:
for /f "usebackq tokens=1,2" %i in ('one two three') do @echo %i %j
运行结果如下图:
此时更改文本文件内容,内容如下:
如果需要输出文本所有内容,可以输入以下命令:
for /f "tokens=*" %i in (haicoder.txt) do @echo %i
运行结果如下图:
Dos 中的 for 命令可以对一组文件中的每一个文件执行某个特定命令。