アプリ版:「スタンプのみでお礼する」機能のリリースについて

@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以下の処理)がどういうものなのかを
お教えいただきたいと思っております。
よろしくお願いいたします。

A 回答 (4件)

こんにちは。



 この中で、「choice」は「変数」です。これに「値」を代入し、参照できます。
 「set choice=」は変数に変な値が入っていると困るので、初期化しています。
 「set /p choice=上記の番号を入力して下さい(1,2)>」は入力された値を変数に代入しています。
 「'%choice%'」は変数の値を参照しています。

では。
    • good
    • 0
この回答へのお礼

なるほど!
setを使った行がなぜ2つあるのかわかってなかったのですが
これでスッキリしました。
わかりやすい回答ありがとうございました☆

お礼日時:2006/10/30 16:18

すみません。

意味がわかりました。

if not '%choice%'=='' set choice=%choice:~0,1%
これは、choiceに入力があった場合に、先頭の1桁を残してカットするということですね。
もし、「123」と入力されても、先頭の1だけを有効とするということです。

ECHO "%choice%" is not valid please try again
これは、既に回答して頂いていますが、%choice%はchoice変数の値を指します。
    • good
    • 0
この回答へのお礼

遅くなってすみません。
参考にさせていただきました。
ありがとうございました☆

お礼日時:2006/11/06 14:46

こんにちは、#1です。



 >ECHO "%choice%" is not valid please try again
 これは画面にメッセージを出すコマンドなので、例えば、「3」を入力した場合、
  "3" is not valid please try again
 と画面に出ます。

では。
    • good
    • 0
この回答へのお礼

1、2以外の文字が入力された場合に出力されるメッセージなんですね。
何度もすみません、ありがとうございます!

お礼日時:2006/10/30 17:09

ちょっと被りますが、



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%
これはちょっと意味不明です。

参考URL:http://plaza.rakuten.co.jp/kiraru2002/diary/2005 …

この回答への補足

いつもありがとうございます!

if not '%choice%'=='' set choice=%choice:~0,1%
↑これ、今補足でお聞きしようと思ったのですが、
やはりわからないですよね・・・^^;

ECHO "%choice%" is not valid please try again
↑こちらはどういう意味かご存知ですか??(;´Д`A

補足日時:2006/10/30 16:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!