尝试使用Windows搜索来搜索内容中带有问号的文件时遇到问题


15

当我将问号字符指定为要在文件中搜索的内容时,Windows搜索似乎遇到了麻烦。

我试过了:

  • 内容:?
  • 内容:”?”
  • 内容:”\?”
  • 内容:\?
  • 含量:%3f
  • 内容:“%3f”
  • 内容:\ 3f
  • 内容:“ \ 3f”
  • 内容:\ 00 \ 00 \ 00 \ 3F

但是当我确实有包含?的文件时,这些都不产生任何结果。在搜索范围内。如果我改为搜索诸如content:happy之类的东西,它的确会在同一文件中找到所有带有短语“ happy”的文件。

我的假设是Windows搜索将某些字符(例如问号)视为特殊字符,可能出于通配符表达的目的。为了检验该理论,我还搜索了包含星号*的文件,实际上我遇到的问题与搜索问号的内容相同。我想知道的是,是否有什么方法可以使搜索工作正常,而无需任何类型的通配符匹配就可以搜索文字表达式,或者至少有一种在表达式中转义特殊字符的方法。

顺便说一句,我正在使用Windows 7企业版。

Answers:


12

尝试〜=?在哪 是您要搜索的字符。


4
优秀!内容:〜=?工作美化!出于好奇,您从哪里得到使用〜=作为转义序列的想法?
jpierson

我正在尝试搜索“ my_string”。似乎将下划线视为空格或逗号或其他内容,并向我显示包含“我的”或“字符串”或两者的所有内容。
沙威2014年

我将如何使用它来搜索文件中的文件?例如:content:"reports.asp"
John Odom

Windows搜索语法中包含许多特殊字符,因此必须引用其中的大多数字符以避免被解释。请参阅msdn.microsoft.com/zh-CN/library/bb266512(v=vs.85).aspx。但是,?和*(带引号或不带引号)始终被解释为DOS通配符。*对于所有字符,?1个字符 如果单击Windows资源管理器的地址栏,则会看到Windows将搜索转换为实际查询语法。?和*被解释为crumb = filename%3A〜?%20OR%20System.Generic.String%3A?(续)以下
-Mr_Moneybags,

filename:~?意味着要以DOS通配符形式搜索以任何一个字符(基本上是每个文件!)开头的文件名。OR System.Generic.String:?的意思是或具有以字面开头的WORD的任何文件属性/内容?我的建议是,阅读AQS文档,然后单击地址栏以查看Windows Search将AQS重新解释为什么。另请注意,默认情况下,字符串文件属性(文件名,作者等)默认情况下使用WORD_STARTSWITH搜索$<,因此,任何以搜索词开头的单词。其他非字符串属性(日期等)使用EQUAL搜索=
Mr_Moneybags

6

看起来Microsoft已删除了搜索特殊字符的功能。为了搜索特殊字符,还必须包含一个单词(Example: Who?)。同样,必须有一个带有特殊字符的单词,而不仅仅是通配符。这是因为Windows搜索会忽略通配符(?)之外的特殊字符。在此独立的“ 搜索提示和技巧”页面中,Windows搜索中唯一可用的通配符是星号和问号。但是,似乎唯一起作用的是星号。即使尝试其示例,也s?n可以在同一页面上找到。

这是Vista64论坛上的帖子的引文:(来源

实际上,问题有点不同。搜索现在基于单词的,而不是基于字符的括号在搜索中被视为标点符号,而不是通配符。为了获得有意义的结果,包含标点符号的查询还必须包含单词,词组或通配符例如,如果我搜索此:[*]或此:{*}我得到一堆文件,其文件名中的方括号内有一个短语,正如我期望的那样。因此,请尝试一下。


1
不幸的是,我认为您的解释并不完全正确。当我搜索内容时:“树皮?” 我匹配都皮的文件吗?并在其中咆哮。因此,看起来标点只是被忽略了。
jpierson

主席先生 我就是这么说的 根据我的回答:这是因为Windows搜索会忽略通配符以外的特殊字符
SgtOJ 2010年

1
...我不只是用问号为您的问题量身定制答案。取而代之的是,我的答案解释了所有特殊字符(通配符-星号)将如何处理。请注意,我并不是说有一个通配符,但是我发现只有星号可以用作通配符。请让我知道您是否找到另一个,以便可以更新我的答案。
SgtOJ

4

在Windows 7中,我有一个类似的问题,只是我试图搜索文件名中用方括号括起来的关键字(“ [”也被忽略,类似于“?”,“(”,“]”等)。对我来说如下:

文件名:"*[Cumbia]*" OR filename:"*[Reggae]*"

这将找到我所有用文本字符串[Cumbia][Reggae]文件名标记的歌曲。然后,我要做的就是选择所有文件,然后右键单击所选内容以调用Sendto功能将所有歌曲发送到我的音乐播放器程序(在本例中为Winamp)。


优秀。使用filename而不是使用content对我有用。我尝试过滤具有file(1).jpg和file(2).jpg的重复文件,并使用此表达式filename: "*(1)*"filename: "*(2)*"
幸运


1

我不使用Windows搜索,但是我想知道它是否支持此Microsoft文章中所述的转义字符:

使用搜索协议

如果是这样,您可以尝试使用%3f问号。


我尝试了您的建议,并搜索了%3f,content:%3f和content:“%3f”,但无济于事。我也尝试过使用通配符组合,但还是没有运气。无论如何,谢谢你的建议。
jpierson

1

只需使用powershell搜索文件内容:

Get-ChildItem-递归| 选择字符串模式“虚拟” | 组路径| 选择名字


尽管没有直接回答问题,但这给了我确切的替代选择,谢谢!我需要了解更多功能。
Mark Adamson

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.