我希望递归搜索具有特定名称的所有文件夹并获取匹配文件夹内的所有文件。
例如:如果存在一个目录结构
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 命令。