OK, encontrado no documento MS , na seção de comentários:
- Using %* with shift
Shift has no affect on the %* batch parameter.
Agora, resta apenas perguntar por quê?
Ao usar o comando SHIFT
para deslocar os parâmetros de script uma posição para baixo, posso ver os valores mudarem de acordo com o parâmetro %1
:
:: scr1.bat
echo %*
echo %1
shift
echo %1
Então:
> scr1.bat aa bb cc
aa bb cc
aa
bb
No entanto, se eu fizer eco da lista de parâmetros após o turno, não parece mudar:
:: scr2.bat
echo %*
shift
echo %*
Então:
> scr2.bat aa bb cc
aa bb cc
aa bb cc
Por que o SHIFT
não funciona na lista completa de parâmetros?