Он работает нормально, но, похоже, не хочет работать в цикле.
Вам нужно установить EnableDelayedExpansion
.
EnableDelayedExpansion
Задержка расширения приведет к тому, что переменные будут расширяться во время выполнения, а не во время разбора, эта опция включается с помощью
SETLOCAL
команды. Когда действует отложенное расширение, на переменные можно ссылаться, используя! Variable_name! (в дополнение к обычному% variable_name%)пример
Setlocal EnableDelayedExpansion
Source EnableDelayedExpansion
Смотрите ответ на Джо для более подробного объяснения того, почему это необходимо.
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время анализа.