プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

Batch 選択コマンド作成

コマンドで選択した結果によってプログラムを実行するバッチファイルを作成する
また選択結果を元に必要な情報に変換してテキストファイルに出力するような仕様にする
 
 


■構成ファイル

  • ApplicationRun.bat
    メインバッチ
    このファイルをダブルクリックして実行することにより「Env.bat」・「Output.bat」を読み込み、処理を実行する
     
  • Env.bat
    環境設定バッチ
    動的に実行内容が変更できるようにコマンド選択を行う
     
  • Output.bat
    出力バッチ
    「Env.bat」の選択結果を元に必要な情報に変換して「result.txt」ファイルに出力する
     
  • result.txt
    アウトプットファイル
    「Output.bat」の出力結果
     
     


    ■バッチファイル内容

    ・ApplicationRun.bat

@echo off

rem 「Env.bat」を読み込み
call Env.bat

rem 「Env.bat」でリターンコードによって実行
if "%errorlevel%" equ "1" (
    echo リターンコード:[%errorlevel%]
    echo;
    cmd /k
    exit
) else if "%errorlevel%" equ "2" (
    echo;
    cmd /k
    exit
)

rem 「Output.bat」を読み込み
call Output.bat

rem 「Output.bat」でリターンコードによって実行
if "%errorlevel%" equ "1" (
    echo リターンコード:[%errorlevel%]
    echo;
    cmd /k
    exit
)

pause
exit

 
 
・Env.bat

@echo off

echo ***** データベース番号を選択してください *****
echo;
echo Oracle:[1]
echo MySQL:[2]
echo;
set /p dbTypeNbr="データベース番号:"
echo;

if "%dbTypeNbr%" equ "1" (
    set dbType=Oracle
) else if "%dbTypeNbr%" equ "2" (
    set dbType=MySQL
) else (
    echo 不正な番号が選択された為、処理を中断します
    echo;
    exit /b 1
)

echo;
echo ***** URL番号を選択してください *****
echo;
echo Google:[1]
echo Yahoo:[2]
echo;
set /p urlTypeNbr="URL番号:"
echo;

if "%urlTypeNbr%" equ "1" (
    set urlType=Google
) else if "%urlTypeNbr%" equ "2" (
    set urlType=Yahoo
) else (
    echo 不正な番号が選択された為、処理を中断します
    echo;
    exit /b 1
)

echo;
echo ***** 確認 *****
echo;
echo データベース:%dbType%
echo URL:%urlType%
echo;
echo 上記設定でよろしいですか?
echo;
echo YES[1]
echo NO[2]
echo;
set /p answer=
echo;

if "%answer%" neq "1" (
    echo 処理を終了します
    echo もう一度最初から操作してください
    echo;
    exit /b 2
)

exit /b

 
 
・Output.bat

@echo off

rem データベース番号によるデータベース接続コマンドの分岐
if "%dbTypeNbr%" equ "1" (
    rem 「Oracle」が選択されていた場合は変数にオラクル接続コマンドをセット
    set db_con=sqlplus hogehoge/0000@service_name
) else if "%dbTypeNbr%" equ "2" (
    rem 「MySQL」が選択されていた場合は変数にMySQL接続コマンドをセット
    set db_con=mysql -u hogehoge -p0000
) else (
    echo 不正な番号が選択された為、処理を中断します
    echo;
    exit /b 1
)

rem URL番号によるURL接続コマンドの分岐
if "%urlTypeNbr%" equ "1" (
    set url_con=https://www.google.com/
) else if "%urlTypeNbr%" equ "2" (
    set url_con=https://www.yahoo.co.jp/
) else (
    echo 不正な番号が選択された為、処理を中断します
    echo;
    exit /b 1
)

rem result.txtに出力
echo データベース接続コマンドを出力
echo;
rem 前回出力した「result.txt」が存在する場合は上書きして出力
echo %db_con% > result.txt
echo URL接続コマンドを出力
echo;
rem 「result.txt」に追加出力
echo %url_con% >> result.txt
echo;
echo result.txtに出力完了

exit /b