批处理之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命令[通俗易懂]

 

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • abstract修改方法

    abstract修改方法

    2021年12月31日
    57
  • 我的IDEA常用快捷键记录

    我的IDEA常用快捷键记录用了这么久的IDEA了,感觉就这些快捷键最好用,一起分享吧。快捷键组合实现效果psvm+Tab键publicstaticvoidmain(String[]args)sout+Tab键System.out.println()Ctrl+X删除当前行Ctrl+D复制当前行Alt+Insert(或右键Generate)生成代码(如get,set方法,构造函数等)Ctrl+Alt+T生成trycatch(或者Alt+ente

    2022年5月14日
    59
  • 算法导论第三版   练习2.2-2

    算法导论第三版   练习2.2-2

    2021年9月4日
    64
  • vuerouter配置_vue面包屑

    vuerouter配置_vue面包屑介绍VueRouter是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:嵌套的路由/视图表模块化的、基于组件的路由配置路由参

    2022年8月7日
    5
  • CubieBoard 简单入门

    CubieBoard 简单入门大约一个月之前折腾的部分记录,当时没有完全完成,就着手其他事情了,这是存在LiveWriter中的草稿,先发出来吧,后来花了一段时间移植Qt,一直遇到了点问题,并没有完全跑通,后续估计也没有时间再继

    2022年7月4日
    22
  • java cap理论_架构思想之CAP原理

    java cap理论_架构思想之CAP原理由于自己负责后端的设计已经有一段时间,对设计的一些思想和理论有一些理解,但最近被问到什么是CAP时,却一脸懵逼,下来后专门针对CAP架构思想进行了一些专题学习,在这里也将这个概念引入给大家,大家可以有意识地了解和学习这个思想理念,帮助自己在后续设计功能时有更好的参考。分布式领域CAP理论,Consistency(一致性),数据一致更新,所有数据变动都是同步的Availability(可用性),…

    2022年5月19日
    41

发表回复

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

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