本文对https://blog.csdn.net/qiuzhi__ke/article/details/78422424的skip,tokens,delims进行了补充,补充内容的参考网址:https://www.jb51.net/article/17928.htm

1.变量引用:
在cmd窗口中:
FOR %variable IN (set) DO command [command-parameters]
在Bat文件中:
FOR %%variable IN (set) DO command [command-parameters]
注:in和do之间的set表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,
每个元素之间,用空格键、跳格键、逗号、分号或等号分隔。

2.带开关的for用法:
(1)含开关/L的for语句,可以根据set里面的设置进行循环,从而实现对循环次数的直接控制。其命令格式为:
FOR /L %%variable IN (start,step,end) DO command
其中,start为开始计数的初始值,step为每次递增的值,end为结束值。当end小于start时,step需要设置为负数。
例1.创建5个文件夹:

   @echo offfor /l %%i in (1,2,10) do md %%ipause

//将新建5个文件夹,文件夹名称依次为1.3.5.7.9。

例2.1+2+3+...+100求和:

    @echo offset /a sum=0for /l %%i in (1,1,100) do set /a sum=sum+%%iecho %sum%pause

(2)含开关/F的for语句具有最强大的功能,它能够对字符串进行操作,也能够对命令的返回值进行操作,还可以访问硬盘上的ASCII码文件,比如txt文档等。其命令格式为:
FOR /F ["options"] %%variable IN (set) DO command
其中,set为("string"、'command'、file-set)中的一个;options是(eol=c、skip=n、delims=xxx、tokens=x,y,m-n、usebackq)中的一个或多个的组合。一般情况下,使用较多的是skip、tokens、delims三个选项。
skip=n - 从文本开始忽略n行
delims - 指定定界符
tokens -提取列。 
通俗讲,共同提取每一行的第m小节的内容。因此,可以用该命令来指定提取文本信息。 
tokens=                  提取全部。 
tokens=m               提取第m列。 
tokens=m,n            提取第m列和第n列。 
tokens=m-n            提取第m列至第n列。 
tokens=*                删除每行前面的空格。忽略行首的所有空格。 
tokens=m*             提取第m列以后的所有字符,星号表示剩余的字符。 
tokens=m,*            提取第m列以后的所有字符,星号表示剩余的字符。

输出变量的个数由定义了的tokens决定。 
含开关/F的for语句举例:

    @echo offecho **No Options:for /f %%a in ("1,2,10") do echo a=%%aecho **Options tokens ^& delims:for /f "tokens=1-3 delims=," %%a in ("1,2,10") do echo a=%%a b=%%b c=%%cpause
  @echo offecho 本文件夹里面的文件有:for /f "skip=5 tokens=3* delims= " %%a in ('dir') do (       rem dir用"''"括起来系统才识别为命令if not "%%a"=="<DIR>" if not "%%b"=="字节" if not "%%b"=="可用字节" echo %%b)pause

注:上一个脚本中dir用一对单引号括起来才识别为命令 。

  @echo offecho 本文件夹里面的文件有:dir > c:\file.txtfor /f "skip=5 tokens=3* delims= " %%a in (c:\file.txt) do (if not "%%a"=="<DIR>" if not "%%b"=="字节" if not "%%b"=="可用字节" echo %%b)del c:\file.txtpause

对于后面的两个例子,其中options里面的delims= 是可以删除的,因为只要添加了/F开关系统就将delims的值默认为空格。
符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。本例中也可以改为4,
不过文件名中有空格的文件,只能显示空格以前部分。同时我们也看到了,for语句的do后面的command也是可以分行的,只需要保证command的左括号和do在同一行就可以了。

(3)开关/D或/R
/D只可指定目录,/R参数之后还可带盘符及路径。含开关/R的命令有时候被用于通过遍历文件夹来查找某一个文件或文件夹,故而列举此例。
把f盘下所有.txt结尾文件替换为.bak结尾:

  @echo offpath=f:\                                             rem 指定路径for /r %path% %%i in (*.txt) do ren %%i *.bak        rem 把f盘下所有.txt结尾文件替换为.bak结尾pause

  
(4)用法示例:

a.搜索当前目录下所有的文本文件 :

   rem 搜索当前目录下所有的文本文件@echo offfor %%i in (*.txt) do echo "%%i"pause

b.批量创建学号为1812223001-1812223040.docx文档:

   @echo offfor /l %%i in (1,1,9) do type nul > 181222300%%i.docx               rem 01-09for /l %%i in (10,1,40) do type nul > 18122230%%i.docx              rem 10-40pause

