как сдвинуть все параметры в пакете

1247
eadmaster

Хорошо известная shiftкоманда может использоваться для сдвига позиционных параметров в пакетном файле, НО она не влияет на специальную переменную %*.

Команда сдвига не влияет на пакетный параметр% *.

Есть ли альтернатива сдвигу ?

3
выпечка это пытка. v.oddou 6 лет назад 0

1 ответ на вопрос

0
dbenham

К сожалению, нет, нет встроенного синтаксиса, чтобы делать то, что вы хотите. Лучшее, что вы можете сделать, это использовать цикл для создания переменной, содержащей желаемый список параметров. Каждая итерация добавляет %1к списку и затем сдвигает. Цикл продолжается до тех пор, пока не останется больше параметров.

Это будет работать только в том случае, если параметры не содержат никаких кавычек без кавычек.

@echo off  shift /1 shift /1  set "remainingArgs=" :getRemainingArgs if "%~1" neq "" ( set ^"remainingArgs=%remainingArgs% %1" shift /1 goto :getRemainingArgs ) echo remainingArgs=%remainingArgs%