FINDSTR(高度な文字列検索)

にメンテナンス済み

find コマンドではシンプルな文字列検索しかできませんが、FINDSTR コマンドを使用すると、正規表現を使った高度なパターン検索が可能になります。

この記事では、FINDSTR コマンドの基本から正規表現、複数条件検索、パイプとの組み合わせまで、具体的なサンプルコードを交えて解説します。

FINDSTR の基本構文

構文
FINDSTR [オプション] "検索文字列" [ファイル名]

基本的な使用例

ファイル内から特定の文字列を含む行を検索します。

findstr "error" log.txt
×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>findstr "error" log.txt
2026-03-10 10:15:32 error: ファイルが見つかりません
2026-03-10 10:20:45 error: 接続がタイムアウトしました
C:\users\user>

主要オプション

オプション説明
/I大文字・小文字を区別しない
/Sサブフォルダも再帰的に検索
/R正規表現として検索(既定値)
/Lリテラル文字列として検索
/C:"文字列"検索文字列をスペース含めてそのまま検索
/V一致しない行を表示(除外検索)
/N一致した行の行番号を表示
/M一致したファイル名のみ表示
/B行頭に一致するパターンを検索
/E行末に一致するパターンを検索

大文字・小文字を区別しない検索(/I)

findstr /I "warning" log.txt

WarningWARNINGwarning のいずれにも一致します。

スペースを含む文字列を検索する(/C:)

スペースを含む文字列を検索する場合は、/C: オプションを使用します。

findstr /C:"disk full" log.txt
/C: を使わない場合

/C: を使わずに findstr "disk full" log.txt と記述すると、「disk」または「full」を含む行が検索されます(OR 検索になります)。スペースを含む文字列を正確に検索したい場合は /C: を使用してください。

一致しない行を表示する(/V)

/V オプションは、検索文字列に一致しない行を表示します。

コメント行を除外して表示
findstr /V "^rem " script.cmd

行番号を表示する(/N)

findstr /N "TODO" main.cmd
×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>findstr /N "TODO" main.cmd
15:rem TODO: エラー処理を追加する
42:rem TODO: ログ出力を実装する
C:\users\user>

正規表現を使った検索

FINDSTR は基本的な正規表現をサポートしています。

使用可能な正規表現

記号意味
.任意の 1 文字h.t → hot, hat
*直前の文字の 0 回以上の繰り返しab*c → ac, abc, abbc
^行頭^echo
$行末error$
[abc]角括弧内のいずれか 1 文字[aeiou] → 母音
[a-z]範囲内のいずれか 1 文字[0-9] → 数字
[^abc]角括弧内の文字以外の 1 文字[^0-9] → 数字以外
\<単語の先頭\<the
\>単語の末尾end\>

正規表現の使用例

行頭がechoの行を検索
findstr /R "^echo" script.cmd
数字を含む行を検索
findstr /R "[0-9]" data.txt
IPアドレスのパターンを検索
findstr /R "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*" log.txt
正規表現の制限

FINDSTR の正規表現は非常に基本的なものです。+(1 回以上の繰り返し)、?(0 回または 1 回)、|(OR)、()(グループ化)といった拡張正規表現はサポートされていません。

複数のファイルを検索する

ワイルドカードで指定

すべてのテキストファイルから検索
findstr "error" *.txt

サブフォルダを含めて検索(/S)

フォルダ内を再帰的に検索
findstr /S "TODO" *.cmd
×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>findstr /S "TODO" *.cmd
scripts\backup.cmd:rem TODO: ログ出力を追加
scripts\deploy.cmd:rem TODO: テスト環境の確認
tools\cleanup.cmd:rem TODO: 除外リストの更新
C:\users\user>

一致したファイル名だけを表示する(/M)

findstr /M /S "password" *.txt

検索文字列を含むファイルの名前だけを表示します。内容は表示されません。

パイプと組み合わせる

他のコマンドの出力をフィルタリングする場合に、パイプ | と組み合わせて使用します。

実行中のプロセスからChromeを検索
tasklist | findstr /I "chrome"
×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>tasklist | findstr /I "chrome"
chrome.exe 1234 Console 1 215,040 K
chrome.exe 5678 Console 1 112,384 K
C:\users\user>
ネットワーク接続から特定のポートを検索
netstat -an | findstr "443"

FIND コマンドとの使い分け

特徴FINDFINDSTR
正規表現×
再帰検索×○(/S)
複数条件検索×
行番号表示×○(/N)
大文字小文字無視○(/I)○(/I)
除外検索○(/V)○(/V)
チェック

シンプルな固定文字列の検索には find コマンドを、正規表現やサブフォルダ検索が必要な場合は findstr を使用するのが適切です。

まとめ

この記事では、FINDSTR コマンドの使い方について解説しました。

FINDSTR は、正規表現による検索、サブフォルダの再帰検索、パイプとの連携など、FIND コマンドでは対応できない高度なテキスト検索を実現する強力なコマンドです。

関連記事

練習問題

練習問題

/C: オプションを使用せずに findstr "disk full" log.txt を実行した場合、どのような動作になりますか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #FINDSTR #正規表現 #テキスト検索