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の部屋に戻る

トップページに戻る