批处理之for命令[通俗易懂]

批处理之for命令[通俗易懂]简述for命令是cmd中功能最强大的命令之一,for命令作用来执行迭代任务。下面是msdn中关于for命令语法的参考,建议中文和英文对照阅读,如果只看中文的话。有一些地方的翻译会难以理解,直接看英

大家好,又见面了,我是你们的朋友全栈君。

简述

for命令是cmd中功能最强大的命令之一,for命令作用来执行迭代任务。

下面是msdn中关于for命令语法的参考,建议中文和英文对照阅读,如果只看中文的话。有一些地方的翻译会难以理解,直接看英文原文就很清晰。

https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/for

语法

基本语法:

for命令的基础语法如下:

for %i|%%i in (set) do command  [commandlineoptions]
    • 其中%i|%%i为在for中使用的迭代变量。即使在后面的command命令中没有使用到变量%i,变量也是必须声明的,变量名可以使用除%0~%9之外的任意字母,例如%j,%k,%l都是合法的。
    • set可以表示一个需要for循环进行搜索的集合,它可以是字符串,文件路径,或者一系列的值,在set中可以使用通配符 ‘*’和’?’。
    • 如果直接在命令行中输入使用%i,如果是写在批处理文件中则需要写作%%i。
    • for语句中的变量名是区分大小写,%i和%I会被视为不同的变量。
    • command表示在每次循环中执行名的命令,commandlineoptions表示某些command命令在运行时使用的开关参数,为非必要参数。

  下面是一个基本用法的实例。在我们的e:\test\路径中存在一些文件,我们可以使用for循环带搜索此路径中的所有文件,并打印出文件名。

for %i in (e:\test\*.txt) do @echo %i

批处理之for命令[通俗易懂]

 该命令的执行效果如图所示,会列入该目录中所有txt类型的文件,并打印文件名。

或者用for来迭代一系列的值,实例如下:

批处理之for命令[通俗易懂]

 

 

 

扩展语法:

     在启用命令扩展的情况下(默认为启用状态),for会有如下几种额外的形式支持:

  • 仅目录查找

    for /d {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>]

  • 迭代目录

      for /r [[<drive>:]<path>] {%%|%}<variable> in (<set>) do <command> [<commandlinepptions>]

  • 迭代一系列值

    for /l {%%|%}<variable> in (<start#>,<step#>,<end#>) do <command> [<commandlinepptions>]

  • 文件,字符串解析

    for /f [<parsingkeywords>] {%%|%}<variable> in (<set>) do <command> [<commandlinepptions>]
    for /f [<parsingkeywords>] {%%|%}<variable> in (<literalstring>) do <command> [<commandlinepptions>]
    for /f [<parsingkeywords>] {%%|%}<variable> in (‘<command>’) do <command> [<commandlinepptions>]

  for /f的语法较为复杂,理解起来有一定的难度,for /f中的解析关键字[parsingkeywords]允许使用下面的形式:

  批处理之for命令[通俗易懂]批处理之for命令[通俗易懂]

 

 

  •  eol指定在解析文本文件的行结束符
  • delims指定解析文件时使用的分隔符,默认的分隔符为空格或制表符
  • tokens指定在每行中要传递给%i的标记的索引,如果制定了多个标记,for 语句会分配额外的变量来接受内容,如果最后一个标记为*,for会多分配一个额外的字符串接收*之后额字符串内容。实例如下:

       在我的电脑的e盘的test目录中存在一个zhang2.txt的文件,文件的内容如下:

     批处理之for命令[通俗易懂]

 

      我们使用下面的for /f语句来解析该文件的内容:

       批处理之for命令[通俗易懂]

 

       批处理之for命令[通俗易懂]

 

    还有更多的用法可以尝试。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155475.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MFC list control 控件判断当前选中行,设置行选中,取消行选中[通俗易懂]

    MFC list control 控件判断当前选中行,设置行选中,取消行选中

  • 西安周边一两日旅游

    西安周边一两日旅游一日游景点:1、西寺峡原名西寺沟,在户县太平峪内.距西安50公里,地处秦岭北坡。沿山路蜿蜒上行,绿水青山,碧空蓝蓝,乱云飞渡.一路溯溪而上,溪水潺潺,忽左忽右,曲径通幽,草木繁盛交错,石阶班驳,巨崖横空,古树叠翠,树林荫郁,浓荫蔽日,阴气袭人,有”天然空调”之称“`.2、小五台小五台位于长安子午镇之南五里处,距西安40里。小五台海拔1530米,是终南名山.山色优…

  • form表单提交的几种方式

    表单提交方式一:直接利用form表单提交html页面代码:<!DOCTYPEhtml><html><head><metacharset=”UTF-8″/><title>Inserttitlehere</title></head><body><formaction=”h…

  • pythonobject类_java中所有异常类的父类

    pythonobject类_java中所有异常类的父类Object类所有类的父类,默认所有的类都继承至Object类规定了类的结构,加载方式,常用函数以前的写法:class类名(Object):pass现在的写法:class类名:pass如果有父类才编写,如果没有父类可以省掉Object类,但是也是默认继承内置函数:__new__(cls,*args,**kwargs)创建对象时自动调用的函数,主要作用是创建对象,给该对象分配空间,方便之后的的操作该函数会返回创建…

    2022年10月27日
  • 最全化妆品清单_产品标准清单

    最全化妆品清单_产品标准清单linuxeBPF是3.17内核开始引入的一个全新设计,代码目录主要在kernel/bpf下,它的全称是extendedBPF(eBPF),目前关于eBPF的资料还比较乱,很难得看到一篇对ebpf总结的那么全的文章,转载自此:

  • 激光雷达:测距原理

    激光雷达:测距原理介绍了三角测距雷达及飞行时间雷达的测距原理

发表回复

您的电子邮箱地址不会被公开。

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