批处理for命令的用法_批处理for命令详解

批处理for命令的用法_批处理for命令详解for/?1.对一组文件中的每一个文件执行某个特定命令。for%variablein(set)docommand[command-parameters]for%%variablein(set)docommand [command-parameters]%variable指定一个单一字母可替换的参数。set表示字符串或变量,当表示多个变量时,中间可以,空格等隔开…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

for /?
1.对一组文件中的每一个文件执行某个特定命令。

for %variable in (set) do command [command-parameters]
for %%variable in (set) do command [command-parameters]
%variable 指定一个单一字母可替换的参数。
set 表示字符串或变量,当表示多个变量时,中间可以, 空格等隔开
注:变量可以用通配符?*
command 表示字符串、变量或命令语句
command-parameters
为特定命令指定参数或命令行开关。
在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
下面实例皆以批处理脚本中为准
变量名称是区分大小写的
for循环:
for 语句依次提取set中的每一个元素,把它赋值给%%variable,
然后把它发给do后的command 中参与命令的执行,并且每次只提取一个元素
类似于常见编程语言的循环
例如批处理中
@echo off 
for %%i in (1,2,3) do echo %%i
pause>nul
就会依次把1,2,3赋值给i
结果输出
1
2
3

for 后 可以 加/d /f /r /l 这四个 参数
1.for/d
set中为目录名或者文件名
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
例如
@echo off
for /d %%i in (3*) do echo %%i
pause>nul
结果就是显示当前路径的所有3开头的文件夹

————————————-分割线————————————–

2.for /f
用于文本解析,提取文本信息
for /f  是以行为单位处理文本文件的,每次赋值给参数%%i一行
例如
有123.txt内容如下
1111111111
222222222
333333333
@echo off
for /f %%i in (123.txt) do echo %%i&pause
pause>nul
结果是
111111111
请按任意键继续. . .
222222222
请按任意键继续. . .
333333333
请按任意键继续. . .

如何提取一行文字指定符号前的内容那
1) delims
在批处理中,指定分隔符号的方法是:添加一个如  “delims=符号列表”  的开关,这样,被处理的每行字符串都会被符号列表中罗列出来的符号切分开来。 
这个符号列表可以一次指定很多符号
像这样
for /f “delims=,.” %%i in (123.txt) do echo %%i
pause>nul
他就会把每一行第一个,或第一个.之前的内容都提取出来了
把符号隔开的内容分为节

2) 定点提取:tokens= 
tokens=  后面一般跟的是数字,如  tokens=2,也可以跟多个,但是每个数字
之间用逗号分隔,如  tokens=4,7,9 含义是提取第2节字符串节和提取4,7,9三节
节是由我们对 delims=  这个开关的定义来划分的

实例:
@echo off 
for /f “delims=,  tokens=3” %%i in (123.txt) do echo %%i 
pause>nul
这样就把以,为节 每一行的第三节输出了

提取多个节
   如果  tokens=  后面指定了多个数字,如果形式变量为%%i,那么,第一个
数字指代的内容用第一个形式变量%%i 来接收,第二个数字指代的内容用第二
个形式变量%%j 来接收,第三个数字指代的内容用第三个形式变量%%k 来接
收„„第N 个数字指代的内容用第N 个形式变量来接收,其中,形式变量遵循
字母的排序,第 N 个形式变量具体是什么符号,由第一个形式变量来决定:如
果第一个形式变量是%%i,那么,第二个形式变量就是%%j;如果第一个形式
变量用的是%%x,那么,第二个形式变量就是%%y。 

@echo off 
for /f “delims=,  tokens=2,5” %%i in (test.txt) do echo %%i %%j 
pause>nul
这样子,就把每行以,为节的2,5两节提取出了

多个节
tokens=1,2,3,4,5  可以简写为  tokens=1-5  。 
 
   还可以把这个表达式写得更复杂一点:tokens=1,2-5 或tokens=1-3,4,5
以及tokens=1-4,5 等等

