考虑以下目录结构
- Temp\
- Temp\DirA\
- Temp\DirA\Content\
- Temp\DirA\Content\file.txt
- Temp\DirB\
- Temp\DirB\Content\
- Temp\DirB\Content\file.txt
现在我想在单行语句中列出内容目录中的所有文本文件。我希望这样的事情可以发挥作用:
dir Temp\*\Content\*.txt
但它没有(它给出语法错误)。即使forfiles返回一个空结果。有没有方便的方法来实现这个目标?
请注意:我的真实世界命令将包含多个通配符。我不想将foreach目录与foreach文件结合起来。
答案 0 :(得分:3)
使用递归dir /s
并按\Content\
过滤输出:
dir /s /b Temp\*.txt Temp\*.log | find "\Content\"
如果您不需要在Content\other_folder\
中列出文件,请使用正则表达式:
dir /s /b Temp\*.txt Temp\*.log | findstr /r "\\Content\\[^\\]*$"