首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows Findstr

Windows Findstr
EN

Stack Overflow用户
提问于 2014-05-27 10:17:55
回答 2查看 374关注 0票数 0

我试图在具有特定模式的文件夹中找到文件,如:

abcd201 abcd001 abcd004

该文件夹包含名为

代码语言:javascript
复制
abcd(3 numbers)

我试着用这个模式:

abcd[0,2][0][1,4],但目前无法工作。

代码语言:javascript
复制
DIR /b C:\Folder\abcd"[0,2][0][1,4]".txt

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-27 10:27:09

dir命令不支持正则表达式。您需要使用findstr过滤输出。

代码语言:javascript
复制
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开关,以表明在匹配时必须忽略大小写。

票数 2
EN

Stack Overflow用户

发布于 2014-05-27 14:11:14

您的示例的正则表达式还将匹配abcd204名称。您可能会以一种更简单的方式找到这4个文件:

代码语言:javascript
复制
for %a in (0 2) do for %c in (1 4) do dir /B C:\Folder\abcd%a0%c.txt 2>NUL

此方法比findstr的方法更快,特别是当文件数量很大时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23886817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档