史上最强之dos命令 - "FOR" - 高级应用范例
2004-05-25 作者:bluebear 阅读量:
1. 用 /r 遍历目录树
当用 *.* 或 *.txt 等文件名通配符作为 for /r 的循环范围时,可以对当前目录下所有文件(包括子目录里面的文件)进行操作。举个例子,你想在当前目录的所有txt文件(包括子目录)内容中查找"bluebear"字样,但由于find本身不能遍历子目录,所以我们用for:
for /r . %a in (*.txt) do @find "bluebear" %a
find 前面的 @ 只是让输出结果不包括 find 命令本身。这是DOS很早就有的功能。和FOR无关。
当用 . 作为循环范围时,for 只将子目录的结构(目录名)作为循环范围,而不包括里面的文件。有点象 TREE 命令,不过侧重点不同。TREE 的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软件发行时我们想把这些CVS目录全部去掉:
for /r . %a in (.) do @if exist %a\CVS rd /s /q %a\CVS
先用 if exist 判断一下,是因为 for 只是机械的对每个目录进行列举,如果有些目录下面没有CVS也会被执行到。用 if exist 判断一下比较安全。
这种删除命令威力太大,请小心使用。最好是在真正执行以上的删除命令前,将 rd /s /q 换成 @echo 先列出要删出的目录,确认无误后再换回rd /s /q:
for /r . %a in (.) do @if exist %a\CVS @echo %a\CVS
可能目录中会多出一层 ".",比如 c:\proj\release\.\CVS ,但不会影响命令的执行效果。
上一页 1 2 [3] 4 5 6 7 下一页
责任编辑:平生一笑
文章来源:ror 2004-05-25
请发表评论或留言 |
热门评论文章(165楼)·评测:死磕面板!三星 226BW液晶(146楼)·评测:台电T29专杀nano与魅族 M6 (118楼)·评测:王朝更替!魅族miniplayer (85楼)·机箱也疯狂,小编亲历五年升级路 (82楼)·评测:硕美科质量遭质疑是真是假 相关文章 |
| :硬件: | :软件: |
上海趋安计算机科技有限公司 蔫老虎在线评测网·版权所有 沪ICP备05007473号
Copyright © 2002-2007 PCICP.COM.All Rights Reserved.
E-Mail:support@pcicp.com Tel:021-54253292 54253293 Fax:021-54253293

























