CHOICEコマンド
前の項では、私の作成したプログラム「バックエラーレベル」を利用してメニュー選択を行う方法を解説しましたが、これはあまり一般的ではないため、ここではMS-DOS付属の「CHOICE」コマンドを利用してメニュー選択を行う方法を説明します。
CHOICEコマンドは、以下の書式で利用します。
CHOICE /C:候補キー1候補キー2候補キー3
CHOICEコマンドは、候補キーの中から指定したキーが押されると、そのキーが候補キーの中で左から何番目にかかれているかをエラーレベルに返してきます。
たとえば、
CHOICE /C:12345
と記述すると、
[1,2,3,4,5]?
表示して止まります。そして1が押されると左から1番目に1が書いてあるのでエラーレベルに1を戻して終了します。
それではこれで何か作ってみることにしましょう。
ちょっと変わったやつで、こんなのいかがでしょうか?
REM File Name CHOICE1.BAT
@ECHO OFF
ECHO 編集するファイルを選択してください。
ECHO ファイルがない場合には新規作成致します。
ECHO.
ECHO 1. TEST.TXT
ECHO.
ECHO 2. MEMO.TXT
ECHO.
ECHO. 3. NOTEBOOK.TXT
CHOICE /C:123
IF ERRORLEVEL 3 SET FILENAME=NOTEBOOK.TXT
IF ERRORLEVEL 2 SET FILENAME=MEMO.TXT
IF ERRORLEVEL 1 SET FILENAME=TEST.TXT
%WINDIR%\NOTEPAD.EXE %FILENAME%
EXIT
いかがですか?選択したファイルがメモ帳で開きましたでしょうか?
子のCHOICEコマンドを利用すると、以下のようなこともできます。
REM File Name CHOICE2.BAT
@ECHO OFF
ECHO メモ帳を起動しますか?
CHOICE /C:YN
IF ERRORLEVEL 2 GOTO END
IF ERRORLEVEL 1 %WINDIR%NOTEPAD.EXE
:END
バッチファイルの中でのメニュー選択は、一般的にはこのような方法で行います。
補足:CHOICEコマンドを黙らせる
CHOICEコマンドというのは、入力されたキーが何番目のものかをエラーレベルに返してくれますが、どうもこのときに処理が一時停止した後、よけいなメッセージを表示してくれます。
たとえば、何らかの処理を行うときに、
[1,2,3]?
と表示されるとじゃまな場合があります。せっかく作るのですから、
「メモ帳を起動するなら1を、ワードパッドを起動するなら2を、電卓を起動するなら3を押してください」
などと表示したいものです。
このようなときには、バッチファイルの中で、
ECHO 表示メッセージ
と記述した後に、
CHOICE /NC:123
などとすると、自分好みのメッセージを表示することができます。
次へ
バッチファイル講座の目次に戻る
MS-DOSの部屋に戻る
トップページに戻る