使用目录通配符

时间:2015-10-07 10:17:10

标签: batch-file wildcard

考虑以下目录结构

- 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文件结合起来。

1 个答案:

答案 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\\[^\\]*$"