0

我知道我可以在目录树中按类型获取任何文件

dir /s /b *.ext > list.txt

或按名称命名的任何子目录

dir /s/b *directoryName* >list.txt

但是我如何结合它来按类型和子目录名称获取文件列表?

 dir /s /b *directoryname\*.ext
>>The filename, directory name, or volume label syntax is incorrect.
4

4 回答 4

0

HELP FOR在命令行中阅读并尝试

for /D %a in (dirname*) do @dir /s /b %a*.ext

for /R /D %a in (dirname*) do @dir /s /b %a\*.ext 1>>list.txt 2>nul
于 2013-04-08T20:01:42.790 回答
0

我可能已经理解,但你不能这样做:

dir /s /b "SubfolderName\*.ext"

?

于 2013-04-08T20:04:25.613 回答
0

如果您想要完全递归,您可以使用findstr完整的dir /b /s.

dir /s /b | findstr /i "directoryname.*\.ext$" >list.txt

... 将匹配包含(包括或).ext的任何目录中的文件,其中该目录可能比当前目录深一层以上。directorynamedirectoryname0101 - directoryname

findstr搜索正则表达式中,.*afterdirectoryname表示任何字符的 0 个或多个。在 glob 语法中,它就像*directoryname*.ext. 有关语法help findstr的更多信息,请参阅。findstr

于 2013-04-08T20:07:39.927 回答
0
dir /s /b /a-d *.ext|findstr /i /r ".*\\.*dirname.*\\.*"

/a-d抑制与.ext掩码匹配的目录名 - 仅文件名。可能是多余的
,因为正则表达式是默认 的强制大小写不敏感 字符串匹配是 /rfindstr
/i

[any number of any characters]\[any number of any characters][directoryname][any number of any characters]\[any number of any characters]

因为\逃跑了\

于 2013-04-09T01:04:53.120 回答