批处理之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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C#泛型入门泛型类、泛型集合、泛型方法、泛型约束、泛型委托

    C#泛型入门泛型类、泛型集合、泛型方法、泛型约束、泛型委托泛型集合和ArrayList的装箱拆箱、常见的泛型类型、泛型类和泛型方法、泛型约束、泛型委托泛型很难理解?不然在接触的一个新的概念的时候,总会感觉难以理解,当你掌握并能熟练地使用的时候,发现这个概念其实简单的,我相信大多数码农都会有这种似曾相识的感觉。可能大多数人刚学习泛型的时候觉得很难理解,当然我也是这样的,所以便写下这篇文章加深一下对泛型的印象。

    2022年7月11日
    17
  • 也谈VC中ModifyStyle&ModifyStyleEx无法改变控件的Style)

    也谈VC中ModifyStyle&ModifyStyleEx无法改变控件的Style)一个View中用到了一个CListCtrl,在OnInitialUpdate函数里面他调用了m_listCtrl.ModifyStyleEx(0,LVS_EX_FULLROWSELECT);但是结果是并没有改变View中这个ListCtrl的效果。     仔细的查阅了MSDN的关于ModifyStyleEx的说明,发现没什么可以的地方,调试几遍发现也没异常,最后在网上一搜索Modif

    2022年7月19日
    19
  • javaclasscastexception Scala_java unchecked cast object to T

    javaclasscastexception Scala_java unchecked cast object to T在处理JSON时将一个JSONArray强转成List,在线上环境运行正常,但是换了一个环境就出现ClassCastException这个异常。编译时这个强转不会报错,但是运行时却可能出现异常。所以在对对象进行强制转换的时候一定要加以小心,想好实际的对象类型是什么,可不可以强转。

    2025年8月28日
    5
  • navigator html_javascript:_dopostback什么意思

    navigator html_javascript:_dopostback什么意思1.navigator属性以及方法解析:属性描述IEFOappCodeName返回浏览器的代码名。419appMinorVersion返回浏览器的次级版本。4NoNoappName返回浏览器的名称。419appVersion返回浏览器的平台和版本信息。4

    2025年9月6日
    8
  • 报错注入是什么?一看你就明白了。报错注入原理+步骤+实战案例「建议收藏」

    报错注入是什么?一看你就明白了。报错注入原理+步骤+实战案例「建议收藏」报错注入怎么使用,报错注入步骤,报错注入原理,报错注入使用。

    2022年9月30日
    3
  • 教你实现一个天气实时查询微信小程序

    教你实现一个天气实时查询微信小程序文章目录博主绪言组件选择部署阶段组件选择组件变量安排组件布局js后端逻辑处理环节API处理环节函数处理环节结束语博主绪言天气之子app主要功能是选择地区(省,市,区或者县),然后获取当前信息,把所选择的地区信息显示在界面上,然后调用和风天气免费的API,获取当前选择地区的天气信息,并且获取天气图标,把所有获取的这些信息,美观地显示在界面上。以下是示例界面:组件选择部署阶段组件选择根据上…

    2022年5月14日
    59

发表回复

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

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