Funciona bem, mas parece que não quer trabalhar no loop.
Você precisa definir EnableDelayedExpansion
.
EnableDelayedExpansion
Delayed Expansion will cause variables to be expanded at execution time rather than at parse time, this option is turned on with the
SETLOCAL
command. When delayed expansion is in effect variables may be referenced using !variable_name! (in addition to the normal %variable_name% )Example
Setlocal EnableDelayedExpansion
Fonte EnableDelayedExpansion
Veja a resposta por Joey para uma explicação mais detalhada de por que isso é necessário.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- enabledelayedexpansion - Expansão com atraso fará com que as variáveis sejam expandidas em tempo de execução e não no tempo de análise.