バッチファイルではset /aを用いることで変数に数値を代入できるのですが、代入できる値は32bit(signed)までです。
そんなわけで、
としたバッチファイルに2GBを超えるファイルを放り込むと
filesize:6990917428
halfsize:2147483647
的な感じに、代入した値は31bitに丸められてしまいます。
・・・まぁ、いいか・・・。
あと、バッチファイルの演算式で%や>を使いたい場合にはエスケープシーケンス(^)を直前に入れる必要があるそうで。
そんなわけで、
set filesize=%~z1
set /a halfsize=filesize
echo filesize:%filesize%
echo halfsize:%halfsize%
としたバッチファイルに2GBを超えるファイルを放り込むと
filesize:6990917428
halfsize:2147483647
的な感じに、代入した値は31bitに丸められてしまいます。
・・・まぁ、いいか・・・。
あと、バッチファイルの演算式で%や>を使いたい場合にはエスケープシーケンス(^)を直前に入れる必要があるそうで。
0 件のコメント:
コメントを投稿