導入
set はそのままだと値を「文字」として扱います。set /a を付けると、値を 数として計算 できます。カウンターやちょっとした集計に使えます。
説明
set /a 変数=式 で四則演算ができます。+ - * / に加えて、余りを求める %%(バッチ内では2つ重ね)も使えます。式の中では変数を % ではさまず、名前そのまま書けるのが set /a の特徴です。
@echo off
set /a a=10
set /a b=3
set /a sum=a+b
set /a product=a*b
set /a remainder=a %% b
echo 和: %sum%
echo 積: %product%
echo 余り: %remainder%
割り算 / は 整数 で計算され、小数は切り捨てられます(10 / 3 は 3)。バッチは小数計算が苦手なので、正確な小数が必要なときは PowerShell など別の道具を使うのが現実的です。
自分自身に足していく書き方もよく使います。
@echo off
set /a count=0
set /a count=count+1
set /a count=count+1
echo カウント: %count%
+=も使えるset /a count+=1のように、C 言語ふうの+=-=*=も使えます。set /a count=count+1と同じ意味で、より短く書けます。
やってみよう
set /a で「消費税込みの金額」を計算してみましょう。例えば set /a price=1000 と set /a total=price*110/100 で税率10%込みの値が出ます(整数計算なので端数は切り捨て)。