bat for循环_bat教程[276] for循环详解

1b5d404c892ff93bec4d85738cba9fe3.png

古树屋 Click to follow us

(1)for命令的简介

C:\Users\86137>for /?对一组文件中的每一个文件执行某个特定命令。FOR %variable IN (set) DO command [command-parameters]  %variable  指定一个单一字母可替换的参数。  (set)      指定一个或一组文件。可以使用通配符。  command    指定对每个文件执行的命令。  command-parameters             为特定命令指定参数或命令行开关。在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.如果启用命令扩展,则会支持下列 FOR 命令的其他格式:FOR /D %variable IN (set) DO command [command-parameters]    如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]    检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。    如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,    则枚举该目录树。FOR /L %variable IN (start,step,end) DO command [command-parameters]    该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列    1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]FOR /F ["options"] %variable IN ("string") DO command [command-parameters]FOR /F ["options"] %variable IN ('command') DO command [command-parameters]    或者,如果有 usebackq 选项:FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]FOR /F ["options"] %variable IN ("string") DO command [command-parameters]FOR /F ["options"] %variable IN ('command') DO command [command-parameters]    fileset 为一个或多个文件名。继续到 fileset 中的下一个文件之前,    每份文件都被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,    然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。    以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。    你可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个    或多个指定不同解析选项的关键字。这些关键字为:        eol=c           - 指一个行注释字符的结尾(就一个)        skip=n          - 指在文件开始时忽略的行数。        delims=xxx      - 指分隔符集。这个替换了空格和制表符的                          默认分隔符集。        tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代                          的 for 本身。这会导致额外变量名称的分配。m-n                          格式为一个范围。通过 nth 符号指定 mth。如果                          符号字符串中的最后一个字符星号,                          那么额外的变量将在最后一个符号解析之后                          分配并接受行的保留文本。        usebackq        - 指定新语法已在下类情况中使用:                          在作为命令执行一个后引号的字符串并且一个单                          引号字符为文字字符串命令并允许在 file-set                          中使用双引号扩起文件名称。    某些范例可能有助:FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k    会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将    每行中的第二个和第三个符号传递给 for 函数体,用逗号和/或    空格分隔符号。请注意,此 for 函数体的语句引用 %i 来    获得第二个符号,引用 %j 来获得第三个符号,引用 %k    来获得第三个符号后的所有剩余符号。对于带有空格的文件    名,你需要用双引号将文件名括起来。为了用这种方式来使    用双引号,还需要使用 usebackq 选项,否则,双引号会    被理解成是用作定义某个要分析的字符串的。    %i 在 for 语句中显式声明,%j 和 %k 是通过    tokens= 选项隐式声明的。可以通过 tokens= 一行    指定最多 26 个符号,只要不试图声明一个高于字母 "z" 或    "Z" 的变量。请记住,FOR 变量是单一字母、分大小写和全局的变量;    而且,不能同时使用超过 52 个。    还可以在相邻字符串上使用 FOR /F 分析逻辑,方法是,    用单引号将括号之间的 file-set 括起来。这样,该字符    串会被当作一个文件中的一个单一输入行进行解析。    最后,可以用 FOR /F 命令来分析命令的输出。方法是,将    括号之间的 file-set 变成一个反括字符串。该字符串会    被当作命令行,传递到一个子 CMD.EXE,其输出会被捕获到    内存中,并被当作文件分析。如以下例子所示:      FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i    会枚举当前环境中的环境变量名称。另外,FOR 变量参照的替换已被增强。你现在可以使用下列选项语法:     %~I          - 删除任何引号("),扩展 %I     %~fI        - 将 %I 扩展到一个完全合格的路径名     %~dI        - 仅将 %I 扩展到一个驱动器号     %~pI        - 仅将 %I 扩展到一个路径     %~nI        - 仅将 %I 扩展到一个文件名     %~xI        - 仅将 %I 扩展到一个文件扩展名     %~sI        - 扩展的路径只含有短名     %~aI        - 将 %I 扩展到文件的文件属性     %~tI        - 将 %I 扩展到文件的日期/时间     %~zI        - 将 %I 扩展到文件的大小     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展                   到找到的第一个完全合格的名称。如果环境变量名                   未被定义,或者没有找到文件,此组合键会扩展到                   空字符串可以组合修饰符来得到多重结果:     %~dpI       - 仅将 %I 扩展到一个驱动器号和路径     %~nxI       - 仅将 %I 扩展到一个文件名和扩展名     %~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名     %~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展                   到找到的第一个驱动器号和路径。     %~ftzaI     - 将 %I 扩展到类似输出线路的 DIR在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。
(2)for命令的示例示例1for /D用于搜索目录或文件夹(不搜索文件),而且只搜索指定目录,不搜索子目录
@echo offfor /D %%a in (C:\Users\86137\Desktop\test\*) do echo %%a
示例2 for /R主要用于搜索指定路径及其所有子目录中符合要求的文件(/R后如果没有指定目录,则搜索当前目录)
@echo off for /R "E:\gp" %%a in (*.txt)do ren "%%a" "%%~na.doc"pause
示例3FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]示例3.1
C:\Users\86137\Desktop>head -n 5 a.txtmariadb教程[1] 主键与外键mariadb教程[2] 登录和选择数据库mariadb教程[3] 查询数据库的表mariadb教程[4] 显示表列mariadb教程[5] show status@echo offfor /f %%a in (C:\Users\86137\Desktop\a.txt) do echo %%apause
输出结果: mariadb教程[1] mariadb教程[2] mariadb教程[3] mariadb教程[4] mariadb教程[5] 示例3.2
@echo offfor /f "delims=" %%a in (C:\Users\86137\Desktop\a.txt) do echo %%apause
输出结果: mariadb教程[1] 主键与外键 mariadb教程[2] 登录和选择数据库 mariadb教程[3] 查询数据库的表 mariadb教程[4] 显示表列 mariadb教程[5] show status 示例3.3
@echo offfor /f "delims=" %%a in (C:\Users\86137\Desktop\a.txt,C:\Users\86137\Desktop\b.txt) do echo %%apause
示例3.4
C:\Users\86137\Desktop>type "C:\Users\86137\Desktop\a 1.txt"古树屋,otreehouse,mariadb教程[1],主键与外键,原创;古树屋,otreehouse,mariadb教程[2],登录和选择数据库,原创古树屋,otreehouse,mariadb教程[3],查询数据库的表,原创@echo offFOR /F "usebackq eol=; tokens=2,3* delims=," %%i in ("C:\Users\86137\Desktop\a 1.txt") do echo %%i %%j %%kpause
输出结果: otreehouse mariadb教程[1] 主键与外键,原创 otreehouse mariadb教程[3] 查询数据库的表,原创 示例3.5
@echo offFOR /F "usebackq eol=; skip=1 tokens=1,3-4 delims=," %%i in ("C:\Users\86137\Desktop\a 1.txt") do @echo %%i %%j %%kpause
输出结果:古树屋 mariadb教程[3] 查询数据库的表skip=1指忽略前面第一行 示例4FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
@echo offfor /f "tokens=2,* delims= " %%i in ("this is an example!") do echo %%i %%jpause
示例5 FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
C:\Users\86137\Desktop>FOR /F "usebackq delims==" %i IN (`set`) DO echo %iALLUSERSPROFILEAPPDATACommonProgramFilesCommonProgramFiles(x86)CommonProgramW6432COMPUTERNAMEComSpecDriverDataHOMEDRIVEHOMEPATHINTEL_DEV_REDISTLOCALAPPDATALOGONSERVERMIC_LD_LIBRARY_PATHNUMBER_OF_PROCESSORSOneDriveOneDriveConsumerOSPathPATHEXTPROCESSOR_ARCHITECTUREPROCESSOR_IDENTIFIERPROCESSOR_LEVELPROCESSOR_REVISIONProgramDataProgramFilesProgramFiles(x86)ProgramW6432PROMPTPSModulePathPUBLICSESSIONNAMESystemDriveSystemRootTEMPTMPUSERDOMAINUSERDOMAIN_ROAMINGPROFILEUSERNAMEUSERPROFILEwindir
@echo offfor /f  %%a in ('dir /S/B/P/A-D C:\Users\86137\Desktop ^|findstr a.txt') do (echo %%a)pause>nul
示例6
@echo offfor /f %%i in ("C:\Users\86137\Desktop\a.txt") do (echo %%~xi)pause
输出结果:.txt 示例7ESCAPE字符%,通常被译为转义字符,但也有更形象的译名脱逸字符、逃逸字符等。也就是说%不仅仅将与其相关的特定字符串转义并替换为特定字符串,而且自身也会被“脱逸”。而且类似于C语言中的转义字符 \ ,双%会转义并脱逸为单百分号 % ,四%则脱为双百分号 %% 。
@echo offset Text=Hello!for /l %%i IN (0,1,5) do call echo %%Text:~%%i,1%%pause
✩ 本文为古树屋科技频道原创,未经授权不得转载。

