Windowsのバッチファイルで、起動した後にユーザに入力を促し、入力した結果に応じて処理を分岐させたりしたい場合があると思います。
多くのプログラム言語で、このようなユーザの入力を受け付ける機能があると思いますが、バッチファイルでもユーザから入力を受け付けることができます。
本記事では、その方法を紹介します。
ユーザの入力を促し、ユーザが入力した情報を変数に格納するコマンドとして「set /p」コマンドがあります。
「set /p [変数名]=」と記述することで、任意の変数名の変数に、ユーザが入力した文字列を入れることができます。
シンプルな使用例は以下となります。入力された内容にアクセスする方法は「%変数名%」と記述することで、以下のバッチファイルではechoコマンドで入力された内容を確認しています。
@echo off
set /p input=
echo 入力された文字は%input%です
pause
以下が実行結果です。「test」を入力してEnterキーを押すと、入力された文字は「test」ですと表示されるので、正常にユーザの入力を取得できていることがわかります。
以下は、入力された2つの数字の四則演算を行い、表示するサンプルとなっています。
@echo off
set /p input1="1つ目の数字を入力してください:"
set /p input2="2つ目の数字を入力してください:"
set /a A = %input1% + %input2%
set /a B = %input1% - %input2%
set /a C = %input1% * %input2%
set /a D = %input1% / %input2%
echo 2つの数字の和は%A%です
echo 2つの数字の差は%B%です
echo 2つの数字の積は%C%です
echo 2つの数字の商は%D%です
pause
このサンプルでは、input1とinput2に入力を受け付けます。
このときに「set /p [変数名]=”[メッセージ]”」とすることで、「1つ目の数字を入力してください:」というメッセージを合わせて出力することができます。
このように入力を受け付けて、簡単な計算を行うこともできます。