Windows 7でallファイルの内容を(再帰的に)検索するにはどうすればよいですか?この例では、xxx
を検索するために、Windowsエクスプローラーのcontent:xxx
ボックスでSearch settings
コマンドを使用しています。これは動作しません:
この検索がどのように壊れているかの例として、検索中のテキストを含むorg.Eclipse.wst.common.component
ファイルが表示され、Windows 7は結果でそれを返していません。既知のテキストベースのファイルタイプのみを検索していると思います。 すべてのファイルを検索する方法?探しているものをすべて見つける必要があります。
追伸DOSベースのソリューションがある場合は、これも受け入れます。 dir /s /b
とfindstr
を使用したバッチファイルを作成できます。
編集:再帰検索の必要性に注意してください。
ここに私のthree fileDOSソリューションがありますが、誰かが持っているなら、私はまだ適切なWindows 7ソリューションを探しています:
@ECHO off
FOR /r %%a IN (*.*) DO CALL process.bat %%a
allファイルを再帰的に検索し、それぞれに対してprocess.bat
を実行します。
@ECHO Off
ECHO "%1" >> output.txt
TYPE "%1" | FINDSTR /i "search_string_here" >> output.txt
一部のファイルはバッチファイルコードを壊さないため、各ファイルの名前を引用符で出力し、検索文字列search_string_here
を見つけて、検索文字列が見つかった行全体を出力します。
search_string_here
に格納されているproject_name
JavaプロジェクトでD:\project_name\
を検索し、検索されたすべてのファイルと、結果がある場合は結果を表示する、次の形式の出力が含まれます。
"D:\project_name\.classpath"
"D:\project_name\.project"
<name>search_string_here</name>
"D:\project_name\content_search_all_files.bat"
"D:\project_name\output.txt"
<name>search_string_here</name>
"D:\project_name\pom.xml"
...
上記のsearch_string_here
が見つかりましたが、<name>search_string_here</name>
ファイルでD:\project_name\.project
の全行が見つかりました...他の結果もあります。
繰り返しますが、もし誰かがそれを持っているなら、私はまだ適切なWindows 7ソリューションを探しています。
どうやら、FINDSTR <grep、あなたが知らなかったかのように。同じ入力が別のファイルで使用された場合に再現されないFINDSTRのエラーを掘り下げた記事を次に示します。
明らかに、「行が長すぎます」というのは、さまざまなエラーに対するキャッチオールメッセージです。 FINDSTRにはいくつかの問題があります。少し前に、FINDSTRはわずかに役立つと言った。今日以降、それは思っていたよりもさらに役に立たないと思います。 - http://blog.mischel.com/2008/10/14/copying-large-files-on-windows/
「user3245549」は正しい:
「forループ」およびネストされたbatファイルに関する上記の回答はすべて、ジャンボジャンボです。必要なのは、「findstr」を使用するだけです-例:
C:\temp> findstr /S /C:"/work" * | more <-- this will find the string "/work" in any file
または
C:\temp> findstr /S /C:"/work" "*.*" | more
または
C:\temp> findstr /S /C:"/work" * > results.txt
または
C:\temp> findstr /S /C:"/work" "*.*" > results.txt
注:アスタリスクの前後の「二重引用符」は省略できます。Stackoverflowのエディターがピリオドの両側のアスタリスクを削除するため、これらを配置します。注:私の知る限り、検索する「文字列テキスト」の前後に引用符が必要です。
構文を覚える必要のないGUIベースのソリューションを探している場合は、Notepad ++を試してください。ディレクトリ内のファイルの検索(ファイル内の検索)、特定の拡張子への制限(フィルター)、サブフォルダー内の検索を実行できる検索メニューがあり、リスト内のアイテムをクリックするだけでそのファイルを開きます編集。
コマンドプロンプトウィンドウからfindstrコマンドを使用します。
/ sは再帰的な検索を提供します
/ iは大文字小文字を無視します
これはコマンドプロンプトで実行できますが、構文は非常に冗長です
for /r %a in (\*.*) do find "search_text" %a
これはWindows 7で動作するようになりました(余分なドットは削除されました)