阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Windows bat脚本之for循环用法

341次阅读
没有评论

共计 1716 个字符,预计需要花费 5 分钟才能阅读完成。

导读 这篇文章主要介绍了 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 语句的基本要素都有些什么:

  • for、in 和 do 是 for 语句的关键字,它们三个缺一不可;
  • %%I 是 for 语句中对形式变量的引用,即使变量 l 在 do 后的语句中没有参与语句的执行,也是必须出现的;
  • in 之后,do 之前的括号不能省略;
  • command1 表示字符串或变量,command2 表示字符串、变量或命令语句;

下面来看一个 Windows bat 脚本的 demo(记为 demo1):

@echo off
for %%I in (ABC) do echo %%I
pause

保存为.bat 文件 (批处理文件) 并执行,将会在弹出的批处理窗口中看到这样的信息:
Windows bat 脚本之 for 循环用法

对批处理文件的 for 循环就是这样简单,下面来看看 for 语句的注意事项,并运行更复杂的 for 循环实例。

  • for 语句的形式变量 I,可以换成 26 个字母中的任意一个,这些字母会区分大小写,也就是说,%%I 和 %%i 会被认为不是同一个变量;形式变量 I 还可以换成其他的字符,但是,为了不与批处理中的 %0~%9 这 10 个形式变量发生冲突,请不要随意把 %%I 替换为 %%0~%%9 中的任意一个;
  • in 和 do 之间的 command1 表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔;
  • for 语句依次提取 command1 中的每一个元素,把它的值赋予形式变量 I,带到 do 后的 command2 中参与命令的执行;并且每次只提取一个元素,然后执行一次 do 后的命令语句,而无论这个元素是否被带到 command2 中参与了 command2 的运行;当执行完一次 do 后的语句之后,再提取 command1 中的下一个元素,再执行一次 command2,如此循环,直到 command1 中的所有元素都已经被提取完毕,该 for 语句才宣告执行结束。

有了以上的基础,我们再来看下面这个例子,这个例子修改了 demo1 中的部分内容(记为 demo2),结果将大不一样:

@echo off
for %%I in (A,B,C) do echo %%I
pause

运行结果如下:
Windows bat 脚本之 for 循环用法

如果把 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 off
for %%i in (*.*) do echo "%%i"
pause

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

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

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1716字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7966471
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...