我试图在具有特定模式的文件夹中找到文件,如:
abcd201 abcd001 abcd004
该文件夹包含名为
abcd(3 numbers)我试着用这个模式:
abcd[0,2][0][1,4],但目前无法工作。
DIR /b C:\Folder\abcd"[0,2][0][1,4]".txt谢谢!
发布于 2014-05-27 10:27:09
dir命令不支持正则表达式。您需要使用findstr过滤输出。
dir /b "c:\folder\abcd*.txt" | findstr /r /c:"^abcd[02]0[14]\.txt$"也就是说,使用dir命令获得所搜索内容的第一次近似,然后筛选列表(将dir命令输送到findstr),以只获得所需文件的列表。
正则表达式(/r)在findstr中的意思是:过滤行,从行的开头开始(初始^),然后是abcd,然后是集合[02]中的任何字符,后面是0,后面是集合[14]中的任何字符,后面是点(单点表示任何字符,因此需要转义\.),后面跟着字符串txt和行尾($)。
也许您需要向findstr添加一个/i开关,以表明在匹配时必须忽略大小写。
发布于 2014-05-27 14:11:14
您的示例的正则表达式还将匹配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的方法更快,特别是当文件数量很大时。
https://stackoverflow.com/questions/23886817
复制相似问题