ひとつ前にメールに添付されたPDFをテキスト化する方法について書いたが、そのテキストファイルを検索する方法について考える。
もちろんCygwinを入れてるのだからgrepで探せばいいのだが、ここはあえてバッチファイルで試してみる。
search.bat
@set /p keyword="Enter KEYWORD:"
if "%keyword%"=="q" exit
findstr %keyword% *.txt > temp
chcp 65001
cls
@type temp
@set /p answer="[Q]uit [O]pen:"
if "%answer%"=="o" notepad temp
if "%answer%"=="q" exit
@search.bat
ポイントは幾つかあって
- set /pでキーワードを入力
- grep相当の機能を持つfindstrを使う
- chcpでUTF-8も表示できるようにする
- clsして画面をクリア
- メニュー表示し、qを入力すると終了。oを入力すると検索結果をコピペしやすいようメモ帳で開く。
- 自分自身を呼び出し、繰り返し検索できるようにする
と、最近やってる姑息な手法を多く盛り込んでる。
なお、このバッチファイルは直接クリックするのではなく、ショートカットを作っておいて、そのショートカットの方を右クリックしてプロパティからフォントをMSゴシックに設定しておくと日本語も表示できる。