Как увеличить переменную под DOS?
Я потратил последние 3 часа, пытаясь решить это, но просто не мог найти решение. Вот мой пакетный скрипт:
if NOT Exist Counter.txt GOTO START
Type c:\counter.txt
if %COUNTER% EQU %Cycles% goto Pass
if NOT %COUNTER% EQU %Cycles% goto Cycle
:START
Set COUNTER=0
set CYCLES=250
:Cycle
set /A COUNTER=%COUNTER%+1 <----------- PROBLEM
echo Iteration %COUNTER% of %CYCLES%
echo Delay 3 seconds to reboot
choice /cy /n /t:y,3
warmboot.com
:Pass
pause
Он запускает файл «warmboot.com» (который перезагружает мой компьютер) и работает 250 циклов. Как только циклы пройдут 250 раз (т.е. когда счетчик равен циклу), он останавливается.
Под Windows это работает. Тем не менее, это не работает в среде DOS. Я пробовал версии от v4 вплоть до v6.22 и даже v7, и все они терпят неудачу, когда он достигает линии «ПРОБЛЕМА».
Если я сделаю это:
set /A COUNTER=%COUNTER%+1
echo %Counter%
Или это:
set /A COUNTER+=1
echo %Counter%
оба возвращают пустую строку, то есть в качестве вывода ничего не отображается.
Если я наберу:
set /?
тогда это показывает это:
Отображает, устанавливает или удаляет переменные среды cmd.exe.
SET [variable = [string]]
переменная Определяет имя переменной среды.
строка Определяет серию символов для назначения переменной.
но ввод той же команды в CMD в Windows показывает гораздо больше вещей. Я думаю, что функция SET в DOS не поддерживает арифметические функции, но для рабочих целей я должен запускать свои сценарии только в DOS.
Есть идеи?