Как сдвинуть все параметры в пакете
Хорошо известный shift
Команда может использоваться для сдвига позиционных параметров в пакетном файле, НО это не влияет на специальную переменную %*
,
Команда сдвига не влияет на пакетный параметр%*.
Есть ли альтернатива сдвигу %°
?
1 ответ
К сожалению, нет, нет встроенного синтаксиса, чтобы делать то, что вы хотите. Лучшее, что вы можете сделать, это использовать цикл для создания переменной, содержащей желаемый список параметров. Каждая итерация добавляет %1
к списку, а затем сдвигается. Цикл продолжается до тех пор, пока не останется больше параметров.
Это будет работать, только если параметры не содержат ядовитых символов без кавычек.
@echo off
shift /1
shift /1
set "remainingArgs="
:getRemainingArgs
if "%~1" neq "" (
set ^"remainingArgs=%remainingArgs% %1"
shift /1
goto :getRemainingArgs
)
echo remainingArgs=%remainingArgs%