Windows Batch如何用FOR /D /R递归遍历目录且包含无点后缀根目录
解决方案
有两种常用的实现方式,都可以满足你的需求:
方式1:使用FOR变量路径修饰符清理后缀
直接在你之前带(.)的命令基础上,用FOR的内置路径修饰符~f自动标准化路径,会自动去除末尾多余的\.:
:: 写在.bat批处理文件中使用如下命令 FOR /D /R "C:\Users\Mark\Desktop" %%a in (.) do echo %%~fa
如果是直接在CMD命令行中执行,把双百分号改成单百分号即可:
FOR /D /R "C:\Users\Mark\Desktop" %a in (.) do echo %~fa
方式2:分开输出根目录+子目录
如果你不想用(.)匹配,也可以先手动输出根目录,再执行原来遍历子目录的命令:
:: 先输出根目录 echo C:\Users\Mark\Desktop :: 再遍历输出所有子目录 FOR /D /R "C:\Users\Mark\Desktop" %%a in (*) do echo %%a
两种方式的输出结果完全符合你要求的格式,既包含根目录,也没有多余的后缀。
内容的提问来源于stack exchange,提问作者HTWingNut
相关产品推荐
相关产品推荐

