FINDSTR /L = ファイルの中を文字列検索する。OR検索可能版 - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
指定した文字列でそのまま検索したい時は、FINDSTR /L コマンドを使う方法が便利です。o FINDコマンドとは次の点で異なります。
+複数の文字列を指定して、いずれかの文字列に一致する行を見つける事が出来ます。
+ 一方、現在のコードページ以外の文字コードは、常に不一致になります。
+ FIND コマンドの場合は Unicode(= UTF-16LE)のファイルも検索可能ですが、このコマンドは違います。
o /L を付けない場合、正規表現として検索する場合があります。
**** 書式
--------
findstr /l [オプション] "検索文字列" [ファイル名]
もしくは
findstr /l [オプション] "検索文字列" < ファイル名
もしくは
コマンド | find /l [オプション] "文字列"
--------
o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
o オプション = 検索する文字列に半角空白を含めたい時は、「find /c:"文字列"」もしくは「find /l /c:"文字列"」の形で指定します。
+ /C オプションを付けると、自動的に /L /C となります。
+ その他のオプションについては、「FINDSTR(後日公開予定)」の説明をご覧下さい。
o 検索文字列 = 「"」(= 二重引用符)で括ります。
+ 複数の検索文字列を指定して OR検索したい時は、途中に半角空白を入れます。
+ 例:「findstr /l "ミクさん ネギ"」
+ この時、「ミクさん」または「ネギ」が含まれている行を検索します。
+ 但し、/C オプションを指定した時は、空白文字も検索文字列の一部になります。
o ファイル名 = 中を検索したいファイル名です。
+ UNIX形式の区切り文字「/」も指定出来ます。(例「C:/ミクさん/ネギ.txt」)
+ リダイレクトを使わない時は、動きが少し変わります。
+ ファイル名を複数並べる事が出来ます。
+ ファイル名にワイルドカード(「*」や「?」)を使用する事も出来ます。
+ ワイルドカード使用時、表示結果の行の先頭にファイル名+「:」(コロン)を追加します。
--------
findstr "ミクさん ネギ" ミクさん*.txt
ミクさん.txt: ミクさんの好きな食べ物 = ネギ
--------
+ ファイル名を指定せず、入力のリダイレクトも無い時は、キーボードからのデータ入力を待ちます。
+ データの終わりは「Ctrl キーを押しながら Z キー」。
**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 検索結果 1件以上
+ 「FINDSTR: 開くことができません (ネギ.txt)」 = 見つからないファイルがあります。
+ 「FINDSTR: /z は無視されました。」 = 間違っているオプションは無視して実行します。
+ ファイル名が間違っていても、1ファイル以上検索して見つかった行がある場合には、戻り値は 0 になります。
o 1 = 検索結果 0件
+ 「FINDSTR: 開くことができません (ネギ.txt)」 = 見つからないファイルがあります。
+ 「FINDSTR: /z は無視されました。」 = 間違っているオプションは無視して実行します。
+ ファイル名が間違っていても、指定した全てのファイルで見つかった行が無い場合に限り、戻り値は 1 になります。
o 2 = 書式エラー
+ 「FINDSTR: コマンド ラインが正しくありません」 = 検索する文字列を指定して下さい。
+ 「FIND: パラメータの書式が違います」 = 検索する文字列を指定して下さい。
**** 使用例
--------
findstr /l "ミクさん ネギ" ミクさん.txt
dir | findstr /l "ミクさん.txt"
findstr /l "ミクさん.net" < ミクさん.txt
--------
+ コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
+ 最初の使用例は、/L オプションを付けなくても正しく検索します。
+ 検索文字列に、正規表現の記号を使っていないからです。
**** 機能
o ファイルの中を文字列検索して、条件と一致する行、もしくは見つかったファイルの名前を表示します。
o ファイル名は、複数並べる事が出来ます。ワイルドカードを使用する事も出来ます。
+ この時、表示結果にファイル名が含まれます。
**** メモ
o Windows XPでは、文字コードが ANSI (= Windows版Shift-JIS)のファイルだけ比較する事が出来ました。
+ FIND コマンドとは異なり、Unicode(= UTF-16LE)のファイルは常に不一致になりますので、注意します。
o 検索文字列の指定方法について。検索文字列が1つの場合、「"」で括らなくても正しく動くみたいです。
+ 但し、ヘルプに書かれている書き方は、「"」付きです。
+ また、半角空白を入れてOR検索したい時は、必ず「"」で括ります。
**** 確認したバージョン
o Windows XP Service Pack 3 + Windows Update 2011年9月版
==
関連ページ:
▼FINDSTR = ファイルの中を正規表現、もしくは文字列で検索する。OR検索可能版
▼Windowsコマンド。ファイルとフォルダー関連(▼ABC順)
▼Windowsコマンド一覧(▼ABC順)
▼コマンドプロンプト画面
> FINDSTRコマンドで正規表現を使う時の注意点