c.删除f盘的所有空目录:

dir /a:d查找属性为目录的

/b舍弃标题与摘要内容,即只提取文件名

/s递归遍历子目录

    @echo offpath=f:for /f "delims=" %%i in ('dir /b /s /a:d %path%') do rd %%ipause

d.批量扫描IP:

    @echo offfor /l %%i in (1,1,255) do ping 192.168.0.%%ipause>nul

bat批处理之for循环相关推荐

  1. DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~)

    DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~) --- --- 前言: 虽然以前对批处理也算有点研究,但一直对for命令理解不够透彻,偶尔用时也是照猫画虎的用一下. 虽然 ...

  2. bat循环执行带参数_dos命令exit图文教程,结束退出CMD.EXE程序或当前bat批处理脚本...

    大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天我们学习dos命令中的exit这个命令,退出 CMD.EXE 程序(命令解释器)或当前批处理脚本 ...

  3. BAT批处理中的字符串处理详解(字符串截取)

    BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特定字段.合并字 ...

  4. BAT 批处理脚本教程

    BAT 批处理脚本教程 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统 ...

  5. BAT批处理中的字符串处理

    1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: 复制代码 代码如下: @echo off set ifo= ...

  6. 用bat批处理程序通过DOS命令行删除所有的空文件夹

    用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的.当然你可以在空文件下创建.keep文件(或.gitkeep文件),然后就可以上传了. 但是如果空文件夹比较多,并且我 ...

  7. bat批处理,变量不生效

    1.bat批处理命令执行机制:bat命令是按照一行一行执行.如for,if等命令,即使我们用括号也是按照一行来执行.因此,在用for 循环的时候,总是得不到想要的结果." 那是因为变量在赋值 ...

  8. bat批处理与adb命令的配合

    和安卓系统打交道,难免用到adb命令:和很多安卓硬件打交道,就要大量用到adb命令,如果一个一个写就太累了,在windows系统下还是借助批处理吧. adb命令基础 首先需要准备的一些adb命令: 查 ...

  9. .bat批处理命令的介绍

    HUC = = D组 http://www.cnhonkerarmy.com/ 63707869 =====================================开始============ ...

  10. windows的cmd与bat批处理脚本(batch script)

    目录 序:批处理看这一篇就够了 一.前言 二.使用技巧 1.查看帮助 2.命令的执行 3.变量 4.条件语句 5.循环 6.参数 7.函数(过程调用) 8.调用外部脚本 9.命令执行结果和错误判断 1 ...

最新文章

  1. 【MM模块】Batch 批次管理1
  2. RPA如何助力电信业数字化转型?
  3. 升级PowerShell至4.0版本
  4. android 第三方裁剪,Android裁剪意向不适用于系统图库应用程序,但适用于第三方应用程序...
  5. 转(matlab绘制不同形状)
  6. [NLP] 酒店名归类
  7. 冯诺依曼元胞计算机,冯诺依曼元胞自动机
  8. 经典的Java算法面试题
  9. 制作一键架设服务器,制作一键端方法
  10. Vue中的Ajax(26th)
  11. 推荐几部和「隐秘的角落」同样好看的电视剧
  12. 如何让搜狗收录方法分享
  13. Ubuntu 安装 7z 加解压软件及其命令行的使用
  14. Android自定义View--Flyme6的Viewpager指示器
  15. arXiv镜像加载慢的解决办法
  16. 【JS】对象数组去重+查重+合并同类项
  17. SET和SETX命令的应用
  18. 花了一晚上时间,终于把Python的基本用法归纳好了
  19. 查看进程名称 linux,在Linux系统服务器按名称查找进程的命令
  20. win10运行bat脚本,提示Permission denied

热门文章

  1. 3dmax模型带材质导出obj格式文件的方法与步骤
  2. 通过ssh远程连接Ubuntu主机
  3. K8s(3):资源清单
  4. Visual Studio 2022把C#代码打印出来的技巧 有屋设计拆单管理一体化软件 全屋定制拆单 橱柜衣柜整装 木门归方程序
  5. Mujoco安装 最简单方法
  6. 【Fusion】Mosek.Fusion基础
  7. c++ win10下 遍历文件夹的方式, dirent.h头文件缺失问题
  8. gis连接表格到数据库失败_ArcGIS添加Excel数据的新老问题(连接数据库失败)
  9. RadomStuDemo
  10. 最新AWVS14.9.220913107 支持Windows使用教程(附下载地址)