Я хотел бы напечатать следующее:Выполнение арифметических операций в цикле с переменными в пакетном
0
1
2
3
4
Я попытался это:
ECHO OFF
FOR /L %%A in (1,1,5) DO (
SET /a "B=%%A-1"
ECHO %B%
)
Однако, это дает мне:
4
4
4
4
4
Как я могу достичь желаемого выхода при использовании как A
, так и B
в моем коде?
Это проблема с задержкой расширения. Слишком ленив, чтобы google это, но есть сотни вопросов, подобных этому на SO уже. Почему не просто 'for/L %% A в (0,1,4)'? Если это непрактично, тогда вы должны «setlocal enabledelayedexpansion» и «echo! B!». Для получения дополнительной информации «help set» в консоли cmd, обращая внимание на начало раздела «Наконец, добавлена поддержка расширенного расширения переменных среды». – rojo
Этот код не выводит ** 4 ** пять раз. Он будет выводить 'ECHO IS OFF' пять раз. – Squashman
@Squashman Он выводит 'ECHO IS OFF' пять раз в первый раз, когда я его запускал, но в следующий раз я его запустил пять раз в следующий раз. – IslandPatrol