Windows 7 搜索文件名中带有特殊字符的文件?

Mat*_*ino 31 windows search windows-7 windows-explorer windows-search

我试图在 Windows 7 中查找文件名中有括号的文件。

但是,当我键入(or*(*"("or 时,*"("*我什么也没有得到,也没有得到每个文件。

微软关于桌面搜索的“高级查询语法”参考没有提及这一点。

是什么赋予了?

小智 32

使用以下语法:~="(".

~=是转义字符,然后你可以把一个特殊字符像(&?在双引号等。

  • 像这样:`~="~$"` (3认同)
  • 我必须省略引号才能使用句点。 (2认同)

小智 6

让我们帮忙!

对于任何 Windows 搜索问题,我的建议是两件事:

  1. 阅读AQS(高级查询语法)文档,了解所有特殊字符的作用。
  2. 知道 Windows 搜索会将您的查询转换为精确的 AQS,除非您在查询中是特定的,否则 Windows 会猜测您的实际意思是什么。结果可能令人惊讶!

一、AQS的一些基础知识

默认情况下,字符串文件属性(文件名、作者等)使用 搜索COP_WORD_STARTSWITH $<,因此任何以您的搜索词开头的单词(由spaces , - _ () []和 more分隔)。COP_EQUAL =默认情况下,其他非字符串属性(日期等)使用, 或完全匹配进行搜索(无通配符,*并且?是文字)。

其次,如果您在任何已编入索引的位置进行搜索,则查询中所有未编入索引的位置都不会显示。

第三,单击地址栏以查看 AQS Windows Search 实际搜索的内容。您可以忽略位置信息和显示名称:它将被百分比编码,因此在像https://www.url-encode-decode.com/这样的网站上进行解码

第四,未记录,*并且?在 AQS 中的行为不可预测,除非它们在~ COP_DOSWILDCARDS查询中(意味着非单词以开头,通配符*或被?解释)。Windows 搜索通常会将搜索转换为~查询。例如,似乎通配符**?带有字母数字字符的搜索字符串属性带有~,但**没有字母数字搜索什么。*~查询中的single也被视为带有 的通配符COP_WORD_STARTSWITH $<

让我们分析您的查询

  1. (AQSsearch-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\Users简体crumb=

    嗯, unquoted(是一个分组运算符,当你使用ANDor 时OR,你什么都不分组,所以 Windows 认为你的意思是 group nothing 搜索所有内容。

  2. *(* 空气质量标准 crumb=

    大多数以 windows 开头的 windows 搜索*尝试转换为 a crumb=~~query_term(a contains search)。*在包含查询中被视为正常。无论如何,在这种情况下,您可以通配一组无,因此 Windows 搜索所有无组(或所有组!)

  3. "(" 空气质量标准 crumb=System.Generic.String:"("

    Quotes 搜索精确的短语(整个单词或属性应该匹配)并且是文字字符,除了*,?""变成"。这将搜索以 开头的单词(,但由于单词不是,(因此它只搜索刚好是(

  4. *"("*AQScrumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("* 这很疯狂,但 Windows 搜索尝试将前缀*后跟某些特殊字符的转换为星级。1-13 是 1 颗星。还要注意我的测试,**在它搜索任何内容之前或之后没有任何字母数字字符而不是通配符并且是不可预测的。

    这个完整的查询意味着

    (1 星评级或无开头的词)和属性只是(. *不会匹配任何其他字符,因为整个属性必须是(.

    简化它的意思是,1星文件称为 (

    **在查询中实际上(为我显示了一个非一星文件,但是当更改*****和返回时**没有给出预期的结果(**不可预测)

其他答案

  1. ~="(" 空气质量标准 crumb=System.Generic.String:~="("

    这不起作用,如果搜索量太密集,Windows 似乎找不到任何东西。filename:~="("确实有效。基本上找到一个只包含(某处的文件名

  2. "*(*"AQScrumb=filename:~~"*(*" OR System.Generic.String:"*(*" 这奏效了。文件名包含*(*通配符或任何以通配符开头并带有(. 请注意,两者~=~~均值都包含。


Mat*_*ino 5

知道了!

只需在搜索框中输入以下内容:

"*(*"
Run Code Online (Sandbox Code Playgroud)


Fla*_*nno 5


这非常适合查找“编号”/重复文件

   name:~"*(1)*"

或者,要查找编号/重复的文件夹,请使用:

   kind:folder name:~"*(1)*"


~="("正如另一个答案中所建议的,在 Windows 10 中对我不起作用

就我而言,我需要找到文件副本/“编号文件”,即查找文件名末尾附加有“(1)”的文件,例如创建时/按以下方式创建的文件:

  1. 您将/资源管理器复制文件拖到文件夹中,其中已存在具有相同文件名的文件。
  2. 云同步存储软件(例如 OneDrive、GoogleDrive 或 DropBox)遇到同步问题或冲突,并创建文件的 2 个副本,并用附加数字命名其中一个“重复文件”、“重复文件 (1)”、“重复文件 (2)” )“, ETC...