[英]Windows Findstr
我正尝试在具有特定模式的文件夹中查找文件,例如:
abcd201 abcd001 abcd004
该文件夹包含名为
abcd(3 numbers)
我正在尝试使用模式:
abcd[0,2][0][1,4]
但当前不起作用。
DIR /b C:\Folder\abcd"[0,2][0][1,4]".txt
谢谢!
dir
命令不支持正则表达式。 您需要使用findstr过滤输出
dir /b "c:\folder\abcd*.txt" | findstr /r /c:"^abcd[02]0[14]\.txt$"
也就是说,使用dir命令获得要搜索内容的第一近似值,然后过滤列表(将dir
命令传递给findstr
)仅获得所需文件的列表。
findstr
的正则表达式( /r
)表示:过滤行,从行的开头(initial ^
)开始,然后是abcd
,然后是集合[02]
中的任何字符,然后是0
,然后是任意set [14]
的一个字符,后跟一个点(单个点表示任何字符,因此需要转义\\.
),然后是字符串txt
和该行的结尾( $
)。
也许您需要在findstr中添加一个/i
开关,以指示匹配时必须忽略大小写。
您的示例的正则表达式也将匹配abcd204
名称。 您可能会以更简单的方式找到这4个文件:
for %a in (0 2) do for %c in (1 4) do dir /B C:\Folder\abcd%a0%c.txt 2>NUL
此方法比findstr的方法要快,尤其是在文件数量很大的情况下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.