Сравнение двух чисел в DOS пакетная обработка не работает

Я старожил, новичок в пакетном программировании DOS. У меня есть то, что, как я думаю, является очень простым пакетным сценарием, то есть не работает. Я искал похожие сообщения и не нашел ни одного подходящего.

Я запускаю приведенный ниже сценарий на XP. Моя цель - проверить свободное место на диске, прежде чем продолжить, но я столкнулся с проблемой при сравнении двух чисел , поэтому приведенный ниже сценарий содержит только эту логику. У меня есть жестко запрограммированные числа, чтобы показать проблему, а именно ... Сравнение (если x gtr y), похоже, не работает, и поэтому логика ветвления идет не в то место. Либо это, либо я ошибаюсь где-то еще в операторе IF. (Некоторые операторы эха не нужны - они предназначены для отладки - но я оставил их пока.)

Любое разъяснение того, где я ошибаюсь, было бы ОЧЕНЬ благодарно.

Спасибо ...

@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
6
задан Alex K. 14 October 2011 в 15:31
поделиться