Board logo

标题: [原创] 批处理命令for 的 /r /d 开关的使用小结 [打印本页]

作者: 悬崖之树    时间: 2013-9-16 20:44     标题: 批处理命令for 的 /r /d 开关的使用小结

本帖最后由 悬崖之树 于 2017-8-1 20:21 编辑

例子1:
for /r %%i in (  ) do echo %%i
解释:
如果在括号里的是一些无特殊意义的字符如"."  "abc"之类的, 那输出的%%i
的值为遍历到的文件夹的绝对地址(地址带有\号)后加上这些特殊字符。

如果括号里的是含有通配符(* ?)的,那么不是像上边那样直接加在文件夹地址后了。含有通配符的字符串会被扩展成实际存在的文件名。
比如 for /r %%i in (1.t*t) do echo %%i 这个代码将显示所有符合要求(比如 1.txt 1.tt 1.tst)的文件的绝对路径。



例子2:
for /d /r %%i in ( ) do echo %%i
解释:
第一种情况和上面相似,直接把字符加在路径后面。

如果含有通配符的,那么它将显示所有的文件夹名符合通配规则的文件夹的绝对路径,同时去掉\号。

ps:

例子1的代码会把当前目录和子目录显示出来,而例子2只显示当前目录的子目录。
例子1显示的结果可以看成是文件,而例子2显示的结果则应该看成是文件夹,因为有/d 的存在。
如果输出的%%i格式达不到要求,还可以用%%~fi 之类的修正。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2