3

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

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

Есть ли альтернатива смещению ?

1 ответ1

0

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

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

@echo off

shift /1
shift /1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .