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