Dos之For循环精讲
来源:互联网 发布:suse linux设置网络 编辑:程序博客网 时间:2024/06/05 14:51
------无参数------
FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。instance
for %%i in (t*.*) do echo %%i --显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径)
------/R参数------
格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]此命令会搜索指定路径及所有子目录中与set相符合的所有文件,注意是指定路径及所有子目录。
1、set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。
2、如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set中的指定文件是否存在。
instance
for /r c:\ %%i in (*.exe) do echo %%i --把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了------/L参数 ------
格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step
for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5 for /l %%i in (1,2,10) do @echo %%i --输出1,3,5,7,9 for /l %%i in (100,-20,1) do @echo %%i --输出100,80,60,40,20 for /l %%i in (1,1,5) do start cmd --打开5个CMD窗口------/F参数 ------
格式: FOR /F ["options"] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters]或者使用usebackq FOR /F ["options"] %variable IN ("file-set") DO command [command-parameters] FOR /F ["options"] %variable IN ('string') DO command [command-parameters] FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]file为文件名,按照官方的说法是,for会依次将file中的文件打开,并且在进行到下一个文件之前将每个文件读取到内存,按照每一行分成一个一个的元素,忽略空白的行
下面是高手解释:
迭代及文件解析--使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。
请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。然后通过设置为令牌的迭代变量值,调用 for 循环。
默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。
---options的含义---
Tokens
含义就是,提取指定的列,注意列与句的联系与区别。
文本内容由许多文字字符串组成,它们被标点符号分隔,两个标点符号之间的语句我们称为“句子”。
当标点符号被“tokens=”指定为分隔符之后,文字将被分成多个部分。对应的每行的每个部分我们称之为“列”。
一列可能是一个句子,也可能包含多个句子,视delims定义的标点符号而定。
Delims的语法:
for /f "delims=符号集" %%i
一句话总结:忽略分隔符,切分字符串。
EOL=c:指一个行注释字符的结尾(就一个)。例如:eol=; --忽略以分号打头的那些行;
Skip就是要忽略文件的前多少行。例如:skip:2 忽略文件前两行
还是先从括号执行,因为含有参数/f,所以for会先打开a.txt,然后读出a.txt里面的所有内容,把它作为一个集合,并且以每一行作为一个元素,所以会产生这样的集合,而空格在dos里面是会被转意为另一行
{“第1行第1列 第1行第2列 第1行第3列”, //第一个元素
“第2行第1列 第2行第2列 第2行第3列”, //第二个元素
“第3行第1列 第3行第2列 第3行第3列”} //第三个元素
实例进阶,点击进入
------扩展状态------
echo ---显示"dir c:\boot.ini /b " for /f "delims=" %%i IN (temp.txt) DO echo %%~i temp中前置有引号的都删除了 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 不扩展变量 %%i for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~fI %%~fi --扩充到一个完全合格的路径名 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~dI %%~di --仅将变量扩充到一个驱动器号 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~pI %%~pi --仅将变量扩充到一个路径 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~nI %%~ni --仅将变量扩充到一个文件名 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~xI %%~xi --仅将变量扩充到一个文件扩展名 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~sI %%~si --扩充的路径只含有短名 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~aI %%~ai --将变量扩充到文件的文件属性 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~tI %%~ti --将变量扩充到文件的日期/时间 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~zI %%~zi --将变量扩充到文件的大小 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~$PATH:I %%~$PATH:i --查找列在路径环境变量的目录,并将变量扩充到找到的第一个完全合格的名称 echo ---以下显示组合修饰符来得到多重结果---: for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~dpI %%~dpi --仅将变量扩充到一个驱动器号和路径 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~nxI %%~nxi --仅将变量扩充到一个文件名和扩展名 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~fsI %%~fsI --仅将变量扩充到一个带有短名的完整路径名 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~dp$PATH:I %%~dp$PATH:i --查找列在路径环境变量的目录,并将变量扩充到找到的第一个驱动器号和路径 for /f "delims==" %%i in ('dir c:\boot.ini /b') do echo 扩展变量到~ftzaI %%~ftzai --将变量扩充到类似输出线路的DIR
- Dos之For循环精讲
- DOS之for循环
- Dos之For循环示例
- DOS 循环 FOR
- DOS 循环 FOR
- DOS 循环 FOR
- for循环dos
- dos 批处理for循环
- dos命令for循环
- DOS 下循环命令 FOR
- DOS循环:for命令详解
- DOS下for循环运用
- Dos命令 for循环详解
- dos批处理for循环详解
- dos命令之FOR
- DOS命令之for
- 第二章 DOS循环for命令详解
- DOS批处理命令 For循环命令详解!
- 内核中信号发送的过程
- 部署SQL server 2008 R2三节点多实例故障转移群集全过程
- Oracle拾遗系列(一)
- ajax的实现原理
- 有能力约束的单产品批量生产问题,动态规划算法,Matlab
- Dos之For循环精讲
- 由运用场景引发出来的,Spring总结,持续更新
- 无法访问windows installer服务
- SQL Server 2012笔记分享-4:理解SQL server实例
- 测试
- 派生类的构造函数与析构函数
- Android.mk编译带c++ stl的程序
- 十三、struts2使用自定义拦截器
- 自定义AlertDialog