批处理之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)


相关推荐

  • matlab破解版安装教程2016a(中兴盒子adb二维码怎么破解)

    Matlab-Matlab2016a安装破解教程本方法只是研究破解技术所用。如果要使用软件还是要用正版的。Matlab2016a安装包及破解教程百度云分享链接: 链接:https://pan.baidu.com/s/1i6BgD8p    密码:17gg Matlab安装教程: 1、下载文件,得到R2016a_win64.part1.rar、R2016a_…

  • 免费申请国外免费域名超详细教程

    免费申请国外免费域名超详细教程1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

  • 电信系统服务器地址,电信高速dns服务器地址谁知道?

    电信系统服务器地址,电信高速dns服务器地址谁知道?丶言小午回答数:25336|被采纳数:62016-11-2200:56:35全国各地电信DNS北京DNS地址:202.96.199.133202.96.0.133202.106.0.20202.106.148.1202.97.16.195上海DNS地址:202.96.199.132202.96.199.133202.96.209.5202.96.209.6202.96.209.133天津…

  • 【matlab】如何画分段函数的图像[通俗易懂]

    【matlab】如何画分段函数的图像[通俗易懂]MATLAB如何画分段函数的图像通常要用MATLAB画分段函数图像的话,总要分段去画非常麻烦,还需要holdon,现在教你一种简单化分段函数的方法,让你一下子知道这个方法的魅力!!工具/原料MATLAB软件代码方法/步骤1确定你需要的分段函数是怎样一个表

  • 【转载】程序员这口饭-职业规划解决方案

    【转载】程序员这口饭-职业规划解决方案

    2021年11月18日
  • stringutils.isnotblank()_String java

    stringutils.isnotblank()_String java今天在做SSM系统时候,为了进行查询特意使用StringUtils.isNotBlank(name)一定注意导入的包是:importorg.apache.commons.lang3.StringUtils;开始使用的是com.mysql.jdbc中的StringUtils.isNullOrEmpty,,,结果导致在我进行查询的时候各种错误,特地来此总结一番。StringUtils方法的

发表回复

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

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