Windowsバッチ 変数
変数の設定と参照
変数名は、大文字と小文字の区別なし。
設定された変数値は、文字列扱い。
変数への設定は、setを用いる。
その際、=の前後にスペースを入れないようにする。
スペースを入れると、スペースを含めた変数名・変数値と認識される。
変数を参照する場合は、変数名を%で囲む。
set aaa=abcDE echo aaa=%aaa% echo AAA=%AAA% set bbb = pqrST echo bbb=%bbb% echo bbb =%bbb %
aaa=abcDE AAA=abcDE bbb= bbb = pqrST
5行目は、変数"bbb "への設定となるので、
変数"bbb"の参照では空っぽで、
変数"bbb "に変数値" pqrST"が格納されている。
この変数値は、"pqrST"の前に半角スペースがあるのに注意。
数値・計算式の結果の、変数への設定
set /Aを用いると、数値・計算式の結果を変数に設定できる。
この場合は、=の前後にスペースを入れても構わない。
スペースを入れても、区切り文字と解釈される。
set /A num1=123 set /A num2= 1 + 1 set /A num3 = 2 * 3 echo num1=%num1% echo num2=%num2% echo num3=%num3% echo num3 =%num3 %
num1=123 num2=2 num3=6 num3 =
3行目は、変数"num3"への設定となるので、
変数"num3"に計算結果が格納されて、
変数"num3 "は空っぽになっている。
変数として扱える数値
数値は、範囲-2147483647~2147483647(2の31乗-1)の整数のみで、小数値は扱えない。
小数点は正しく解釈されないで、エラーとなる。
set /A numP1 = 2147483647 echo numP1=%numP1% set /A numP2 = 2147483648 echo numP2=%numP2% set /A numN1 = -2147483647 echo numN1=%numN1% set /A numN2 = -2147483648 echo numN2=%numN2% set /A numD1 = 1.23 echo numD1=%numD1%
numP1=2147483647 無効な数字です。数値は 32 ビットで表記される数値です。 numP2= numN1=-2147483647 無効な数字です。数値は 32 ビットで表記される数値です。 numN2= 演算子がありません。 numD1=1
変数の結合
変数は、setを用いて次のようにして結合できる。
このとき、変数の前後に任意の文字列を追加することもできる。
set str1=豚骨醤油 set str2=ラーメン set /A nedan = 700 set str3=%str1%%str2% echo str3=%str3% set str4=大盛も%str3%は%nedan%円 echo str4=%str4%
str3=豚骨醤油ラーメン str4=大盛も豚骨醤油ラーメンは700円