set /p とchoiceコマンドの違いを解説

BASH,bat,バッチ

ユーザーに入力するコマンドは2つあります。set /pとchoiceコマンドがバッチファイルで使うコマンドになります。

set /pとchoiceコマンドの違いはユーザーに指定した選択肢の有無です。

  • set /p ユーザーに任意の値を入力する
  • choiceは指定した値から選ぶ

それぞれのコマンドについて、解説します。

set /pユーザーに任意の値を入力してもらう。どんな文字や数字でもオッケー。
choiceプログラム作成者が任意の値等を指定し、ユーザーがその値から選択する。

set  /pでユーザーに入力をしてもらう

set /pはユーザーに任意の数字を入力してもらいます。このため、どんな数字や文字でも入力が可能です。

使い方はユーザーに入力してもらった数字や文字を使う際に利用します。例えば、こちらの記事のようにファイル名を変更するバッチファイルを作成することができます。バッチファイルでは、echoにより入力する項目をユーザーに選んでもらう形を取っています。複数のコマンドを組み合わせているので少々難しいため、今回は簡単な例をあげて解説します。

下記のコードのようにユーザーに入力してもらい、入力した値や文字をechoコマンドで表示することをやっていきます。下記のコード「set.bat」です

set /p ui=
echo %ui%
pause

このコードをテキストファイルに書き込み、バッチファイルに変換します。これをコマンドスクリプトで表示します。

コマンドスクリプトの結果はこちら。set /pで入力されるようになりました。入力項目では「お試し」を記載してみると、echoコマンドで入力した文字が表示されます。

他にもどんな文字や値でも表示することができます。

choiceで選択肢を用意して、ユーザーに入力してもらう。

choiceコマンドはプログラム作成者が任意の選択肢を作成し、ユーザーに選択肢を入力してもらう形式です。選択肢以外の値や文字を入力しても、コマンドスクリプトは処理しません。

例えば下記のコードを入力してみます。

choice /c:abcdef
echo ui=%errorlevel%

コマンドスクリプトの結果はこちら。choiceの後に[A,B,C,D,E,F]?と聞かれます。指定しれた値の中から選びます。結果をerrorlevel変数に入り、echoコマンドでerrorlevelの中身を表示しています。

コメント

タイトルとURLをコピーしました