[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 批处理命令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 之类的修正。
时光荏苒||新陈代谢&&涛声依旧||本性难移

返回列表