2011/08/12

バッチファイルの四則演算

バッチファイルではset /aを用いることで変数に数値を代入できるのですが、代入できる値は32bit(signed)までです。
そんなわけで、

set filesize=%~z1
set /a halfsize=filesize
echo filesize:%filesize%
echo halfsize:%halfsize%


としたバッチファイルに2GBを超えるファイルを放り込むと
filesize:6990917428
halfsize:2147483647
的な感じに、代入した値は31bitに丸められてしまいます。

・・・まぁ、いいか・・・。
あと、バッチファイルの演算式で%や>を使いたい場合にはエスケープシーケンス(^)を直前に入れる必要があるそうで。

0 件のコメント:

コメントを投稿