在批处理文件中循环遍历子目录中的文件

5
我试图遍历子目录中的一堆文件,并对它们运行一个命令,但我似乎无法找到它们的位置。
目录结构如下:
主目录(包含.bat文件和顶级目录)
- 子目录 - 搜索目录 - 一堆文件(我需要单独获得所有这些文件的位置)
我能够使用以下命令获取“主目录”中所有文件/文件夹的列表:
for /f %%f in ('dir /b /r *') do echo %%f

但是我似乎无法弄清楚如何进入目录以获取“搜索”目录中的文件。

文件结构示例:

C:\Users\swiftsly\Search160\0002\search\AP584.txt

非常感谢您的帮助!


3
如果你曾经阅读过DIR命令的帮助文档,你可能会注意到**/S**选项。但我建议使用FOR /R命令而不是FOR /F。 - Squashman
@Squashman,“for /R”很好,只要循环体不操作目录树。由于OP没有说明要在列举的文件上执行什么命令,我会选择for /F/dir /B /S选项来更安全;参见此帖子:在哪个点上forfor /R列举目录(树)?... - aschipfl
1个回答

4

在Squashman的建议下,这个问题的最终解决方案是使用/R而不是/f

@echo off    
for /R %%f in (*.txt) do echo %%f

这将打印出子目录中所有 .txt 文件的列表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接