- ベストアンサー
【バッチファイル】コマンドの説明
@echo off cls :start ECHO. echo 以下から該当PCの作業形態を選択して下さい。 echo 1:データ移行有り echo 2:データ移行無し set choice= set /p choice=上記の番号を入力して下さい(1,2)> if not '%choice%'=='' set choice=%choice:~0,1% if '%choice%'=='1' goto ikou_ari if '%choice%'=='2' goto ikou_nashi ECHO "%choice%" is not valid please try again ECHO. goto start お世話になっております。 今回は、上記の「set choice=」以下の部分が どういった処理をしているのかをお聞きしたくて投稿いたしました。 特に、「set」の使い方と言いますか、 「set」の役割(set以下の処理)がどういうものなのかを お教えいただきたいと思っております。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 この中で、「choice」は「変数」です。これに「値」を代入し、参照できます。 「set choice=」は変数に変な値が入っていると困るので、初期化しています。 「set /p choice=上記の番号を入力して下さい(1,2)>」は入力された値を変数に代入しています。 「'%choice%'」は変数の値を参照しています。 では。
その他の回答 (3)
- Yeti21
- ベストアンサー率47% (396/830)
すみません。意味がわかりました。 if not '%choice%'=='' set choice=%choice:~0,1% これは、choiceに入力があった場合に、先頭の1桁を残してカットするということですね。 もし、「123」と入力されても、先頭の1だけを有効とするということです。 ECHO "%choice%" is not valid please try again これは、既に回答して頂いていますが、%choice%はchoice変数の値を指します。
お礼
遅くなってすみません。 参考にさせていただきました。 ありがとうございました☆
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは、#1です。 >ECHO "%choice%" is not valid please try again これは画面にメッセージを出すコマンドなので、例えば、「3」を入力した場合、 "3" is not valid please try again と画面に出ます。 では。
お礼
1、2以外の文字が入力された場合に出力されるメッセージなんですね。 何度もすみません、ありがとうございます!
- Yeti21
- ベストアンサー率47% (396/830)
ちょっと被りますが、 set choice= choiceの初期値セット(空値)。 仮に「set choice=1」とすると、入力時の初期値は1となります。 この場合、入力せずにENTERだけ押した場合、1が入力されたことになります。 set /p choice=上記の番号を入力して下さい(1,2)> setの/pオプションは、後ろの文字列を表示後、キーボードから入力値を受け取り、 変数(choice)にセットします。 if not '%choice%'=='' set choice=%choice:~0,1% これはちょっと意味不明です。
補足
いつもありがとうございます! if not '%choice%'=='' set choice=%choice:~0,1% ↑これ、今補足でお聞きしようと思ったのですが、 やはりわからないですよね・・・^^; ECHO "%choice%" is not valid please try again ↑こちらはどういう意味かご存知ですか??(;´Д`A
お礼
なるほど! setを使った行がなぜ2つあるのかわかってなかったのですが これでスッキリしました。 わかりやすい回答ありがとうございました☆