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


在Windows XP中,我們可以搜索包含已定義關鍵字的文件(在所有文件類型中)。

Windows 7可以在文件中查找關鍵字,但僅限於文本文件。 (*.doc, *.txt, *.inf, ...),不是(*.conf, *.dat, *.*, ...)。

Microsoft搜索過濾器 不包含我可以用於此的任何過濾器。

這怎麼可能?


251
2017-10-25 02:02


起源


以下大多數答案都是無用的,並沒有解決所提出的問題。 OP明確解釋的問題是Windows Vista +不搜索某些文件類型的內容(讀取文件 擴展)。正如他們清楚地說的那樣,有些人會工作,例如,它會找到 .txt 包含單詞的文件,但不包含 .cpp, .cfg, .php, 甚至 .ini 文件,即使它們都是純文本(和 .ini 文件甚至是Windows的標準!)這個問題仍然存在,似乎是最簡單的解決方案 這個答案。 - Synetech
MS Visual Studio有一個很棒的“在文件中查找”功能。沒有設置 - 只需指定更多或更少即時結果的標準。為什麼這不是在Windows資源管理器中作為“高級”選項超出我的範圍。 - omatai


答案:


去了 索引選項

開始 - >控制面板 - >索引選項

看到 更改高級索引選項 欲獲得更多信息。

如果你點擊了 高級 按鈕 索引選項 然後去 文件類型 選項卡,您將獲得文件類型列表及其索引方式。對於所需的文件類型,您可以指定希望索引文件內容,而不僅僅是文件屬性。

或者您可以進行常規搜索,搜索完成後,您可以單擊“再次搜索”字段下的“文件內容”按鈕(位於搜索結果列表結尾之後,如果您滾動到底部)。

基於 這一頁,“文件內容”選項並不總是顯示 - 僅當被搜索的文件夾沒有標記為文件內容索引時;在這種情況下,應該自動搜索文件內容,而不必明確指定此選項。


129
2017-10-25 05:30



或者可以改為使用FIND命令。
@Synetech inc。 - 你可以將另一個命令的結果輸入到 find,所以沒有理由你不能在整個硬盤上運行它(可能使用 attrib 搜索) - warren
@Synetechinc。你可以說: find "word" * - Oscar Mederos
@nikhil:很遺憾,你沒有提到如何進入索引選項,也沒有提到你鏈接到的頁面。 - Steve
-1,因為即使選擇了該選項,它也不會在非索引位置進行搜索。 @擺振 肖恩的答案如下。 - HaydnWVN


使用GREP工具在文件內搜索時,我總能獲得更好的性能。我是粉絲 AstroGrep


112
2017-10-25 02:05



AstroGrep精益求精。 80k,快速閃電,搜索網絡位置。感謝您對此工具的了解。 - Sean O
哇!!這個很好! - Rodniko
還有代理Ransack的插件。 Shell集成,小而快,也支持正則表達式。 - ingredient_15939
真棒工具!謝謝!文件中的Windows搜索是......,你知道嗎。這個工具在我的SAS驅動器上運行速度非常快,並且運行完美。找到了超過200個文件,其中內容中的Windows搜索只找到了12個並且沒有顯示我一直在搜索的內容,但我知道我搜索的內容並且我確定該目錄。我應該說更多嗎?再次感謝! - GTodorov
AstroGREP為+1,AgentRansack為+1 ...... Cygwin grep命令行工具也為+1 ... - ZEE


我相信你也可以在Windows資源管理器右上角的搜索過濾器框中輸入“content:blahblah”。這至少適用於文本文件和Office文檔。它也適用於源文件。


82
2017-08-24 14:01



似乎沒有用 - ThomasMcLeod
我發現它也是本地化的,例如德語 inhalt: - mjustin
'contents:$$$'其中$$$是我在Windows 7中尋找適合我的內容 - HaydnWVN
在Windows 7 32位中不起作用。我從被搜索目錄中的文件中復制並粘貼,並說它找不到字符串。 - weberc2
它似乎適用於html,js,css,xml,sql,但不幸的是 不 PHP。 - kcdwayne


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

