Windowsバッチファイル

バッチファイルのファイル検索・テキスト処理【where・find・findstr完全ガイド】

Windowsバッチファイル
記事内に広告が含まれています。

バッチファイルでのファイル検索・テキスト処理を解説します。where・find・findstrコマンドとforループを組み合わせた実践的な活用法を紹介します。

whereコマンド(ファイル・コマンドの場所を探す)

@echo off
:: コマンドの場所を探す
where python
where /r C:\ *.pdf

:: 存在チェックに使う
where git >nul 2>&1
if %ERRORLEVEL% NEQ 0 (
    echo git がインストールされていません
) else (
    echo git が見つかりました
    where git
)

findコマンド(文字列検索)

@echo off
:: ファイル内の文字列を検索
find "エラー" C:\logs\app.log

:: 大文字小文字を区別しない
find /i "error" C:\logs\app.log

:: 行番号も表示
find /n "ERROR" C:\logs\app.log

:: マッチしない行を表示
find /v "INFO" C:\logs\app.log

findstrコマンド(正規表現対応の高機能検索)

オプション意味
/i大文字小文字を区別しない
/r正規表現を使う
/sサブフォルダも検索
/vマッチしない行を表示
/n行番号を表示
/c:”文字列”文字列をそのままパターンとして使う
@echo off
:: ERRORまたはWARNINGを含む行を検索
findstr /i "ERROR WARNING" C:\logs\app.log

:: 正規表現でIPアドレスを検索
findstr /r "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*" access.log

:: サブフォルダ含め全ログからエラーを抽出
findstr /s /i "error" C:\logs\*.log

実践:エラーログの自動抽出

@echo off
set LOGDIR=C:\logs
set OUTPUT=C:\report\errors_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt

echo エラーレポート > "%OUTPUT%"
echo 検索日時: %DATE% %TIME% >> "%OUTPUT%"
echo ======================== >> "%OUTPUT%"

findstr /s /i "error" "%LOGDIR%\*.log" >> "%OUTPUT%"
echo.
echo レポート出力完了: %OUTPUT%
pause

まとめ

  • whereでコマンドやファイルの場所を検索できる
  • findで文字列を含む行を簡単に抽出できる
  • findstrはオプションが豊富で正規表現にも対応している
  • findstr /sでサブフォルダを含む再帰検索ができる
  • 次の記事ではレジストリ操作を学ぶ

コメント

タイトルとURLをコピーしました