标题: [特效代码] [已解决]批处理for命令的r和d两个参数怎样一起用? [打印本页]
作者: Hello123World 时间: 2011-4-19 17:20 标题: [已解决]批处理for命令的r和d两个参数怎样一起用?
可以看出,与双重的for循环相比,for /r语句简单而同时又更为强大。有时候甚至可以将for /r与for /d结合起来使用(而不需使用双重的for循环),如下面给出的实例,该实例列出了%SystemRoot%下的所有目录及其子目录:
for /r %SystemRoot%/d %%B in (*) do echo %%B
http://book.51cto.com/art/200908/146462.htm
这里的用法好像出错了,for /r /d 可以一起用吗,一起用怎么用(一个for两个参数)
作者: CrLf 时间: 2011-4-19 18:04
只要同时符合for /r和for /d的语法就行,遮掉一个开关看看语法对吗?
作者: batman 时间: 2011-4-19 18:10
for /d就能枚举所有的目录(包括子目录),为什么还要加上/r。。。
for /r就能枚举所有的文件(包括子目录中的)。。。
个人认为/d和/r参数是不能放在一起用的。。。
作者: CrLf 时间: 2011-4-19 18:15
本帖最后由 zm900612 于 2011-4-19 18:16 编辑
试了下,发现我原来的理解也有问题:- for /d /r H:\ %a in (*) do echo %a
- ::开关顺序对调就可以了,为什么呢?
复制代码
作者: plp626 时间: 2011-4-20 11:22
for /d就能枚举所有的目录(包括子目录),为什么还要加上/r。。。
for /r就能枚举所有的文件(包括子目录中的)。。。
个人认为/d和/r参数是不能放在一起用的。。。
batman 发表于 2011-4-19 18:10
"for /d就能枚举所有的目录(包括子目录),"
这个,是不是你括号里少打了一个字?
作者: Hello123World 时间: 2011-4-20 13:49
4# zm900612
for /d /r H:\ %a in (*) do echo %a
::开关顺序对调就可以了,为什么呢?
for /d /r c:\hello %a in (*) do echo %a
这句代码虽然可以运行,但是事实上只有/d参数是有效地,/r参数没有发挥用处。
作者: Hello123World 时间: 2011-4-20 13:51
我有点倾向于3楼的说法了,可能是书错了?
作者: hanyeguxing 时间: 2011-4-20 14:35
本帖最后由 hanyeguxing 于 2011-4-20 15:48 编辑
以下枚举时均不包括隐藏属性,"选项"为可选
for %%a in (*) do echo;%%a 枚举目录中所有文件,不包括子目录中的
for /d %%a in (*) do echo;%%a 枚举目录中所有文件夹,不包括子目录中的
for /r "选项" %%a in (*) do echo;%%a 枚举目录中所有文件,包括子目录中
for /r "选项" /d %%a in (*) do echo;%%a
for /d /r "选项" %%a in (*) do echo;%%a 枚举目录中所有文件夹,包括子目录中
/r 和 /d 一起使用时:
1,因为仅 for /r 支持 "选项" ,所以在 /r 和 /d 一起使用时,"选项"必须跟在 /r 的后面。
2,/r 和 /d 没有先后顺序
3,/r /d "选项" 之间要分隔
ps:书中错误的没有将 /r /d "选项" 之间使用空格分隔
作者: CrLf 时间: 2011-4-20 14:35
4# zm900612
for /d /r H:\ %a in (*) do echo %a
::开关顺序对调就可以了,为什么呢?
for /d /r c:\hello %a in (*) do echo %a
这句代码虽然可以运行,但是事实上只有/d参数是有效地,/r参数没有发挥 ...
Hello123World 发表于 2011-4-20 13:49
nonono,此时/r与/d开关联用,是取得所有子文件夹名,而非当前文件夹名
作者: Hello123World 时间: 2011-4-20 15:51
/r /d 还是可以联合用的,谢谢各位大神。
作者: Hello123World 时间: 2011-4-20 16:21
5# plp626
你说的是个不字吗?——开始没明白。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |