中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]for语句的问题? 上一主题 | 下一主题
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『楼 主』:  [求助]for语句的问题?

我看了最强之dos命令 – for (是新手学习FOR语句的好资料),觉得收获很多,但由于对for理解还很浅,所有该文章中的许多知识都还是很难理解:
1.假设当前目录中有a1,a2,a3和子目录temp下有a4,a5,a6六个文本文件,只有a1和a4中有“zgk”内容.
那么,我执行
for /r . %a in (.) do @find "zgk" %a
为什么显示如下错误:
拒绝访问 - C:\TREE\.
拒绝访问 - C:\TREE\TEMP\
以.为循环范围,不是说for 只将子目录的结构(目录名)作为循环范围,而不包括里面的文件,那么为什么对当前目录tree也处理呢?
如果我只想对当前目录tree又不想对temp目录遍历,该怎么做?
2.看到这样的例子,但没有实践
有一个文本有如下内容:
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 /f "skip=5 tokens=5" %a in (todel.txt) do @if exist %a echo %a
执行显示结果:
alg0925.txt
bsample.txt
invitation.txt
不是跳到第5行,应该显示
bsample.txt
invitation.txt
对吗?
3.我试了该命令行
for %a in (c: d: e: f do @dir %a\   find "bytes free"
我改成了
for %a in (c: d: e: f:)  do @dir %a |  find "bytes free">temp.txt
在cmd下执行,感觉有信息一闪而过,也生成了temp.txt,但它什么信息也没有啊,我该怎样实现查看各盘的空闲空间呢?

2007-11-15 09:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 2 楼』:  

1.
for /f "delims=" %a in ('dir /b /s /a-d *.txt') do find "zgk" %~sa
2.
for /f "skip=5 tokens=5" %a in (todel.txt) do @if @if not "%a"=="" echo %a echo %a
skip=n          - 指在文件开始时忽略的行数。
3.
你可能是中文的系统
find "可用字节">>temp.txt

2007-11-15 10:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by junchen2 at 2007-11-15 10:15:
1.
for /f "delims=" %a in ('dir /b /s /a-d *.txt') do find "zgk" %~sa
2.
for /f "skip=5 tokens=5" %a in (todel.txt) do @if @if not "%a"=="" echo ...

谢谢,第1个问题解决了.
第2个问题我想请教,skip=5,那么条过5行,就应该是从第6行开始执行,
那应该是显示
bsample.txt
invitation.txt
而不应该是
alg0925.txt
bsample.txt
invitation.txt
这样理解对吗?
我的系统是中文系统,但即使
find "空闲字节">>temp.txt
也还是生成一个零字节的文本文件,不能查看到任何盘符的空闲空间啊
能帮助在解释一下吗?

2007-11-15 10:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 4 楼』:  

todel.txt正文前可能有空格,我测试为
invitation.txt
free

3。
find "空闲字节">>temp.txt
find "可用字节">>temp.txt

2007-11-15 10:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: