时间:2021-05-22
Windows bat脚本的for语句基本形态如下:
在cmd窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do command2之所以要区分cmd窗口和批处理文件两种环境,是因为在这两种环境下,命令语句表现出来的行为虽然基本一样,但是在细节上还是稍有不同,最明显的一个差异就是:在cmd窗口中,for之后的形式变量I必须使用单百分号引用,即%I;而在批处理文件中,引用形式变量I必须使用双百分号,即%%I。为了方便起见,若不是特别强调,以下的讲解都以批处理文件环境为例。
我们先来看一下for语句的基本要素都有些什么:
下面来看一个Windows bat脚本的demo(记为demo1):
@echo offfor %%I in (ABC) do echo %%Ipause保存为.bat文件(批处理文件)并执行,将会在弹出的批处理窗口中看到这样的信息:
对批处理文件的for循环就是这样简单,下面来看看for语句的注意事项,并运行更复杂的for循环实例。
有了以上的基础,我们再来看下面这个例子,这个例子修改了demo1中的部分内容(记为demo2),结果将大不一样:
@echo offfor %%I in (A,B,C) do echo %%Ipause运行结果如下:
如果把 bbs.bathome.cn 这个字符串中的点号换为空格、跳格或等号,执行结果将和demo2的执行结果别无二致。
现在,来分析一下demo2代码中for语句的执行过程:
1.for语句以逗号为分隔符,把 A,B,C 这个字符串切分成三个元素:A、B和C,由此决定了do后的语句将会被执行3次;
2.第一次执行过程是这样的:先把 bbs 这个字符串作为形式变量I的值,带入do后的语句中加以执行,也就是执行 echo %%I 语句,此时的I值为A,因此,第一次执行的结果,将会在屏幕上显示A这个字符串;第二次执行和第一次执行的过程是一样的,只不过此时I的值已经被替换为command1中的第二个元素了,也就是 B 这个字符串;如此循环,当第三次echo执行完毕之后,整条for语句才算执行完毕,此时,将执行下一条语句,也就是pause命令。
高级用法:
1)搜索当前目录下有哪些文件?
@echo offfor %%i in (*.*) do echo "%%i"pause2)搜索当前目录下所有的文本文件?
@echo offfor %%i in (*.txt) do echo "%%i"pause总结
到此这篇关于Windows bat脚本之for循环用法详解的文章就介绍到这了,更多相关Windows bat脚本for循环用法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python学习笔记之While循环用法。分享给大家供大家参考,具体如下:前面一篇《Python学习笔记之For循环用法》详细介绍了Pythonf
本文实例讲述了Node.jsAPI详解之zlib模块用法。分享给大家供大家参考,具体如下:Node.jsAPI详解之zlibzlib模块提供通过Gzip和Def
本文实例讲述了Node.jsAPI详解之assert模块用法。分享给大家供大家参考,具体如下:Node.jsAPI详解之assertassert模块提供了断言测
VBS脚本和BAT批处理自身删除的方法(自杀)删除自身之:VBS把下面的脚本保存为selfkill.vbs或selfkill.vbe:复制代码代码如下:Setf
批量安装windows补丁的脚本1.创建install.bat文件2.编辑该文件输入一下脚本复制代码代码如下:@echoofffor%%iin(*.exe)do