0

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

  • *.*- 意味着归还一切
  • *.txt- 表示返回所有带有.txt扩展名的文件
  • *_abc.*- 意味着返回每个以结尾的文件_abc

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

我不记得这是否可能,我需要这个,因为我正在与之合作的一家公司正在使用一个非常旧的程序,该程序仍然使用这种形式的命令过滤来选择程序要处理的文件 - 另外,不幸的是,我不能通过批处理命令来完成......它必须是一个命令行语句。

谢谢!!!

4

2 回答 2

1

使用适当的正则表达式搜索字符串和/V过滤掉匹配行的选项将列表结果通过管道传输到 FINDSTR。

dir /b /a-d * | findstr /v /r "_abc\.[^.]*$"
于 2013-06-05T21:40:41.150 回答
0

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

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

希望有帮助。

编辑

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

于 2013-06-05T19:14:49.923 回答