69edefc2bdd48aa8d87b63e5300aad70.png    推    广     69edefc2bdd48aa8d87b63e5300aad70.png

d924ec2c741d3ac358188b3ce48ff441.png

Windows bat 批处理教程合集

  1. echo回显控制与输出

  2. 注释的方法

  3. 使用blat发送邮件

  4. nl命令的用法

  5. cat和tac命令的用法

  6. cd命令的用法

  7. dir命令的用法

  8. md命令的用法

  9. rd命令的用法

  10. del命令的用法

  11. ren命令的用法

  12. date和time命令的用法

  13. copy命令的用法

  14. find命令的用法

  15. errorlevel程序返回码

  16. 批处理脚本传参

  17. 设置动态或静态ip、子网掩码、网关、dns

  18. cls命令的用法

  19. type命令的用法

  20. title命令的用法

  21. ver命令的用法

  22. vol命令和label命令的用法

  23. more命令的用法

  24. tree命令的用法

  25. 文本内容多行转一行

  26. 文本内容按照分隔符一行转多行

  27. sed命令的用法

  28. 隐藏bat窗口在后台运行

  29. 延迟变量

  30. color命令的用法

  31. 锁屏

  32. 熄屏

  33. rasdial宽带连接

  34. 关闭远程协助和远程桌面

  35. plink命令的用法

  36. sleep命令的用法

  37. tasklist命令的用法

  38. 从文本读取内容并直接赋值给变量

  39. 网络连接的启用与禁用

  40. 字符串的截取

  41. 以管理员身份运行

  42. mixmp3命令的用法

  43. 批量停止和禁用服务

  44. 查看进程详细信息

  45. 延时

  46. 获取操作系统位数

  47. at命令的用法

  48. forfiles命令的用法

  49. setlocal

  50. assoc命令的用法

  51. exit命令的用法

  52. move命令的用法

  53. path命令的用法

  54. pause命令的用法

  55. prompt命令的用法

  56. start命令的用法

  57. attrib命令的用法

  58. chkdsk命令的用法

  59. choice命令的用法

  60. cmd命令的用法

  61. comp命令的用法

  62. driverquery命令的用法

  63. convert命令的用法

  64. makecab命令的用法

  65. expand命令的用法

  66. format命令的用法

  67. help命令的用法

  68. ipconfig命令的用法

  69. systeminfo命令的用法

  70. ping命令的用法

  71. shutdown命令的用法

  72. net account命令的用法

  73. net computer命令的用法

  74. net continue命令的用法

  75. net file命令的用法

  76. 获取计算机名

  77. 获取当前目录路径%cd%

  78. 获取所有用户配置文件的目录

  79. 获取windows系统文件的安装目录

  80. %AppData%

  81. %LocalAppData%

  82. %COMMONPROGRAMFILES%

  83. ‍获取时间与时间同步

  84. 字符串的替换

  85. Net Config Server

  86. Net Config Workstation

  87. 获取带绝对路径的cmd.exe

  88. %comspec%

  89. %HOMEDRIVE%

  90. %userprofile%和%homepath%

  91. %LOGONSERVER%

  92. 获取处理器数量

  93. %OS%

  94. %PATHEXT%

  95. %RANDOM%

  96. %SYSTEMDRIVE%

  97. %SYSTEMROOT%

  98. %TEMP%

  99. %USERDOMAIN%

  100. %USERNAME%

  101. %WINDIR%

  102. %0与%*

  103. 创建空文件

  104. 禁止用户修改系统时间

  105. portqry命令的用法

  106. connect命令的用法

  107. portscan命令的用法

  108. sort命令的用法

  109. uniq命令的用法

  110. 文件名、后缀与路径

  111. 显示与隐藏我的电脑中的这些指定的驱动器

  112. %date%和%time%

  113. cacls命令的用法

  114. mountvol命令的用法

  115. BitLocker驱动器加解密配置工具manage-bde

  116. 设置当前用户密码永不过期

  117. 设置关闭显示器和计算机睡眠时间

  118. 设置计算机从睡眠唤醒时需要输入密码解除锁定

  119. powercfg命令的用法及开启/关闭休眠

  120. icacls命令的用法

  121. 计划任务schtasks

  122. subst创建虚拟磁盘

  123. nslookup命令的用法

  124. xcopy命令的用法

  125. 判断文件/文件夹是否存在

  126. netstat命令的用法

  127. sc query查看服务信息状态

  128. netsh firewall show显示防火墙配置信息

  129. netsh interface show interface

  130. DateDiff计算时间差

  131. 开机自启动

  132. 启用审核对象访问的审核

  133. 口令重复使用次数限制

  134. guest用户的启用与禁用

  135. 共享文件夹权限设置

  136. 口令生存周期要求

  137. 管理缺省账号更改缺省帐户名称

  138. 口令锁定策略

  139. 口令策略设置符合复杂度要求

  140. 设置屏幕锁定

  141. 帐户锁定时间

  142. 复位帐户锁定计数器

  143. 禁止RoutingAndRemoteAccess

  144. 关键权限指派安全要求取得文件/其他对象所有权 

  145. 关键权限指派安全要求关闭系统

  146. 记录帐户登录日志

  147. 启用审核帐户管理的审核

  148. 启用审核过程追踪的审核

  149. 启用审核系统事件的审核

  150. 启用审核目录服务访问的审核

  151. 启用审核特权使用的审核

  152. 关键权限指派安全要求从远程系统强制关机

  153. 关键权限指派安全要求从网络访问此计算机

  154. 关键权限指派安全要求允许本地登录

  155. 不允许匿名枚取SAM帐号与共享

  156. 不允许匿名枚取SAM帐号

  157. 匿名远程连接

  158. 禁用可远程访问的注册表路径和子路径

  159. 禁止用户开机自动登陆

  160. 日志文件大小设置

  161. 启用审核策略更改的审核

  162. 审核帐户登录事件

  163. 启用SYN攻击保护

  164. SNMP安全设置

  165. ICMP重定向

  166. 防止源路由欺骗攻击

  167. 修改默认远程登录端口

  168. 关闭默认共享

  169. 启用并正确配置Windows网络时间同步服务(NTP)

  170. 设置登录超时

  171. 关闭Windows自动播放功能

  172. DEP安全配置

  173. 禁止Alerter服务

  174. 禁用TELNET服务

  175. 禁止ComputerBrowser服务

  176. 禁止Messenger服务

  177. 禁止RemoteRegistry服务

  178. 禁止PrintSpooler服务

  179. 禁止AutomaticUpdates服务

  180. 不显示上次的用户名

  181. 禁止WorldWideWebPublishing服务

  182. 禁止SimpleMailTrasferProtocol服务

  183. 禁止SNMPService服务

  184. 禁止SNMPTrap服务

  185. 禁止蓝屏后自动启动机器

  186. 匿名权限限制

  187. ctrl-alt-del配置

  188. 清除虚拟内存页面文件

  189. 防止碎片攻击

  190. net use命令的用法

  191. 比较运算符

  192. nsudo提权

  193. bc命令的用法

  194. bat转exe

  195. 不开放端口

  196. 设置指定ip不可访问

  197. ftp的mget

  198. 查看物理地址(mac地址)

  199. 字体安装FontReg

  200. 进度条

  201. 改变dos窗口尺寸

  202. for /l 递增/递减数字序列

  203. FOR %variable IN (set)

  204. 生成指定范围随机数

  205. 查看磁盘总大小和剩余空间

  206. 批处理文件的保存

  207. net group和net localgroup

  208. net help命令的用法

  209. net helpmsg命令的用法

  210. net name命令的用法

  211. net pause命令的用法

  212. 只运行指定的windows应用程序

  213. net print命令的用法

  214. net send命令的用法

  215. net session命令的用法

  216. net share命令的用法

  217. net start命令的用法

  218. net statistics命令的用法

  219. net stop命令的用法

  220. net time命令的用法

  221. net user命令的用法

  222. net view命令的用法

  223. taskkill命令的用法

  224. 获取公网ip

  225. fc比较两个文件内容

  226. gawk命令的用法

  227. 添加防火墙入站规则和出站规则

  228. 删除防火墙入站规则和出站规则

  229. 查询防火墙入站规则和出站规则

  230. 修改防火墙入站规则和出站规则

  231. 创建防火墙入站规则和出站规则配置文件

  232. diskpart命令的用法

  233. 显示系统环境变量

  234. set命令的用法

  235. 局部变量和全局变量

  236. 空字符串的创建和判断

  237. 字符串拼接

  238. 字符串的长度

  239. 右对齐

  240. 数组

  241. if语句

  242. 算术运算符和赋值运算符

  243. 按位运算符

  244. 重定向输出>和>>

  245. 判断系统是win7还是xp

  246. FLASHFXP ftp/sftp上传与下载

  247. 使用脱字符echo特殊字符

  248. 批量获取图片宽高分辨率格式

  249. winrar压缩与解压

  250. set临时环境变量与setx永久环境变量

  251. 使用vmrun管理vmware虚拟机

  252. 创建并进行宽带连接

  253. 家庭版win10开启hyper-V

  254. where命令的用法

  255. 修改计算机名称

  256. devcon对网络专用接口进行启用和禁用

  257. 文字转语音播放

  258. 加入域

  259. 操作mysql/mariadb

  260. 批量修改txt文件字符集为ANSI

  261. doskey别名

  262. goto命令的用法

  263. EOF

  264. pdfunite合并pdf

  265. 无参函数

  266. 带返回值的函数

  267. 带参数的函数

  268. reg query命令的用法

  269. reg add命令的用法

  270. reg delete命令的用法

  271. reg copy命令的用法

  272. reg compare命令的用法

  273. print命令的用法

  274. RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry

  275. devcon命令的用法

  276. for循环详解

   ps :bat教程合集获取请点击原文链接

 更多内容请关注古树屋微信公众号

d9f0921a97fd9608b0a0b65a27bbf20a.png

↑长按关注公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值