como mudar todos os parâmetros em um lote

3

O comando bem conhecido shift pode ser usado para alterar os parâmetros posicionais no arquivo de lote, MAS não afeta a variável especial %* .

O comando shift não tem efeito sobre o parâmetro% * em lote.

Existe uma alternativa para alternar ?

    
por eadmaster 18.04.2014 / 04:04

1 resposta

0

Infelizmente, não, não há uma sintaxe incorporada para fazer o que você deseja. O melhor que você pode fazer é usar um loop para construir uma variável contendo a lista de parâmetros desejada. Cada iteração adiciona %1 à lista e, em seguida, muda. O loop continua até que não haja mais parâmetros.

Isso só funcionará se os parâmetros não contiverem caracteres poison não listados.

@echo off

shift /1
shift /1

set "remainingArgs="
:getRemainingArgs
if "%~1" neq "" (
  set ^"remainingArgs=%remainingArgs% %1"
  shift /1
  goto :getRemainingArgs
)
echo remainingArgs=%remainingArgs%
    
por 19.04.2014 / 00:48