入力文字列の保存

サンプル03のように、バッチファイルから環境変数に値を設定することができましたが、バッチファイルに書かれた固定されている文字列を環境変数に保存することに、あまり意味はないでしょう。多くの場合、環境変数は、実行時に判断しなければならない動的な値を保存することを目的とします。例えば、キーボードから入力された文字列や、アプリケーションやコマンドの出力結果、テキストファイルの内容などが考えられます。

setコマンドを使って任意の値を環境変数に設定することができましたが、ユーザーの入力したデータを変数に保存することも可能です。環境変数に保存する値を入力するには、/Pオプションを指定した次のsetコマンドを使用します。

set /P 変数名=[プロンプト文字列]

変数名には、入力された内容を保存する環境変数の名前を指定します。= 記号に続いて、入力を促すため画面に表示されるプロンプト文字列が続きます。この文字列は省略することができます。

コマンドが実行されるとプロンプトからのデータ入力を待機します。データが入力されると、setコマンドで指定した変数に入力された文字列が格納されています。これで、バッチファイルの実行時に利用者と対話することが可能になります。実行する処理を選択してもらったり、コマンドの実行に必要な参考値などを入力してもらうといった使い方が考えられます。

サンプル04

@echo off
set /P VALUE="入力してください>"
echo 文字列 "%VALUE%" が入力されました
pause

実行結果

サンプル04の実行結果

サンプル04は、最初に/Pオプションを指定したsetコマンドを実行し、ユーザーに入力を求めます。任意の文字列が入力されると VALUE変数に内容が保存されます。echoコマンドでVALUE変数の内容を出力し、入力された文字列が、正しく変数に保存されていることを確認しています。