*号的表达
tokens=后面所接的星号表示:字符串从左往右被切分成紧跟在*
之前的数值所表示的节数之后,字符串的其余部分保持不变,整体被*所表示的
一个变量接收。 
@echo off 
for /f “delims=,  tokens=1,*” %%i in (123.txt) do echo %%i %%j 
pause 

就是把第一节 输出 以及第一节之后的所有节作为一个节用%%j来输出

3) 条转行 skip=n 

for  /f  允许你跳
过这些无用的行,直接从第N+1 行开始处理,这个时候,就需要使用参数  skip=n,
其中,n 是一个正整数,表示要跳过的行数。

@echo off 
for /f “skip=2” %%i in (123.txt) do echo %%i 
pause 
 
   这段代码将跳过头两行内容,从第3 行起显示test.txt 中的信息。 

4)忽略以指定字符打头的行:eol= 

@echo off 
for /f “eol=,” %%i in (test.txt) do echo %%i 
pause 
 
   结果是以,打头的行没有显示出来。 
eol只能有一个符号

如果 123.txt 中有以分号打头的行,那么,这些行
在代码[code14]的执行结果中将凭空消失。 
 
for /f  语句是默认忽略以分号打头的行内容的,正如它默认以空格键
或跳格键作为字符串的切分字符一样。 

如果要取消这个默认设置,可选择的办法是: 
 
   1、为eol=指定另外一个字符; 
   2、使用  for /f “eol=”  语句,也就是说,强制指定字符为空


   for /f %%i in („„) do („„)  语句有好几种变形语句,不同之处在于第一个
括号里的内容:有的是用单引号括起来,有的是用双引号包住,有的不用任何符
号包裹,具体格式为: 
 
 
  1、for /f %%i in (文件名) do („„) 
   2、for /f %%i in (‘命令语句’) do („„) 
   3、for /f %%i in (“字符串”) do („„) 

下面是usebackq增强型参数 不常用
4、for /f “usebackq” %%i in (“文件名”) do („„) 
   5、for /f “usebackq” %%i in (`命令语句`) do („„) 
   6、for /f “usebackq” %%i in (‘字符串’) do („„) 


1、
当你希望读取文本文件中的内容的话,第一个括号中不用任何符号包裹,
应该使用的是第1 条语句;例如:你想显示test.txt 中的内容,那么,就使用  
for 
/f %%i in (123.txt) do echo %%i; 

   2、
当你读取的是命令语句执行结果中的内容的话,第一个括号中的命令语
句必须使用单引号包裹,应该使用的是第2 条语句;例如:你想显示当前目录下
文件名中含有test 字符串的文本文件的时候,应该使用
 for /f %%i in (‘dir /a-d 
/b *test*.txt’) do echo %%i  这样的语句; 

  3、当你要处理的是一个字符串的时候,第一个括号中的内容必须用双引号
