Windows fichier de commandes SI échec - Comment pouvez-30000000000000 l'égalité des 40000000000?

SI donne la mauvaise réponse quand j'essaie de comparer les 2 grands nombres.

Par exemple, ce simple fichier batch

@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%

produit

30000000000000 is equal to 40000000000

Ce qui se passe, et comment puis-je résoudre ce problème?

OriginalL'auteur dbenham | 2012-02-02