
ハワイ/ヒルトンハワイアンヴィレッジ裏手のビーチのペン画(白黒)/サイズ:ハガキ大
*******************************************************************************
メジャーなテキストエディタではお馴染みの”grep”検索
ウィキペディアでは「ファイル全体から (global) 正規表現 (regular expression) に一致する行を表示(print)する」の略と説明があります。
今回は”grep”もどきのバッチファイルをつくってみましょう
正規表現の検索はvbsに頼らないと実現できないので、あくまでgrepもどきの簡易バッチですが、
指定したフォルダ内のすべてのテキストファイルから、検索したい文字列を含む行を抽出するプログラムを書いてみます。
サンプルコマンド(バッチ(1))↓ ※ファイル名称:grep.bat / 今回は2つバッチを作ります!
-------------------------------------------------------------------------------
@echo off
rem color 1D 背景:青色/文字:ピンク色
color 1D
rem grep検索対象のファイル一覧を作成します
set/p INP="検索対象のフォルダパスを入力してください>>"
echo.
dir %INP% /b > 検索対象ファイル一覧.txt
:FIND-TXT
set TXT=
set/p TXT="検索したい文字列を入力してください>>"
echo.
echo ↓↓↓↓↓↓[ 検索結果 ]↓↓↓↓↓↓ > %TXT%_grep結果.txt
echo 検索対象のファイルから任意の文字列を含む行を抽出します
for /F "eol= delims=, " %%i in (%~dp0検索対象ファイル一覧.txt) do (if "%%i"=="" (goto END) else (call doGrep.bat %%i))
set OPE=
set/p OPE="別の文字列でも検索しますか?(y/n)>>"
echo.
if "%OPE%"=="y" (goto FIND-TXT) else (goto END)
:END
-------------------------------------------------------------------------------
サンプルコマンド(バッチ(2))↓ ※ファイル名称:doGrep.bat / 今回は2つバッチを作ります!
-------------------------------------------------------------------------------
@echo off
rem color 1D 背景:青色/文字:ピンク色
color 1D
if "%1"=="" (goto END) else (goto GREP)
:GREP
echo %1 実行中...
find /n /i "%TXT%" %INP%\%1 >> %TXT%_grep結果.txt
:END
-------------------------------------------------------------------------------
「 set/p INP="○○を入力してください>>"」 ← 任意の入力結果をプログラム内で利用できます。変数、ここではINPの初期化を忘れずに(初期化は set INP= )
「 find "検索文字列" ファイル名称 」 ← 指定したファイルから文字列を抽出します。
goto NEXT