人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

GREP(テキストファイル内の文字列検索)機能を持つWindowsツールはよくあるのですが、
指定した文字列が「見つからなかった」方のファイルを検索してくれるツール
(もしくはWindows標準機能で実現する方法)はないでしょうか。

できればフリーウェアで、利用実績が豊富なツールをお願いしたいです。

●質問者: chihiroy
●カテゴリ:コンピュータ インターネット
✍キーワード:grep Windows テキスト ファイル フリー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●35ポイント

Windowsコマンド集:(findstr)

Windows の標準コマンドですが、 /m と /v オプションの併用で可能です。

◎質問者からの返答

ありがとうございます。

……が、試してみたところ、残念ながら目的とする結果がうまく得られません。

検索したいフォルダに移動し、

findstr /V /M string *.txt

と実行してみました。

「string」という文字列を含んでいない(大文字小文字は区別する)

ファイル名の一覧を得たかったのですが、

含んでいるファイル名も出てきてしまっています。

/Vオプションは、「一致しない行を出力」するということなので、

すべてのファイルが合致してしまうようですね……。


2 ● foobar_777
●35ポイント

WindowsのFindと同様にカレントディレクトリのみ検索すれば良いでしょうか?

以下をバッチファイルにして実行すればOKです。

ダブルクオーテーションの中身を希望の文字列に置き換えてください。

===== test.bat ================

@echo off

for %%i in (*.*) do (

find "hogehoge" %%i > NUL

if errorlevel 1 echo %%i

)

===============================

http://support.microsoft.com/kb/43075/ja

◎質問者からの返答

ありがとうございました! 試してみます。

残念ながら、サブディレクトリ以下も検索したいです……。

findには、そのオプションはないようですね。

そうすると、findstrでforで回すほかなさそうですね。


3 ● foobar_777
●10ポイント

サブディレクトリまで検索したい場合にはforコマンドに/RオプションをつければOKです。

c:\hoge のディレクトリ以下を検索する際には以下のようにします。

c:\hogeに相当する部分は絶対パスではなく、相対パスでもOKです。・

===== test.bat ================

@echo off

for /R c:\hoge %%i in (*.*) do (

find "hogehoge" %%i > NUL

if errorlevel 1 echo %%i

)

===============================

http://support.microsoft.com/kb/43075/ja

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