下面所讲的命令,请大家先查看帮助再看
有些命令要结合其他命令才显示出应用效果,会略提示一下
如有错误,或解释不全请给予指正!
for命令是批处理中一个强大的循环命令,不同的参数赋于的循环意义变化较大,掌握这命令要配合大量的练习才能灵活运用!
for 没有参数时的基本形式::for %%变量名 in (字符串) do 命令%%变量名:是for指定的单一字母变量,变量会逐一代替括号所得结果字符串
注意: 变量名是区分大小写的如:%%i 跟 %%I 是两个不同的for变量
for在没参数时的循环次数取决于for变量的个数,下面例子:
代码:
@echo off
rem %%i的个数有三个,值分别是a,b,c
for %%i in (a b c) do echo %%i
rem 结果是for循环了三次,执行了三次echo %%i,每次%%i会代替相应的值
pause
通过上面的例子,相信大家对for有个基本的认识,在括号里可以发现是以空格来分隔字符串的,我们也可以使用逗号来分隔!
例如代码:
@echo off
rem 得到的结果跟上例一样
for %%i in (a,b,c) do echo %%i
pause
同样,当有字符串含有空格,我们也可用双引号括起来当作一个整体:
例如代码:
@echo off
rem 由于双引号括起只循环一次,%%i值为"a b c"
for %%i in ("a b c") do echo %%i
pause
rem 注意用双引号括起,结果逗号不再作为分隔符消失
rem %%i值为"a,b,c"
for %%i in ("a,b,c") do echo %%i
pause
字符串: 在for没有参数的情况下,括号里的字符都是被认为是字符串(除分隔符,变量)
如当前目录存在一个test.txt,那么:
例如代码:
@echo off
rem 只显示文件名,没有显示文件内容
for %%i in (test.txt) do echo %%i
pause
rem 括号使用命令,只显示命令没有执行
for %%i in (start test.txt) do echo %%i
pause
注意:当do后面的命令不止一行时,可使用括号括起
例如代码:
@echo off
for %%i in (a b c) do (
rem 生成三个空文件
cd. >%%i.txt
echo %%i
)
pause
for 的简单嵌套
当一个for里面再嵌套for时,循环的次数要看清楚
下面的例子运行看看:
代码:
@echo off
for %%i in (a b c) do (
rem %%i三个,执行了三次for %%j
for %%j in (1 2 3) do (
echo %%i %%j
))
pause
for的循环结构,不同于顺序结构(命令从上到下执行),要配合大量的练习熟悉。所以,今天只要讲for不带参数,有个基本的认识,其他参数会逐步讲解。