Пакетный файл Windows, если ошибка - как 30000000000000 может быть равно 40000000000?

IF дает неправильный ответ, когда я пытаюсь сравнить 2 больших числа.

Например, этот простой командный файл

@echo off
setlocal
set n1=30000000000000
set n2=40000000000
if %n1% gtr %n2% echo %n1% is greater than %n2%
if %n1% lss %n2% echo %n1% is less than %n2%
if %n1% equ %n2% echo %n1% is equal to %n2%

производит

30000000000000 is equal to 40000000000

Что происходит и как это исправить?

12
задан dbenham 19 February 2012 в 19:22
поделиться