Filter 查找与*不匹配的文件*

Filter 查找与*不匹配的文件*,filter,wildcard,dos,Filter,Wildcard,Dos,在dos中,当我想获得与特定过滤器匹配的文件列表时,我可以使用以下内容: *.-表示返回所有内容 *.txt-表示返回扩展名为.txt的所有文件 *\u abc.*-表示返回以\u abc结尾的每个文件 我的问题是,使用dos过滤器结构,如何返回所有不匹配的文件(换句话说,返回所有名称不以\u abc结尾的文件) 我不记得这是否可行,我需要它,因为我正在工作的一家公司正在使用一个非常旧的程序,它仍然使用那种形式的命令筛选来选择程序要处理的文件-而且,不幸的是,我不能通过批处理命令来完成。。。

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

  • *.
    -表示返回所有内容
  • *.txt
    -表示返回扩展名为
    .txt
    的所有文件
  • *\u abc.*
    -表示返回以
    \u abc
    结尾的每个文件
我的问题是,使用dos过滤器结构,如何返回所有不匹配的文件(换句话说,返回所有名称不以
\u abc
结尾的文件)

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


谢谢

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

希望有帮助

编辑


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

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

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

不管怎样,谢谢你的帖子,@Jim。。。我感谢你的帮助!!不幸的是,这个解决方案不起作用,但我担心它更多地与我正在使用的程序有关,因为它的功能有限。不过,我将把你的解决方案标记为答案,因为我确信如果我的程序装备得更好,你的解决方案就会达到我想要的效果。谢谢