windows批处理列出任何名为Y的子目录中的任何文件类型X(到文本文件)
我知道我可以通过在目录树中键入windows批处理列出任何名为Y的子目录中的任何文件类型X(到文本文件),windows,batch-file,Windows,Batch File,我知道我可以通过在目录树中键入 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. 阅读的帮助,然后在命令行中尝
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.
阅读的帮助,然后在命令行中尝试此操作 对于(dirname*)中的/D%a,执行@dir/s/b%a*.ext
我可能已经理解了,但你不能这样做:
dir/s/b“子文件夹名称\*.ext”
?如果您想要完全递归,您可以使用
findstr
从完整的目录/b/s
中删除不需要的内容
dir /s /b | findstr /i "directoryname.*\.ext$" >list.txt
。。。将匹配包含directoryname
(包括directoryname01
或01-directoryname
)的任何目录中的.ext
文件,其中目录可能比当前目录深一级以上
在findstr
search regexp中,directoryname
之后的*
表示任何字符中的0个或多个。在glob语法中,它类似于*directoryname*.ext
。有关findstr
语法的更多信息,请参阅help findstr
dir /s /b /a-d *.ext|findstr /i /r ".*\\.*dirname.*\\.*"
/a-d
仅抑制与.ext
掩码匹配的目录名-文件名。findstr
上的/r
可能是多余的,因为regex是默认值/i
强制案例不敏感要匹配的字符串是
[any number of any characters]\[any number of any characters][directoryname][any number of any characters]\[any number of any characters]
由于
\
转义\
此解决方案不是递归此解决方案不是递归您是对的,编辑为包含/R使其成为递归,现在是。
[any number of any characters]\[any number of any characters][directoryname][any number of any characters]\[any number of any characters]