やりたいこと検索

バッチファイル内で計算を行う

 

目次

 

バッチファイル内で計算を行う

バッチファイル内で簡単な計算を行う方法を紹介します。ここでいう簡単な演算とは整数の「四則演算」と「割り算の余りの計算」です。バッチファイルでは小数などの実数は扱えません。あくまでも整数のみになります。

計算に使用するコマンドは「set」コマンドです。元々は変数を代入するコマンドですが、計算に使用することもできます。計算に使用する場合はオプション「/a」を付けて右側に計算式を書きます。

以下のバッチファイル(wa.bat)は「1+1」の計算を行って変数「wa」に解を代入しています。

以下、実行結果です。

バッチファイル内で計算を行う 1+1の計算をバッチファイルで行う

ここで注意すべきは、計算を行うときは必ず「/a」オプションを付けることです。「/a」を指定しないと、「1+1」が変数「wa」に文字列として代入されてしまい、計算されません(以下、「/a」を付けない場合の実行結果)。

バッチファイル内で計算を行う 1+1の計算の失敗例

計算演算子には以下の5つが用意されています。

+
*
/
% 余り

以下は四則演算および余りの計算を行ったバッチファイル(cal.bat)です。

始め、4,5行目で変数「a」と「b」に値を代入していますが、このときは計算を行っているわけではないので、「/a」オプションは必要ありません。「/a」オプションが必要なのは、8行目からの計算を行うときのみです。

以下、実行結果です。

バッチファイル内で計算を行う 簡単な四則演算および余りの計算

 

注意すべきは、解の出力で余りの記号「%」を出力するとき、「%%」と記述することです(19行目)。これは「%」がバッチファイルでは特殊文字であるためです。特殊文字の出力に関しては「特殊文字を出力する -やりたいこと検索-」を参照して下さい。

 

( )を付けて優先的に計算

通常の計算式と同様、計算式の( )で囲った中は優先的に計算されます。

以下にその例(kakko.bat)を示します。

5行目のように二重括弧も使用できます。

以下、実行結果です。

バッチファイル内で計算を行う 括弧の中を優先的に計算

( )の付け方で計算順が変わり、すべて違う解になりました。

 

左辺の値を使用した特殊な記述

左辺の変数と右辺の値を計算して左辺に代入するとき、すなわち以下のような式を考えます。

この式は処理の回数などをカウントするためのカウンターとしてよく使用されますが、以下のように記述することもできます。

上記の2つの式はまったく同じ動作をします。

「count=count+1」という式はあまりにも頻繁に使用するので、簡単な書き方を用意しプロミングを少し楽にしてあります。この記述はバッチファイルだけでなく、他の多くのコンピュータ言語でも共通に使用されています。

 

もちろん、和だけでなく5つすべての演算子について同様の書き方が用意されています。

count+=[数値] ⇔ count=count+[数値]
count-=[数値] ⇔ count=count-[数値]
count*=[数値] ⇔ count=count*[数値]
count/=[数値] ⇔ count=count/[数値]
count%=[数値] ⇔ count=count%[数値]

ただし、慣れないと逆に分かりにくくなってしまう場合のあるため、自分が理解しやすい方を使えばよいと思います。

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す