|
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 |
|
|