CMD中for的用法详解命令扩展

Posted 橙子Oranges

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMD中for的用法详解命令扩展相关的知识,希望对你有一定的参考价值。

CMD FOR的在文件\\文件夹索引的用法实例详解

实例 1 for /D 用于在指定目录内搜索子目录名

基本格式是:

for /D %i in (目录名\\通配符) do (命令行) 

目录名 可以是自己指定的目录,例如C:\\Users\\Administer\\Desktop,或者是.\\指的是当下目录,该变量必须定义。

通配符 可以是*或者?,分别代表多个字符和一个字符。

命令行 可以不使用括号括起来。

例1:

for /D %i in (.\\*) do echo %i
::在当前文件夹下搜索所有的目录(文件夹)

例2:

for /D %i in (2,3,5) do echo %i
::此时输出:
>
2
3
5
>

例2 主要是为了补充该分类下的用法。其实该分类下用法的官方解释为:

FOR /D %variable IN (set) DO command
:: 如果set中包含通配符,则指定与目录名匹配,而不与文件名匹配.

因此如果set 是一组采用分隔符分隔的文件名组,不含有通配符,那么就可以挨个对文件名进行操作了。

实例 2 for /R 用于在指定目录内搜索文件名

基本格式是:

for /R 盘符:\\目录 %i in (目录名) do (命令行)

盘符目录指定了要在哪个目录树下执行for语句。
目录名 的定义同实例1,该方法会枚举该目录下的文件。

例如:

for /R C:\\Users\\ %i in (Desktop\\*) do echo %i
::以盘符C下的Users为目录树,在该目录树下运行for语句,在Desktop文件夹中枚举文件.

值得注意的是:如果/R后没有指定目录规范,则默认使用当前目录。如果目录名(.),则枚举该目录树。

实例 3 for /L 用于以增量形式输出数字序列

基本格式是:

FOR /L %i IN (开始,步长,结束) DO (命令行)

例如:

FOR /L %i IN (-7,1,-3) DO (echo %i )
::该方法输出:
>
-7
-5
-3
>

实例 4 for /F 用于在指定文件内(.txt)搜索文件内容

基本格式是:

for /F "选项" %i in (set) do (命令行)

set 可以是一个或者多个文件名,这些文件都会被打开读取处理解析处理将文件分割成一行行的文字,其次在每行解析出零个或更多的符号,最后用已找到的符号调用 For 循环,默认使用 [空格] 符号分割每行。

选项的内容有:

关键词描述
eol=character- 指定行尾字符
skip=n- 跳过的行数
delims=xxx- 指分隔符集。这个替换了默认的空格分隔符
tokens=x,y,m-n- 指定输出的列数1
usebackq- 允许set中使用反向单引号,单引号和双引号

例12

for /F "delims=、-, tokens=1" %i in (test.txt) do @echo %i
::在test文档中使用./-分隔号将每一行内容分割,并且输出每一行的第一列内容
>输出结果为:
1
2
3
4
>

例2

for /F "usebackq delims=:/ tokens=2" %i in (`date`) do echo %i
::打印结果为:
>
2021
(年月日)
>

例2 是作为该分类的补充,即使用usebackq时,set可以为命令行

例3

for "usebackq delims=:/ tokens=2" %i in ('当前日期: 2021/04/24 周六') do @echo %i 
::输出结果为:
>
2021
>

例3 是作为该分类的补充,set可以为字符串,但是可能需要usebackq扩展命令。

本章所提到的扩展命令均是对for本身和set的扩展


  1. tokens=x 输出第x列。
    tokens=m-n 输出第m至第n列。
    tokens= 提取全部。
    tokens=* 表示删除每行前面的空格忽略行首的所有空格。
    tokens=m*提取第m列以后的所有字符,星号表示剩余的字符。
    tokens=m,* 提取第m列以后的所有字符,星号表示剩余的字符。

    ↩︎
  2. test.txt内容为:
    1、永远跟党走-红歌.mp3
    2、匆匆那年-电影.avi
    3、世界美好与你环环相扣-歌曲.mp3
    4、春风十里不如隔壁-歌曲.mp3

    ↩︎

以上是关于CMD中for的用法详解命令扩展的主要内容,如果未能解决你的问题,请参考以下文章

Windows bat脚本——for循环用法详解

批处理参数详解

CMD for用法

Windows bat脚本之for循环用法

批处理中for的用法和参数作用

[转] DOS命令for用法详解