你如何在Windowsbatch file中循环?
Windowsbatch file中FOR循环的语法是什么?
FOR %%A IN (list) DO command parameters
列表是由空格,逗号或分号分隔的任何元素的列表。
命令可以是任何内部或外部命令,batch file,甚至是OS / 2和NT中的命令列表
参数包含命令的命令行参数。 在这个例子中,命令将被执行一次列表中的每个元素,如果指定使用参数。
一个特殊types的参数(甚至命令)是%% A,它将被列表中的每个元素连续地replace。
从FOR循环
如果你想做点什么,你可以这样做:
示例(x = 200):
FOR /L %%A IN (1,1,200) DO ( ECHO %%A )
1,1,200
指的是:
- 开始= 1
- 每步增量= 1
- End = 200
types:
for /?
你会得到几页的帮助文字。
有条件地执行几次命令。
-
语法-FOR-文件
FOR %%parameter IN (set) DO command
-
语法-File-Files-Rooted at Path
FOR /R [[drive:]path] %%parameter IN (set) DO command
-
语法-FOR-文件夹
FOR /D %%parameter IN (folder_set) DO command
-
syntax-FOR-List of numbers
FOR /L %%parameter IN (start,step,end) DO command
-
语法的FOR文件内容
FOR /F ["options"] %%parameter IN (filenameset) DO command
要么
FOR /F ["options"] %%parameter IN ("Text string to process") DO command
-
语法 – 命令结果
FOR /F ["options"] %%parameter IN ('command to process') DO command
它
- 取一组数据
- 使参数
%%G
等于该数据的某个部分 - 执行一个命令(可选地使用参数作为命令的一部分)。
- – >重复每个数据项
如果在命令行而不是批处理程序中使用FOR命令,则只需使用百分号: %G
而不是%%G
FOR参数
-
第一个参数必须用单个字符来定义,例如字母G.
-
FOR %%G IN
…在FOR循环的每次迭代中,评估
IN ( ....)
子句并将%%G
设置为不同的值如果这个子句产生一个单一的值,那么%% G被设置为等于该值,并执行该命令。
如果子句导致多个值,那么隐式地定义额外的参数来保存每个参数。 这些按字母顺序自动分配
%%H %%I %%J
…(隐式参数定义)如果参数引用文件,则可以使用增强型variables引用来提取文件名/path/date/大小。
您当然可以select
%%G
以外的其他字母。 但它是一个不错的select,因为它不会与任何path名格式字母(a,d,f,n,p,s,t,x)相冲突,并提供最长的非冲突字母作为隐式参数。
FOR
会给你任何有关FOR循环的信息,包括正确使用的例子。
试试这个代码:
@echo off color 02 set num1=0 set num2=1 set terminator=5 :loop set /a num1= %num1% + %num2% if %num1%==%terminator% goto close goto open :close echo %num1% pause exit :open echo %num1% goto loop
num1
是要递增的数字, num2
是添加到num1
的值,终止符是num1
将结束的值。 您可以在此语句中为终止符指示不同的值( if %num1%==%terminator% goto close
)。 这是布尔expression式goto close是过程,如果布尔值为true并且打开是布尔值为false的过程。
@echo off echo. set /p num1=Enter Prelim: echo. set /p num2=Enter Midterm: echo. set /p num3=Enter Semi: echo. set /p num4=Enter Finals: echo. set /a ans=%num1%+%num2%+%num3%+%num4% set /a avg=%ans%/4 ECHO %avg% if %avg%>=`95` goto true :true echo The two numbers you entered were the same. echo. pause exit
从FOR /?
帮助文档:
FOR%variablesIN(设置)DO命令[命令参数]
%variables指定单个字母的可replace参数。
(set)指定一组一个或多个文件。 可以使用通配符。 command指定为每个文件执行的命令。
命令参数
指定指定命令的参数或开关。
要在批处理程序中使用FOR命令,请改为指定%%variables
%variables。 variables名称区分大小写,所以%i是不同的
从%I。
如果启用了命令扩展,那么下面的附加
FOR命令的forms是支持的:
FOR / D%variablesIN(设置)DO命令[命令参数]
If set contains wildcards, then specifies to match against directory names instead of file names.
FOR / R [[drive:]path]%variablesIN(设置)DO命令[命令参数]
Walks the directory tree rooted at [drive:]path, executing the FOR statement in each directory of the tree. If no directory specification is specified after /R then the current directory is assumed. If set is just a single period (.) character then it will just enumerate the directory tree.
FOR / L%variablesIN(start,step,end)DO命令[command-parameters]
The set is a sequence of numbers from start to end, by step amount. So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would generate the sequence (5 4 3 2 1)