So verschieben Sie alle Parameter in einem Stapel

1447
eadmaster

Der bekannte shiftBefehl kann verwendet werden, um Positionsparameter in der Batchdatei zu verschieben, ABER er wirkt sich nicht auf die spezielle Variable aus %*.

Der Befehl shift hat keine Auswirkung auf den% * Batch-Parameter.

Gibt es eine Alternative zum Schalten ?

3
Charge ist Folter. v.oddou vor 6 Jahren 0

1 Antwort auf die Frage

0
dbenham

Leider gibt es keine eingebaute Syntax, um das zu tun, was Sie wollen. Am besten verwenden Sie eine Schleife, um eine Variable mit der gewünschten Parameterliste zu erstellen. Jede Iteration wird %1der Liste hinzugefügt und dann verschoben. Die Schleife wird fortgesetzt, bis keine Parameter mehr vorhanden sind.

Dies funktioniert nur, wenn die Parameter keine nicht zitierten Giftzeichen enthalten.

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