史上最强之dos命令 - "FOR" - 高级应用范例
2004-05-25 作者:bluebear 阅读量:
2. 将某一文件内容或命令执行结果作为循环范围:
假如你有一个文件 todel.txt,里面是所有要删除的文件列表,现在你想将里面列出的每个文件都删掉。假设这个文件是每个文件名占一行,象这样:
c:\temp\a1.txt c:\temp\a2.txt c:\temp\subdir\b3.txt c:\temp\subdir\b4.txt
那么可以用FOR来完成:
for /f %a in (todel.txt) do del %a
这个命令还可以更强大。比如你的 todel.txt 并不是象上面例子那么干净,而是由DIR直接生成,有一些没用的信息,比如这样:
Volume in drive D is DATA
Volume Serial Number is C47C-9908
Directory of D:\tmp
09/26/2001 12:50 PM 18,426 alg0925.txt
12/02/2001 04:29 AM 795 bsample.txt
04/11/2002 04:18 AM 2,043 invitation.txt
4 File(s) 25,651 bytes
0 Dir(s) 4,060,700,672 bytes free
for 仍然可以解出其中的文件名并进行操作:
for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a DEL %a
当然,上面这个命令是在进行删除,如果你只是想看看哪些文件将被操作,把DEL换成echo:
for /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a echo %a
你将看到:
alg0925.txt
bsample.txt
invitation.txt
skip=5表示跳过前5行(就是DIR输出的头部信息),tokens=5表示将每行的第5列作为循环值放入%a,正好是文件名。在这里我加了一个文件存在判断,是因为最后一行的"free"刚好也是第5列,目前还想不出好的办法来滤掉最后两行,所以检查一下可保万无一失。
上一页 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

























