在Windows XP中,我们可以搜索包含定义的关键字的文件(在所有文件类型中)。

Windows 7可以在文件内部查找关键字,但只能查找文本文件。 (*.doc, *.txt, *.inf, ...),而不是(*.conf, *.dat, *.*, ...)。

Microsoft搜索过滤器不包含我可以用于此的任何过滤器。

这怎么可能?

评论

下面的大多数答案都是无用的,不能解决所提出的问题。 OP明确解释的问题是Windows Vista +不搜索某些文件类型的内容(读取文件扩展名)。正如他们明确指出的那样,有些工作没有完成。例如,它将查找包含单词的.txt文件,但不包含.cpp,.cfg,.php甚至是.ini文件,即使它们都是纯文本格式(而.ini文件甚至是Windows的标准文件!)这个问题仍然存在,最简单的解决方案似乎就是这个答案。

MS Visual Studio具有出色的“查找文件”功能。没有设置-只需指定更多或更少即时结果的条件即可。为什么Windows资源管理器中没有此功能,因为“高级”选项已超出我的范围。

#1 楼

要进入索引选项,请执行以下操作:

开始->控制面板->索引选项

有关详细信息,请参阅更改高级索引选项。

如果单击“索引选项”中的“高级”按钮,然后转到“文件类型”选项卡,将获得文件类型及其索引方式的列表。对于所需的文件类型,可以指定要对文件内容进行索引,而不仅仅是对文件属性进行索引。

也可以只进行常规搜索,搜索完成后即可单击“再次搜索范围”字段下的“文件内容”按钮(如果滚动到底部,则位于搜索结果列表的末尾)。

基于此页面, “文件内容”选项将不会始终显示-仅当未在搜索文件夹中标记文件内容索引时;在这种情况下,可以自动搜索文件内容,而不必显式指定此选项。

评论


或者,也可以使用FIND命令。

–user8228
09-10-25在12:10

@Synetech公司-您可以将另一个命令的结果传递给find,因此没有理由不能在整个硬盘上运行它(也许使用attrib搜索)

–沃伦
2011-3-22在13:08

@Synetechinc。您可以说:找到“单词” *

–奥斯卡·梅德罗斯(Oscar Mederos)
2011年5月17日在7:12

@nikhil:不幸的是,您没有提到如何进入“索引选项”,也没有提及您链接到的页面。

–史蒂夫
2011年7月12日在10:49

-1,因为即使选择了该选项,它也不会在非索引位置搜索。 @Shimmy Sean的回答如下。

– HaydnWVN
2012年1月19日13:30



#2 楼

使用GREP工具搜索文件内部时,我始终可以获得更好的性能。我是AstroGrep的粉丝。

评论


AstroGrep精瘦而卑鄙。 80k,闪电般快,并搜索网络位置。感谢您对此工具的注意。

– Sean O
09年11月30日在16:39

哇!!这个很好!

–罗德尼科
2012年4月22日15:19

也是Agent Ransack的插头。 Shell集成,小巧,快速,也支持正则表达式。

–ingredient_15939
13年8月8日在5:23

很棒的工具!谢谢! Windows在文件中的搜索是...的一部分,您知道的。该工具在我的SAS驱动器上超级快,并且可以正常工作。找到了200多个文件,其中Windows在目录中搜索的内容只有12个,没有显示我一直在搜索的内容,但是我知道自己在搜索什么,并且可以确定该目录。我应该说更多吗?再次感谢!

–GTodorov
2015年4月11日,0:46



+1代表AstroGREP,+ 1代表AgentRansack ... +1亦代表Cygwin grep命令行工具...

– ZEE
2015年11月11日下午13:42

#3 楼

我相信您也可以在Windows资源管理器右上角的搜索过滤器框中输入“ content:blahblah”。这至少适用于文本文件和Office文档。它也适用于源文件。

评论


似乎不起作用

– ThomasMcLeod
2011年5月31日下午4:35

我发现它也已本地化,例如以德语吸入:

–马林汀
2011年10月13日在8:36

'contents:$$$'其中$$$是我要在Windows 7中为我寻找的内容

– HaydnWVN
2012年1月19日下午13:29

在Windows 7 32位中不起作用。我从正在搜索的目录中的文件中复制并粘贴了文件,并说找不到该字符串。

–weberc2
2012年10月26日13:52

它似乎适用于html,js,css,xml,sql,但不幸的是不适用于php。

– kcdwayne
2015年2月25日14:26在

#4 楼

您可以玩findstr。

findstr /s /m searchstring *.*


选项说明:

/S         Searches for matching files in the current directory and all subdirectories.
/M         Prints only the filename if a file contains a match.


评论


@Synetech为什么不呢?它非常易于使用,例如findstr“ todo” * .txt。

–马夫
16-09-28在11:17

/ i对于不区分大小写也可能非常有价值。 FINDSTR是我发现的用于搜索PARTIAL字符串的唯一非第三方方法。如果您搜索goog,它将匹配google.com或123779goog44682或123google.com55,据我所知,Windows文件夹/资源管理器“搜索框”或Control-F不能执行非常非常简单的逻辑任务。经过数十年的高端C和Assembler计算机开发工作后,您可以笑或嘲笑您想要的所有内容,但是我要告诉您:笨拙的Microsoft设计师不了解计算机。

– MicrosoftShouldBeKickedInNuts
18-10-5在8:51

#5 楼

Notepad ++可以做到这一点,并且是免费的。在文件中查找是CTRL-SHIFT-F。

#6 楼

特工Ransack总是值得一看。它免费,快速,信誉良好,并且不使用索引。

评论


