dos中的for命令简单使用
2013-11-03 23:06
691 查看
1、不添加任何参数,for循环显示非目录文件
for命令帮助信息是这样写的:
/**
FOR %variable IN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
*/
目录如下:
建立一文件 test.bat ,复制以下代码:
双击运行结果:
可以明显的看到图中并没有显示目录
2、通过 /d 参数显示目录文件:
for命令帮助信息是这样写的:
/**
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
*/
复制以下代码:
可以看到,加了参数 /d 后,只显示了目录文件
3、通过 /R 参数,显示目录的级
for命令帮助信息是这样写的:
/**
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。
*/
我们在bbbbb目录下在创建ccc和ddd目录,在ccc目录里再穿件eee目录:
复制一下代码,栓剂运行:
运行结果:
可以看到命令行将目录的各级都显示出来了
4、fort通过参数 /L 来实现递增递减循环:
for命令帮助信息是这样写的:
/**
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列
1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)
*/
复制一下代码:
运行结果:
如果改为: for /L %%i in (4,-1,2),则将以2为递减循环。
5、通过参数 /F 来对文件进行操作:
这里帮助信息太多,就不列出来了,建立一个文件,输入一下类容:
1234567890
aaaaaaaaaa
bb$bbbb*bb
cccccccccc
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg
格式如下:
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]
其中“options”有这些:eol=c, skip=n, delims=xxx, tokens=x,y,x-n, usebackq
首先我们来看elo=c,他表示忽略以c开头的行,例如复制以下代码:
执行结果:
可以看到fffffffffffff的那一行并没有被打印。
skip=n,表示跳过开头n行,例如复制以下代码:
执行结果:
可以看到数字行和aaaaaaaaaaaaaaa行没有打印出来;
delims=xy,表示在每一行中以x为分隔符号,x和y后面的字符忽略,复制以下代码:
执行结果:
对于tokens=n,m,n-m,参考:
http://blog.sina.com.cn/s/blog_4b795cc10100ez8d.html
对于usebackq,参见:
http://www.360doc.com/content/10/0706/05/1438974_37156664.shtml
6、对于set里面包含多条命令的方法
如下代码:
筛选某个目录下的txt文件,在管道前加 ^ 符号。
参见:http://bbs.csdn.net/topics/340021271
/article/8916312.html
for命令帮助信息是这样写的:
/**
FOR %variable IN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
*/
目录如下:
建立一文件 test.bat ,复制以下代码:
@echo off for %%i in (C:\Users\Administrator\Desktop\test\*) do echo %%i pause
双击运行结果:
可以明显的看到图中并没有显示目录
2、通过 /d 参数显示目录文件:
for命令帮助信息是这样写的:
/**
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
*/
复制以下代码:
@echo off for /d %%i in (C:\Users\Administrator\Desktop\test\*) do echo %%i pause
可以看到,加了参数 /d 后,只显示了目录文件
3、通过 /R 参数,显示目录的级
for命令帮助信息是这样写的:
/**
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。
*/
我们在bbbbb目录下在创建ccc和ddd目录,在ccc目录里再穿件eee目录:
复制一下代码,栓剂运行:
@echo off for /R C:\Users\Administrator\Desktop\test %%i in (.) do echo %%i pause
运行结果:
可以看到命令行将目录的各级都显示出来了
4、fort通过参数 /L 来实现递增递减循环:
for命令帮助信息是这样写的:
/**
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列
1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)
*/
复制一下代码:
@echo off for /L %%i in (1,1,4) do echo %%i pause
运行结果:
如果改为: for /L %%i in (4,-1,2),则将以2为递减循环。
5、通过参数 /F 来对文件进行操作:
这里帮助信息太多,就不列出来了,建立一个文件,输入一下类容:
1234567890
aaaaaaaaaa
bb$bbbb*bb
cccccccccc
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg
格式如下:
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]
其中“options”有这些:eol=c, skip=n, delims=xxx, tokens=x,y,x-n, usebackq
首先我们来看elo=c,他表示忽略以c开头的行,例如复制以下代码:
@echo off for /f "eol=f" %%i in (C:\Users\Administrator\Desktop\test\hello.txt) do echo %%i pause
执行结果:
可以看到fffffffffffff的那一行并没有被打印。
skip=n,表示跳过开头n行,例如复制以下代码:
@echo off for /f "skip=2" %%i in (C:\Users\Administrator\Desktop\test\hello.txt) do echo %%i pause
执行结果:
可以看到数字行和aaaaaaaaaaaaaaa行没有打印出来;
delims=xy,表示在每一行中以x为分隔符号,x和y后面的字符忽略,复制以下代码:
@echo off for /f "delims=$" %%i in (C:\Users\Administrator\Desktop\test\hello.txt) do echo %%i pause
执行结果:
对于tokens=n,m,n-m,参考:
http://blog.sina.com.cn/s/blog_4b795cc10100ez8d.html
对于usebackq,参见:
http://www.360doc.com/content/10/0706/05/1438974_37156664.shtml
6、对于set里面包含多条命令的方法
如下代码:
@echo off for /f "delims=" %%i in ('dir /b .. ^| find "txt"') do echo %%i pause
筛选某个目录下的txt文件,在管道前加 ^ 符号。
参见:http://bbs.csdn.net/topics/340021271
/article/8916312.html
相关文章推荐
- 在dos下使用简单的ftp命令
- dos for命令 使用
- DOS命令的简单使用
- 简单的DOS使用命令
- dos命令中for /r和for /d的简单用法
- DOS中使用FOR命令
- DOS命令下使用sqlite3 命令中文乱码的解决办法
- dos命令 cd命令使用说明[图文说明]
- mysql的初识--DOS下的简单命令
- Navicat for MySQL and dos 在win7 64 位系统中遇到的问题,以及简单操作
- 使用tcpdump抓包和简单的命令
- Git的初次使用 ; Git常用命令查询 ; Git push ; Git pull 2011-12-16 17:32 在介绍安装和简单使用前,先看一下百度百科中的简介吧: ———————————
- dos下遍历目录和文件的代码(主要利用for命令)
- Adb-For-Test 使用 adb 命令实现元素定位等功能,用来辅助 android 测试
- 简单的DOS命令
- IAR for 430软件的简单使用
- Github for Windows 1.0 版本的简单使用介绍
- Windows下使用DOS命令进入MySQL数据库
- Unix find命令的简单使用
- Delphi命令行输出组件DOSCommand及Widnows 命令解释使用说明