Windows bat脚本之for循环用法

这篇文章主要介绍了Windows bat脚本之for循环用法详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值

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)搜索当前目录下有哪些文件?

@echo offfor %%i in (*.*) do echo "%%i"pause

2)搜索当前目录下所有的文本文件?

@echo offfor %%i in (*.txt) do echo "%%i"pause