Как видите, я новичок в пакетных файлах, я написал сценарий в среде Windows 2003 для печати увеличенного значения счетчика переменных, а также применил условие if, которое не работает в цикле for, хотя и за пределами поскольку он показывает правильное количество значений переменной.
@echo off
SetLocal EnableDelayedExpansion
cls
set /A counter = 1
for C:\Scripts\LogFiles\ %%a in (*.txt) do ( echo %counter%
set /A counter += 1
echo %%a
if %counter% ==2 (echo test)
)
Отложенное расширение требует использования !
вместо того %
для раскрытия переменных. Так и должно быть !counter!
.
Все переменные среды формы %counter%
расширяются во время разбор команды (для for
с блоком он включает весь блок), поэтому вы увидите только значение, которое было у переменной перед цикл, так как к моменту выполнения цикла переменных больше нет; только ценности.