在dos中,当我想获得与特定过滤器匹配的文件列表时,我可以使用以下内容:
*.*
- 意味着归还所有内容*.txt
- 表示返回所有.txt
分机*_abc.*
- 表示返回以_abc
我的问题是,使用dos过滤器结构,我怎么能返回所有文件不匹配 *_abc.*
(换句话说,返回名称不以{{1}结尾的所有文件}})?
我不记得这是否可行而且我需要这个,因为我正在使用的公司正在使用一个非常旧的程序,它仍然使用这种形式的命令过滤来选择要运行的程序的文件 - 此外,不幸的是,我无法通过批处理命令来执行它...它必须是一个命令行语句。
感谢!!!
答案 0 :(得分:1)
使用适当的正则表达式搜索字符串和/V
选项将商家信息的结果传输到FINDSTR以过滤掉匹配的行。
dir /b /a-d * | findstr /v /r "_abc\.[^.]*$"
答案 1 :(得分:0)
看一下这个无关问题的答案。答案确实显示了如何对文件名进行REGEX搜索,当然如果使用REGEX,您可以轻松搜索与表达式不匹配的内容。
https://stackoverflow.com/a/7381962/1246574
希望有所帮助。
修改的
抱歉,没有看到您需要将它作为单行声明而不是批处理。我会留下上面的答案,以防万一它可以帮助其他人,我也会看看我是否可以在一个声明中查看如何做到这一点。