找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22147|回复: 0

[原创] 批处理命令for 的 /r /d 开关的使用小结

[复制链接]
发表于 2013-9-16 20:44:02 | 显示全部楼层 |阅读模式
本帖最后由 悬崖之树 于 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 之类的修正。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:46 , Processed in 0.016832 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表