递归搜索具有模式的文件夹并获取其中的文件

递归搜索具有模式的文件夹并获取其中的文件

我希望递归搜索具有特定名称的所有文件夹并获取匹配文件夹内的所有文件。

例如:如果存在一个目录结构

C:\pa\10282019\iron
C:\pa\10282019\steel
C:\pa\10282019\steel\f1.txt
C:\pa\10282019\steel\f2.txt
C:\pa\10292019\iron
C:\pa\10292019\steel
C:\pa\10292019\steel\f3.txt
C:\pa\10292019\steel\f4.txt

我希望的输出是 - 钢文件夹里的所有文件。

C:\pa\10282019\steel\f1.txt
C:\pa\10282019\steel\f2.txt
C:\pa\10292019\steel\f3.txt
C:\pa\10292019\steel\f4.txt

并将它们移动到不同的目录。

运行命令

C:\pa>dir /s/b steel

仅输出文件夹,但不输出其中的文件。请帮忙。

答案1

这应该从命令提示符执行:

for /f %X in ('dir /s/b/ad *steel*') do for /f %Y in ('dir /s/b/a-d %X') do echo %Y >> out.txt

这将搜索名称包含steel(使用不带星号的名称完全等于steel)的所有文件夹,然后列出每个文件夹的所有非文件夹文件,并将其名称添加到out.txt

确保out.txt在开始之前已删除该文件。

为了包含在.bat文件中,每个%都应写为%%

参考 :FOR /F 命令

相关内容