括起来,应该是用的是第 3 条语句;例如:当你想把 bbs.bathome.cn 这串字符
中的点号换为短横线并显示出来的话,可以使用  for  /f  “delims=. 
tokens=1-3″  %%i  in  (”
http://blog.csdn.net/Turbo_J“)  do  echo  %%i-%%j-%%k  这样的语
句。 
 
   很显然,第一个括号里是否需要用符号包裹起来,以及使用什么样的符号包
裹,取决于要处理的对象属于什么类型:如果是文件,则无需包裹;如果是命令
语句,则用单引号包裹;如果是字符串,则使用双引号括起来。 


usebackq  是一个增强型参数,当使用了这个参数之后,原来的for
语句中第一个括号内的写法要做如下变动:如果第一个括号里的对象是一条命
令语句的话,原来的单引号’要改为后引号`;如果第一个括号里的对象是字符串
的话,原来的双引号”要改为单引号’;如果第一个括号里的对象是文件名的话,
要用双引号”括起来。 

当路径中含有特殊字符的时候比如空格和& 用usebackq 增强型参数
如 不常见
@echo off 
for /f “usebackq” %%i in (“qwe 1.txt”) do echo %%i 
pause>nul

————————————-分割线————————————–

3.for/r  
进入根目录树[Drive:]Path,在树的每个目录中执行for语句。如果在/R后没有指定目录,则认为是
当前目录。如果Set只是一个句点(.),则只枚举目录树
for /r [[drive:]path] %%variable in (set) do command [command-parameters]

检查以 [drive:]path 为根的目录树,指向每个目录中的for语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。
tips:
for /r c:\123 %%f IN (456.txt) Do del %%f
结果
即是在c:\123 路径下删除456.txt文件

————————————-分割线————————————–

4.FOR /L
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)
这个就和常见编程语言一致了

例如
@echo off
for /l %%i in (1,1,5) do echo %%i
pause>nul
结果
1
2
3
4
5



for循环跳出
简单的可以通过exit来实现或者pause暂停
goto break

:break
exit /b



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194188.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月10日 下午7:43
下一篇 2025年11月10日 下午8:15


相关推荐

  • Spire.xls将图片放入Excel单元格

    Spire.xls将图片放入Excel单元格创建 Workbook 对象 Workbookwork newWorkbook 获取第一张工作表 Worksheetshe workbook Worksheets 0 指定列宽 行高 sheet Columns 0 ColumnWidth 50 sheet Rows 0 RowHeight 160 加载图片 添加到指定单元格 ExcelPicture sheet Pictur

    2026年3月16日
    2
  • 玩转python selenium鼠标键盘操作(ActionChains)

    玩转python selenium鼠标键盘操作(ActionChains)目录 1 ActionChains 基本用法链式写法分步写法 2 ActionChains 方法列表 3 代码示例 1 点击操作 2 鼠标移动 3 拖拽 4 按键示例 1 示例 2 用 selenium 做自动化 有时候会遇到需要模拟鼠标操作才能进行的情况 比如单击 双击 点击鼠标右键 拖拽等等 而 selenium 给我们提供了一个类来处理这类事件 ActionChains

    2026年3月19日
    1
  • 使用maven打包jar_两个java文件打包成jar

    使用maven打包jar_两个java文件打包成jar目录打包方法方法一:使用maven-jar-plugin和maven-dependency-plugin方法二:使用maven-assembly-plugin(推荐)方法三:使用maven-shade-plugin方法四:使用onejar-maven-plugin方法五:使用spring-boot-maven-plugin方法六:使用tomcat7-maven-plugin参考打包方法方法一:使用maven-jar-plugin和maven-dependenc.

    2022年10月4日
    3
  • 分布式数据存储系统:CAP理论

    分布式数据存储系统:CAP理论分布式数据存储:CAP理论前言什么是CAP?CAP选择策略及应用保CA弃P保CP弃A保AP弃C对比分析知识扩展:CAP和ACID的“C”“A”是一样的吗?总结前言分布式系统处理的关键对象是数据,而数据其实是与用户息息相关的。CAP理论指导分布式系统的设计,以保证系统的可用性、数据一致性等特征。比如电商系统中,保证用户可查询商品数据、保证不同地区访问不同服务器查询的数据是一致的等。什么是CAP?假设某电商,在北京、杭州、上海三个城市建立了仓库,同时建立了对应的服务

    2025年6月10日
    5
  • 成功解决urllib.error.URLError urlopen error Errno 11004 getaddrinfo failed

    成功解决urllib.error.URLError urlopen error Errno 11004 getaddrinfo failed成功解决 urllib error URLError urlopenerror Errno11004 getaddrinfof 目录解决问题解决思路解决方法第一步 找到新的网址第二步 查看源代码 将网址覆盖即可 解决问题 urllib error URLError urlopenerror Errno11004 getaddrinfof 解决思路 urll urlopenerror Errno11004 getaddrinfof urlopenerror Errno11004 getaddrinfof

    2026年3月17日
    1
  • 【书法】欧体字帖

    【书法】欧体字帖中国书法入门教程 欧阳询九成宫醴泉铭楷书入门大字帖 武道湘编著 新疆青少年出版社 http www yac8 com news 13413 14 html 田英章毛笔楷书 沁园春雪 http www yac8 com news 6352 2 html 田英章毛笔楷书千字文 http www yac8 com news 8687 85 html 转载

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号