查找不匹配* _abc的文件。*

时间:2013-06-05 19:03:47

标签: filter wildcard dos

在dos中,当我想获得与特定过滤器匹配的文件列表时,我可以使用以下内容:

  • *.* - 意味着归还所有内容
  • *.txt - 表示返回所有.txt分机
  • 的文件
  • *_abc.* - 表示返回以_abc
  • 结尾的每个文件

我的问题是,使用dos过滤器结构,我怎么能返回所有文件不匹配 *_abc.*(换句话说,返回名称不以{{1}结尾的所有文件}})?

我不记得这是否可行而且我需要这个,因为我正在使用的公司正在使用一个非常旧的程序,它仍然使用这种形式的命令过滤来选择要运行的程序的文件 - 此外,不幸的是,我无法通过批处理命令来执行它...它必须是一个命令行语句。

感谢!!!

2 个答案:

答案 0 :(得分:1)

使用适当的正则表达式搜索字符串和/V选项将商家信息的结果传输到FINDSTR以过滤掉匹配的行。

dir /b /a-d * | findstr /v /r "_abc\.[^.]*$"

答案 1 :(得分:0)

看一下这个无关问题的答案。答案确实显示了如何对文件名进行REGEX搜索,当然如果使用REGEX,您可以轻松搜索与表达式不匹配的内容。

https://stackoverflow.com/a/7381962/1246574

希望有所帮助。

修改

抱歉,没有看到您需要将它作为单行声明而不是批处理。我会留下上面的答案,以防万一它可以帮助其他人,我也会看看我是否可以在一个声明中查看如何做到这一点。