『楼 主』:
[求助]for语句的问题?
使用 LLM 解释/回答一下
我看了最强之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,但它什么信息也没有啊,我该怎样实现查看各盘的空闲空间呢?
|