文字列の検索


 バッチファイルを利用して何かのファイルを生成したり、逆に既存のファイルをバッチファイルの中から呼び出して使用する場合、テキストファイルの中から文字列の検索ができると大変便利です。
 これを行うためのMS-DOSのコマンドが「FIND」コマンドです。
このコマンドはテキストファイル(複数可)の中から指定の文字列を検索します。
書式は以下の通りです

FIND オプション "検索文字列" 検索ファイル名1 検索ファイル名2 ....

以下のオプションを付加することで、このコマンドの動作を変更することが出来ます。


 たとえば、「TEST.TXT」というファイルの中から「試験」という文字列を検索するには以下のように書きます。

FIND "試験" TEST.TXT

 次に、「A.TXT」、「B.TXT」の二つのファイルの中から、「こんにちは」という文字列を検索するには以下のようにします。

FIND "こんにちは" A.TXT B.TXT

 さて、二つのファイルならこれでも良いのですが、たとえば拡張子が「TXT」のファイルをすべて検索したいときはどうするでしょうか?

FIND "こんにちは" *.TXT

このようにすればいいでしょうか?結論から言えばこれではだめです。
このコマンド、困ったことに、ワイルドカードに対応していません。そこで今回は、拡張し「TXT」のファイルから文字列を検索するバッチファイルを作成してみましょう。


REM File Name FIND1.BAT
@ECHO OFF
IF "%1"=="" GOTO HELP
FOR %%A IN (*.TXT) DO FIND "%1" %%A
GOTO END
:HELP
ECHO 使い方。
ECHO FIND の後に検索文字列を入力してください。
:END


練習問題


 次の内容のバッチファイルを作成してみましょう。
 ファイル名はFIND2.BATとします。
処理内容:
 パラメータはありません。
キーボードから検索文字列とファイル名を入力して検索を行います。
実行結果が以下のようになるように作成してください。


検索文字列を入力してください。
入力が終わったらCtrlキーを押しながらZキーを押してエンターキーを押してください。

検索ファイル名を入力してください。
入力が終わったらCtrlキーを押しながらZキーを押してエンターキーを押してください。
○○というファイルから文字列○○を検索します。

検索結果は以下の通りです。
(検索結果表示。

もう一度検索を行いますか?
1=行う、2=行わない
(行うを選択すると、検索文字列入力に戻る) 検索を終了しました。

ヒント


 前のこうの「キーボードからの入力を処理する」と、「CHOICEコマンド」の項を参照してみてください。
どうしても分からない場合は、ここをクリックしてください。


次へ

バッチファイル講座の目次に戻る

MS-DOSの部屋に戻る

トップページに戻る