我知道我可以在目录树中按类型获取任何文件
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.
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
我可能已经理解,但你不能这样做:
dir /s /b "SubfolderName\*.ext"
?
如果您想要完全递归,您可以使用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
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]
因为\逃跑了\