批处理 for 的使用教程
的有关信息介绍如下:for 可谓是批处理程序中的精华部分, 主要对文本文件的处理十分强大, 按行, 按列, 提取指定文字, 其主要语法为: for %%i in ("hello, world") do echo %%i for in do 这三个参数必须一起使用, do 前面是要进行输出的, 文本文件或字符串及命令, do 后面是输出语句或条件判断, in 前面是参数, 将 do 前面要输出的内容给 in 前面的参数,由这个参数来接受值, 接受之后将这个值给 do 后面的 %%i 来进行输出, 循环不止, 直到没有内容,
win + R 打开资源管理器输入: cmd 点击: 确定
在 cmd 里面输入: for /? 来查看 for 命令和参数的使用
语法:
for %variable in (set) do command [command-parameters]
参数:
set 指定一个文本文件或字符串,及命令
command 指定一个命令来输出信息, 比如: echo, type
command-parameters 为一条命令添加的参数
variable 指定一个大写和小写字符,a-z,A-Z, 大小写有明确的区分, 比如: I 和 i 是不同的参数, 在 in 前面只能有一个参数, do 后面可以有多个参数, 但必须根据字符的顺序来写, 如: i, j, k, 只能从小到大, 不能大小颠倒字符来使用,在 cmd 里面使用 for 和在批处理文件里面写, 是有些不同的, 如下:
在 cmd 里面这样写: for %i in (*.txt) do echo %i
在批处理里面这样写: for %%i in (*.txt) do echo %%i
在批处理文件里面比在 cmd 里面的参数上多了一个 % 号, 这是因为在批处理文件里面 % 号要进行转义, 而在 cmd 里面输入则不需要,其中 for 有三中文件填写格式, 如下:
for %%i in (文本文件) do echo %%i
for %%j in ('命令格式') do echo %%j
for %%k in ("字符串格式") do echo %%k
第一种输出格式: 会先当里面为文本文件来查找, 如果当前目录没有这个文件名, 则会当字符来进行输出
第二中输出格式: 写入命令, 如: 'dir /a-d /b 文件夹' 要用单引号扩起来
第三中输出格式: 为字符串,如果多个字符串, 可以使用, 逗号, 空格, 进行分割
------------------------------
以下命令都以批处理脚本为例
------------------------------
输出当前目录所有以 .txt 结尾的文本文件: for %%i in (*.txt) do echo %%i
输出当前目录所有文件,(不会输出文件夹): for %%i in (*) do echo %%i
输出字符串: for %%i in ("hello world") do echo %%i
输出当前目录所有文件夹: for /d %%i in (*) do echo %%i
参数 /d 详解: 查找当前目录所有文件夹
指定路径来输出文件夹: for /r D:\ApowerREC %%i in (*.dll) do echo %%i
参数: /r 详解: 输出指定目录或盘符下的文件
输出文本文件内容: for /f %%i (temp.txt) do echo %%i
参数: /f 详解: 显示文本文件内容
删除以逗号分割的字符: for /f "delims=," %%i (temp.txt) do echo %%i
参数 delims 详解: 指定一个符号,来进行分割, 如果一个文本文件里面要分割多个符号, 可以这样写: delims=,;$ 中间没有空格, 要是文本文件里面没有这个符号, 则忽略,
屏蔽掉以分号开头的字符: for /f "eol=;" %%i (temp.txt) do echo %%i
参数 eol 详解: 指定一个符号, 如果这个符号在开头部分, 则会屏蔽掉这行字符,
指定以第几行开始输出: for /f "skip=2" %%i (temp.txt) do echo %%i
参数 skip 详解: 指在开始时忽略的行数
参数分割输出字符: for /f "delims=, tokens=1" %%i (temp.txt) do echo %%i
参数 tokens 详解: 指定要输出参数的个数, 可以是一个数字或多个数字, 如果是多个数字建议这样写: tokens=1-4,或 tokens=1,4, 这带表可以有 4 个参数来进行输出, 可以在 do 的后面加上, %%i, %%j, %%k, %%l 这 4 个变量来进行 接受
多参数输出:for /f "delims=, tokens=1,2" %%i (temp.txt) do echo %%i %%j
最后一行: 说的好有道理噢, 没有输出, 因为 delims 是以逗号进行的分割, 而 tokens 只指定输出第一节和第二节字符,其他字符则不会输出