52
2017-10-12 02:14



@Synetech為什麼不呢?它非常容易使用,例如 findstr "todo" *.txt。 - mafu
/ i對於不區分大小寫也可能非常有價值。 FINDSTR是我發現搜索PARTIAL字符串的唯一非第三方方式。如果您搜索goog,它將匹配google.com或123779goog44682或123google.com55,據我所知,Windows文件夾/資源管理器“搜索框”或Control-F無法執行非常非常簡單的邏輯任務。在經歷了數十年的高端C和Assembler計算機開發工作之後,大笑或嘲笑所有你想要的,但我告訴你:imbecilic Microsoft設計師 不懂電腦。 - MicrosoftShouldBeKickedInNuts


Notepad ++可以做到這一點並且是免費的。在文件中查找是 CTRL - 轉移 - F


16
2018-06-18 09:25





特工Ransack 總是值得一看。它是免費的,快速的,良好的聲譽,並且不使用索引。


13
2018-03-22 12:58



注意 - 我一直在使用AR,但有一些關於個人與商業用途的許可限制。總的來說,雖然該工具運行良好,並提供了一種需要的文件搜索焦點。 - John M


在Windows資源管理器中,菜單工具 - >文件夾選項:

按搜索選項卡上的第一個選項: 要搜索什麼,選擇在文件中搜索非索引文件。


9
2018-04-11 08:07



這似乎忽略了該選項,因為我的文件類型在索引選項中配置為不被視為文本文件。一個 .properties 默認情況下,不會搜索文件的文本。 - Richard Le Mesurier
這是本頁面上唯一對我有用的答案。我也必須檢查“搜索時不要使用索引...”選項。 - Fuhrmanator
不使用索引器,所以這不能解決問題。 - Synetech


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

在Windows資源管理器中,轉到菜單工具/文件夾選項,然後選擇“始終搜索文件名和內容”。

可能仍需要在“索引選項的高級選項”中正確設置文件類型。


7
2017-11-17 09:27



索引選項為+1。這些非常重要,因為它們通過“搜索”文件來定義Windows的含義。例如我有一個ANT構建腳本 .properties Windows無法搜索的文件,因為它未配置為將其視為文本文件。 - Richard Le Mesurier
奇怪的是,索引選項會影響非索引搜索。 - jiggunjer
是的,類型是問題,所以如果在提到修復之前沒有結束,這個答案會更好。 - Synetech
在Windows 10中,該選項位於菜單中 視圖 → 選項 → 更改文件夾和搜索選項 →標籤 搜索。 - Peter Mortensen


Sean Sexton的答案給了我正在尋找的東西(在搜索文本框中輸入“content:”)。但我認為以下圖形解釋可能對其他人有所幫助。

相當於XP Search Companion(dog)中的搜索:

XP Search Companion

在Windows 7中是這樣的:

Windows 7 Search


6
2017-11-18 16:29



不適用於我(使用* .srt(明文字幕文件))。 - Aaron Thoma
“content:”被忽略...只需使測試搜索帶有和不帶“content:”的相同字符串並驗證它... - ZEE
@JeffRoe,我無法讓Windows在裡面搜索 .sql 文件。你真的得到了預期的結果嗎?我不禁注意到你在搜索結果上方裁剪了截圖... - Synetech
@Synetech:是的,我肯定得到了預期的結果。對不起,我不確定你的系統會有什麼不同會阻止它工作。 - Jeff Roe


您是否嘗試在互聯網上搜索正確的iFilter(例如 - http://www.ifilter.org/)?

如果您擁有合適的iFilter,Windows應該能夠搜索並索引其內容。


3
2017-10-25 02:55



每個文件擴展名都需要“iFilter”嗎?
很可能是 - 因為每個文件擴展名都假定文件內容特定於特定擴展名。 - rifferte
另外 - 請查看這兩個鏈接 - 它們有很多內容可以幫助您: microsoft.com/windows/products/winfamily/desktopsearch/...  gallery.live.com/default.aspx?pl=6 - rifferte
如果我不使用索引器怎麼辦呢? - Synetech