ファイルまたはファイル内のテキストの文字列を検索し、指定した文字列を含むテキスト行を表示します。
Syntax
find [/v] [/c] [/n] [/i] [/off[line]] <"string"> [[<drive>:][<path>]<filename>[...]]
Parameters
| Parameter | Description |
|---|---|
| /v | 指定した <string>を含まないすべての行を表示します。 |
| /c | 指定した <string> を含む行をカウントし、合計を表示します。 |
| /n | 各行の前にファイルの行番号が付きます。 |
| /i | 検索で大文字と小文字が区別されないことを指定します。 |
| [/off[line]] | オフライン属性が設定されているファイルはスキップしません。 |
<"string"> |
Required. 検索する文字のグループ (引用符で囲む) を指定します。 |
[<drive>:][<path>]<filename> |
指定した文字列を検索するファイルの場所と名前を指定します。 |
| /? | コマンド プロンプトにヘルプを表示します。 |
Exit codes
| Exit code | Description |
|---|---|
| 0 | 検索された文字列が見つかりました |
| 1 | 検索された文字列が見つかりません |
| 2 | 検索されたファイルが見つからないか、無効なコマンド ライン スイッチが指定されました |
Remarks
/i を使用しない場合、このコマンドは文字列に指定した内容を正確に検索します。 たとえば、このコマンドは
a文字とAを異なる方法で処理します。 ただし、 /i を使用すると、検索では大文字と小文字が区別されなくなり、aとAは同じ文字として扱われます。検索する文字列に引用符が含まれている場合は、文字列に含まれる各引用符に二重引用符を使用する必要があります (例: ""この文字列には引用符が含まれています")。
ファイル名を省略すると、このコマンドはフィルターとして機能し、標準入力ソース (通常はキーボード、パイプ (|)、またはリダイレクトされたファイル) から入力を受け取り、 文字列を含む行を表示します。
コンソール検索を終了するには、
CTRL-XまたはCTRL-zを使用します。find コマンドのパラメータとコマンド ライン オプションは、任意の順序で入力できます。
検索する文字列にワイルドカード (* と ?) を使用することはできません。 ワイルドカードと正規表現パターンを含む文字列を検索するには、 FINDSTR コマンドを使用できます。
同じコマンド ラインで /c と /v を使用する場合、このコマンドは、指定された文字列を含まない行の数を表示します。 同じコマンドラインで /c と /n を指定すると、 find は /n を無視します。
このコマンドは復帰を認識しません。 このコマンドを使用して復帰を含むファイル内のテキストを検索する場合は、検索文字列を、復帰の間に見つかるテキスト (つまり、復帰によって中断されない可能性が高い文字列) に制限する必要があります。 たとえば、このコマンドは、単語の税とファイルの間に復帰が発生した場合、文字列税ファイルの一致を報告しません。
このコマンドは、ファイル名のワイルドカードを受け入れます。 ファイル (またはファイル) で検索すると、処理されたファイルの前に 10 個のダッシュが付いたファイルが出力されます。
Find コマンドは代替データ・ストリームを読み取ることができません。 代替データ・ストリームで検索するには、 findstr、 more 、または for /f コマンドを使用します。
Examples
弦鉛筆削りを含むpencil.md のすべての行を表示するには、次のように入力します。
find "pencil sharpener" pencil.md
このテキストを見つけるには、「科学者たちはディスカッション専用の論文にラベルを付けた。これは最終的なレポートではありません。report.txt ファイル内の引用符を含め、次のように入力します。
find """The scientists labeled their paper for discussion only. It is not a final report.""" < report.txt
一連のファイルを検索するには、ワイルドカードを使用できます。 拡張子 が.bat で、大文字と小文字を無視した文字列 PROMPT を含むファイルを現在のディレクトリで検索するには、次のように入力します。
find /i "PROMPT" *.bat
文字列 CPU を含むディレクトリ内のファイル名を検索するには、パイプ (|) を使用して、 次のように dir コマンドの出力を find コマンドに送信します。
dir c:\temp /s /b | find "CPU"
エージェントを含まない実行中のすべてのプロセスを検索します。
tasklist | find /v /i "agent"
サービスが実行されているかどうかを確認します。
sc query Winmgmt | find "RUNNING" >nul 2>&1 && (echo service is started) || (echo service is stopped)