本文へスキップ
BecomeCoder

バッチファイルコース · 第3章 変数を使う · レッスン8

set /a で計算する ― 数値を扱う

導入

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 / 33)。バッチは小数計算が苦手なので、正確な小数が必要なときは 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=1000set /a total=price*110/100 で税率10%込みの値が出ます(整数計算なので端数は切り捨て)。