Вопросы к Поиску с Алисой
Отложенное расширение переменных в командных файлах позволяет изменять значения переменных во время выполнения скрипта, особенно в циклах, где переменные могут изменяться. superuser.com qna.habr.com
По умолчанию расширение происходит один раз, перед выполнением каждой строки. superuser.com Отложенное расширение выполняется каждый раз при выполнении строки или для каждого цикла в команде FOR. superuser.com
Для указания отложенного расширения используются два восклицательных знака (!), которые указывают, что переменная должна быть расширена в момент выполнения, а не при первом чтении строки. qna.habr.com
Включить отложенное расширение можно с помощью команды SETLOCAL EnableDelayedExpansion. superuser.com otvet.mail.ru