注意-我一直在使用AR,但是对于个人用途和企业用途有一些许可限制。总体而言,该工具确实非常有效,并且可以满足人们对文件搜索的需求。

– John M
16 Mar 11 '16 at 4:31

#7 楼

在Windows资源管理器中,菜单工具->文件夹选项:

在搜索选项卡上按,这里是第一个选项:要搜索的内容,选择搜索文件中未索引的文件。

评论


这似乎忽略了该选项,因为我的文件类型在“索引选项”中配置为不被视为文本文件。默认情况下,不会搜索.properties文件的文本。

–Richard Le Mesurier
2012年10月31日上午11:32

这是此页面上唯一对我有用的答案。我也必须选中“搜索时不使用索引...”选项。

–负责人
13年5月1日13:20

不使用索引器,因此不能解决问题。

– Synetech
15年11月17日在18:16

#8 楼

Windows 7仍然可以在任何地方(而不是在索引位置)搜索文件内部的字符串。

在Windows资源管理器中,转到菜单工具/文件夹选项,然后选择“始终搜索文件名和内容” 。

可能仍然必须在“索引选项”的“高级选项”中正确设置文件类型。

评论


+1为索引选项。这些非常重要,因为它们通过“搜索”文件定义Windows的含义。例如我有一个Windows不会搜索的ANT构建脚本.properties文件,因为它没有配置为将其视为文本文件。

–Richard Le Mesurier
2012年10月31日上午11:30

索引选项可能会影响未索引的搜索。

– Jiggunjer
15年6月23日在11:52

是的,类型是问题所在,所以如果在提到修复程序之前还没有结束,那么这个答案会更好。

– Synetech
15年11月17日在18:17

在Windows 10中,该选项位于菜单视图→选项→更改文件夹和搜索选项→选项卡中。

– Peter Mortensen
18年8月1日在13:19

@Peter Mortensen,或等效地在文件→更改文件夹和搜索选项→搜索中。 :-)

–亨克
20年11月12日上午10:30

#9 楼

肖恩·塞克斯顿(Sean Sexton)的回答给了我我所要的内容(在搜索文本框中输入“ content:”)。但是我认为以下图形化解释可能会对其他人有所帮助。

XP Search Companion(狗)中的此搜索的等效项:



在Windows 7中是这样的:



评论


不适用于我(使用* .srt(纯文本字幕文件))。

–亚伦·托马
2015年8月9日在11:16



“ content:”将被忽略...只需使测试搜索包含和不包含“ content:”的相同字符串并进行验证...

– ZEE
2015年11月11日下午13:46

@JeffRoe,我无法让Windows在.sql文件中搜索。您实际上得到了预期的结果吗?我忍不住注意到您在搜索结果上方裁剪了屏幕截图…

– Synetech
15年11月17日在18:20

@Synetech:是的,我绝对得到了预期的结果。抱歉,我不确定您的系统有什么不同会阻止它正常运行。

–杰夫·罗(Jeff Roe)
15年11月17日在18:58

#10 楼

您是否尝试过在互联网上搜索正确的iFilter(例如-http://www.ifilter.org/)?

如果您拥有正确的iFilter,则Windows应该能够搜索并为其编制索引内容。

评论


每个文件扩展名都需要一个“ iFilter”吗?

–user8228
09-10-25在3:09

很有可能是-因为每个文件扩展名都假定文件内容将特定于特定扩展名。

–rifferte
09-10-25在3:18

另外-请查看以下两个链接-它们具有许多内容应可为您提供帮助:microsoft.com/windows/products/winfamily/desktopsearch/…gallery.live.com/default.aspx?pl=6

–rifferte
09-10-25在3:20

如果我不使用索引器怎么办?

– Synetech
15年11月17日在18:20

#11 楼

在Windows XP中,您可以添加其他(文本)文件类型以通过注册表进行搜索:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.dita\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"


我不确定这是否也适用于Windows 7。

评论


在Windows 7中,这似乎可以解决问题。不幸的是,您必须为要在其中搜索的每一个该死的文件扩展名创建文件关联,但这至少可以正常工作,并且不需要修改管理员级别的注册表。

– Synetech
2015年11月17日在19:07

我不明白这个答案,这是张贴在Windows搜索中添加文件类型.dita的示例吗?

–Herman牙刷
16年2月2日在13:16

是的,这是.dita扩展名。

– BennyInc
16年4月4日在9:04

#12 楼

您可以尝试在Windows上使用Cygwin或grep版本并搜索* nix命令,然后使用grep实用工具进行搜索。

来自手册:

grep options pattern input_file_names


使用Google gnuwin32软件包,有一个适用于Windows的grep版本。

#13 楼

Windows 7 SP1现在忽略内容:和内容:对我而言,机制似乎已更改:现在,键入所需的内容,搜索开始后,底部的一行将显示“再次搜索:“库,计算机,自定义,Firefox,最重要的是文件内容。单击该按钮,即使文件夹未建立索引,它也会重新开始文件内的搜索。

评论


在我的机器上没有提供文件内容选项

–Richard Le Mesurier
2012年10月31日上午11:25

您正在使用Win8吗?在那里,它已更改为您必须单击搜索选项卡,打开“高级选项”,然后单击“文件内容”的位置。

– SilverbackNet
2012年10月31日在21:03

赢得7家庭高级版64位SP1 ...奇怪的是它不存在;进行了评论,以提醒其他困惑的读者(因为此问题确实使我非常震惊,几乎导致了BIG错误,该错误是在未将文件扫描为文本的情况下向客户端发送密码)

–Richard Le Mesurier
2012年11月1日下午5:14

就像OP明确说明的那样,这不适用于某些文件类型。

– Synetech
15年11月17日在18:21