バッチファイルとは、Windows環境で実行できるコマンド列を記述したテキストファイルで、バッチファイルを使って、例えば読み込んだファイルのデータを利用することができる。
今回は、バッチファイルからファイルを読み込み、読み込んだデータを利用してみたので、そのサンプルプログラムを共有する。
前提条件
下記記事の実装が完了していること。
バッチファイルでSELECT文の実行結果をファイルに出力してみたバッチファイルとは、Windows環境で実行できるコマンド列を記述したテキストファイルで、バッチファイルを使うと、データベースに接続して...
サンプルプログラムの作成
use_input_data.batの内容は以下の通りで、output.log(変数inputFileで定義)に出力している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | @echo off rem 結果の取得元となるファイル名 set inputFile=output.log rem ファイル(inputFileに指定した値)からmaxIdを含む行を取得し、変数tmpMaxIdに格納する rem ファイル(inputFileに指定した値)に、maxIdを含む行が複数ある場合は、最終行が有効になる for /f "usebackq delims=" %%A in (`findstr maxId %inputFile%`) do set tmpMaxId=%%A rem ファイル(inputFileに指定した値)からminIdを含む行を取得し、変数tmpMinIdに格納する rem ファイル(inputFileに指定した値)に、minIdを含む行が複数ある場合は、最終行が有効になる for /f "usebackq delims=" %%A in (`findstr minId %inputFile%`) do set tmpMinId=%%A rem tmpMaxId, tmpMinIdの値を出力する echo *** tmpMaxId, tmpMinIdの値 *** echo %tmpMaxId% echo %tmpMinId% echo. rem 変数から数値部分のみ抜き出す set maxId=%tmpMaxId:maxId: =% set minId=%tmpMinId:minId: =% rem maxId, minIdの値を出力する echo *** tmpMaxId, tmpMinIdから抜き出した数値 *** echo %maxId% echo %minId% echo. rem maxId, minIdの値をそれぞれ2倍する set /a maxIdMul2=%maxId%*2 set /a minIdMul2=%minId%*2 rem maxId, minIdの値をそれぞれ2倍した値を出力する echo *** tmpMaxId, tmpMinIdから抜き出した数値を2倍した値 *** echo %maxIdMul2% echo %minIdMul2% echo. rem maxIdの値を比較した結果を出力する echo *** tmpMaxId, tmpMinIdから抜き出した数値を比較した結果 *** if %maxId% equ 4 ( echo tmpMaxIdから抜き出した数値は4です。 ) else ( echo tmpMaxIdから抜き出した数値は4ではありません。 ) if %minId% neq 1 ( echo tmpMinIdから抜き出した数値は1ではありません。 ) else ( echo tmpMinIdから抜き出した数値は1です。 ) |
また、上記プログラムで読み込むoutput.logの内容は、前提条件の記事で作成したファイルと同じで、以下の通り。
サンプルプログラムの実行結果
サンプルプログラムの実行結果は、以下の通り。
1) コマンドプロンプトを起動し、バッチファイルが存在するディレクトリ(C:\tmp)に移動し、各ファイルの存在を確認する。
2) バッチファイル(use_input_data.bat)を実行する。実行すると、コマンドプロンプトには以下の値が表示される。
要点まとめ
- バッチファイルとは、Windows環境で実行できるコマンド列を記述したテキストファイルで、バッチファイルを使うと、読み込んだファイルのデータを利用することができる。
- ファイルから特定の文字列を含む行を抜き出すには、findstrコマンドを利用する。