本文へスキップ
BecomeCoder

バッチファイルコース · 第3章 変数を使う · レッスン9

set /p で入力を受け取る ― 対話するバッチ

導入

これまでは値をバッチの中に直接書いていました。set /p を使うと、実行中にユーザーへ質問して答えを受け取る ことができます。バッチが「対話型」になります。

説明

set /p 変数=メッセージ と書くと、メッセージを表示してカーソルが点滅し、ユーザーが入力して Enter を押すと、その内容が変数に入ります。

@echo off
set /p username=お名前を入力してください:
set /p age=年齢を入力してください:

echo.
echo %username% さん(%age% 歳)、ようこそ!

数値として使いたい入力は、set /p で受け取ってから set /a に渡します。

@echo off
set /p n=数字を入力:
set /a doubled=n*2
echo 2倍すると %doubled% です

Enter だけ押して何も入力しなかった場合、変数は 前の値のまま(初めてなら空)になります。空のときの動きが気になる場面では、あらかじめ set var= で空にしておくか、後述の if で中身をチェックします。

入力はいつも「文字」 set /p で受け取った値は、たとえ数字を打っても「文字」として入ります。計算に使うときは set /a を通す、という一手間を忘れないようにしましょう。

やってみよう

名前と好きな数を尋ね、その数を3倍して返すバッチを書いてみましょう。set /p で受け取り、set /a で計算するのがポイントです。