如何在Windows 7上搜索内部文件?


251

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

Windows 7可以在文件中查找关键字,但仅限于文本文件。 ( *.doc, *.txt, *.inf, ... ),不是( *.conf, *.dat, *.*, ... )。

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

这怎么可能?


2
以下大部分答案都是无用的,并没有解决所提出的问题。 OP明确解释的问题是Windows Vista +不搜索某些文件类型的内容(读取文件 扩展 )。正如他们清楚地说的那样,有些人会工作,例如,它会找到 .txt 包含单词的文件,但不包含 .cpp.cfg.php, 甚至 .ini 文件,即使它们都是纯文本(和 .ini 文件甚至是Windows的标准!)这个问题仍然存在,最简单的解决方案似乎是 这个答案
Synetech

1
MS Visual Studio具有很棒的“查找文件”功能。没有设置 - 只需指定或多或少的即时结果的标准。为什么这不是在Windows资源管理器中作为“高级”选项超出我的范围。
omatai

Answers:


129

去了 索引选项

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

看到 更改高级索引选项 欲获得更多信息。

如果你点击 高级 按钮 索引选项 然后去 文件类型 选项卡,您将获得文件类型列表及其索引方式。对于所需的文件类型,您可以指定希望索引文件内容,而不仅仅是文件属性。

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

基于 这一页 ,“文件内容”选项并不总是显示 - 仅当被搜索的文件夹未标记为文件内容索引时;在这种情况下,应该自动搜索文件内容,而不必明确指定此选项。


19
或者可以改为使用FIND命令。

4
@Synetech inc。 - 你可以将另一个命令的结果输入 find,所以没有理由你不能在整个硬盘上运行它(可能使用 attrib 搜索)
warren

8
@Synetechinc。你可以说: find "word" *
Oscar Mederos

5
@nikhil:很遗憾,你没有提到如何进入索引选项,也没有提到你链接到的页面。
Steve

8
-1,因为即使选择了该选项,它也不会在非索引位置进行搜索。 @ 摆振 肖恩的回答如下。
HaydnWVN

113

使用GREP工具搜索文件时,我总能获得更好的性能。我是粉丝 AstroGrep


12
AstroGrep很精简&意思。 80k,闪电般快速,&搜索网络位置。感谢您对此工具的提醒。
Sean O

1
哇!!这个很好!
Rodniko

4
也是代理Ransack的插件。 Shell集成,小而快,也支持正则表达式。
ingredient_15939

1
真棒工具!谢谢!文件中的Windows搜索是......,你知道吗。这个工具在我的SAS驱动器上运行速度非常快,并且运行完美。找到超过200个文件,其中内容中的Windows搜索只找到12个并且没有显示我一直在搜索的内容,但我知道我搜索的内容并且我确定该目录。我应该说更多吗?再次感谢!
GTodorov

1
AstroGREP为+1,AgentRansack为+1 ...... Cygwin grep命令行工具也为+1 ...
ZEE

83

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


19
似乎没有用
ThomasMcLeod

17
我发现它也是本地化的,例如德语 inhalt:
mjustin

3
'contents:$$$'其中$$$是我在Windows 7中寻找适合我的内容
HaydnWVN

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

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

54

你可以玩 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
mafu

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

16

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


14

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


注意 - 我一直在使用AR,但有一些关于个人与商业用途的许可限制。总的来说,虽然该工具运行良好,并提供了一种需要的文件搜索焦点。
John M

9

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

按搜索选项卡上的第一个选项: 要搜索什么 ,选择在文件中搜索非索引文件。


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

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

不使用索引器,所以这不能解决问题。
Synetech

7

Windows 7仍然能够在任何地方(而不是索引位置)搜索文件中的字符串。

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

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


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

奇怪的是,索引选项会影响非索引搜索。
jiggunjer

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

在Windows 10中,该选项位于菜单中 视图 选项 更改文件夹和搜索选项 →标签 搜索
Peter Mortensen

6

Sean Sexton的答案给了我正在寻找的东西(在搜索文本框中输入“content:”)。但我认为以下图形解释可能对其他人有所帮助。

相当于XP Search Companion(dog)中的搜索:

XP Search Companion

在Windows 7中是这样的:

Windows 7 Search


2
不适用于我(使用* .srt(明文字幕文件))。
Aaron Thoma

“content:”被忽略...只需使测试搜索带有和不带“content:”的相同字符串并验证它...
ZEE

1
@JeffRoe,我无法让Windows在里面搜索 .sql 文件。你真的得到了预期的结果吗?我不禁注意到你在搜索结果上方裁剪了截图...
Synetech

@Synetech:是的,我肯定得到了预期的结果。对不起,我不确定你的系统会有什么不同会阻止它工作。
Jeff Roe

3

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

如果您拥有合适的iFilter,Windows应该能够搜索并索引其内容。


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

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

另外 - 请查看这两个链接 - 它们有很多内容可以帮助您: microsoft.com/windows/products/winfamily/desktopsearch/... gallery.live.com/default.aspx?pl=6
rifferte

如果我不使用索引器,那该怎么办?
Synetech

3

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

Windows Registry Editor Version 5.00

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

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


1
这似乎在Windows 7中起到了作用。不幸的是,您必须为要在其中搜索的每个该死的文件扩展名创建文件关联,但它至少可以工作,并且不需要修改管理员级别的注册表。
Synetech

2
我不明白这个答案,是什么发布了一个将文件类型.dita添加到Windows搜索的示例?
Herman Toothrot

1
是的,这是.dita扩展名。
BennyInc

2

你可以尝试使用 Cygwin的 或者用于Windows的grep版本和搜索* nix命令并使用 grep的 效用。

来自手册

grep options pattern input_file_names

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


1

Windows 7 SP1忽略内容:和内容:现在对我来说,看起来机制已经改变:现在你输入你想要的东西,一旦搜索开始,底部的一行显示“再次搜索” :“库,计算机,自定义,Firefox,最重要的是, 文件内容 。单击该按钮即可在文件中重新开始搜索,即使文件夹未编入索引也是如此。


3
在我的机器上 File Contents 不作为选项提供
Richard Le Mesurier

你在用Win8吗?在那里,它已更改为您必须单击搜索选项卡,打开高级选项,然后打开文件内容。
SilverbackNet

1
赢得7家庭高级版64位SP1 ......奇怪的是它不存在;评论提醒其他困惑的读者(因为这个问题确实让我很烦恼,几乎导致了一个很大的错误,就是在没有被扫描为文本的文件中向客户端发送密码)
Richard Le Mesurier

1
像OP清楚解释的那样,这对某些文件类型不起作用.◔_◔
Synetech
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.