Vergleich von 2 zahlen im DOS-Batch Nicht Funktioniert
Ich bin ein old-timer, der ist ein Neuling auf DOS-Batch-Programmierung. Ich habe, was ich denke ist eine sehr einfache batch-Skript, welches nicht arbeiten. Ich habe nach ähnlichen posts, und finde nicht eine, die aufeinander abgestimmt sind.
Ich bin mit den unten script auf XP. Meine Ziel ist zu prüfen, freien Speicherplatz, bevor Sie fortfahren, aber ich lief in ein problem Vergleich von 2 zahlen, also die unterhalb der Skript enthält nur die Logik. Ich habe hart codierte zahlen zeigen das problem, das ist... Der Vergleich (wenn x gtr y) scheint nicht zu funktionieren, und so der Zweig der Logik geht an der falschen Stelle. Entweder das, oder bin ich Durcheinander irgendwo sonst in der IF-Anweisung. (Einige echo-Anweisungen sind unnötig - Sie sind für die Fehlersuche - aber ich habe Sie für jetzt.)
Jede Erleuchtung auf, wohin ich gehe falsch würde SEHR geschätzt werden.
... Thx
@echo off
set Free=217522712576
set Need=20000000000
echo Free=%Free%
echo Need=%Need%
echo on
IF %Free% GTR %Need% (GOTO Sufficient_Space) ELSE GOTO Insufficient_Space
@echo off
:Insufficient_Space
@ECHO INSUFFICIENT SPACE
GOTO DONE
:Sufficient_Space
@ECHO SUFFICIENT SPACE
:DONE
InformationsquelleAutor feenyman99 | 2011-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese zahlen würde ein überlauf des 32-bit-integer, so raten Ihr auf einem 32-bit-version von windows, das ist, warum seine scheitern.
InformationsquelleAutor Alex K.
Beachten Sie, Dass CMD Hatte Eine Genauigkeit zwischen
-2^31
zu2^31-1
dass gleich
-2 147 483 648
zu2 147 483 647
Wenn kleinere größer als der Grenzwert
eine Warnung kam:
Invalid number. Numbers are limited to 32-bits of precision.
InformationsquelleAutor GaryNg
Als die anderen sagen, die zahlen sind zu groß, aber wenn Sie halten Sie als strings und pad, um die gleiche Länge, es sieht nach Arbeit
InformationsquelleAutor Andy Morris