Zweck:Ermöglicht die Verwendung von mehr als 10 Parametern in einer Stapeldatei oder die Iteration durch ihre Parameter

 

Format:SHIFT [[-]n | /n ]

 

nAnzahl der zu verschiebenden Positionen (eine Zahl ohne Vorzeichen), oder die Position des zu löschenden Parameters.

 

Verwendung:

 

SHIFT wird aus Kompatibilität mit für CMD geschriebenen Batchdateien bereitgestellt, wo es verwendet wurde, um auf mehr als die CMD-Beschränkung von 10 Parametern zuzugreifen. TCC unterstützt 8191 Parameter (%0 bis %8190), so dass Sie SHIFT nicht für Batch-Dateien verwenden müssen, die ausschließlich unter TCC.

 

SHIFT n verschiebt jeden der Batchdateiparameter um n Positionen nach links. Der Standardwert für n ist 1. Mit SHIFT (ohne Parameter) wird z. B. der Parameter %1 zu %0, der Parameter %2 zu %1, usw.

 

SHIFT -n verschiebt Parameter nach rechts, aber nur an die Position, an der sie bei der Eingabe in die Stapeldatei standen.

 

Diese Form von SHIFT wirkt sich auch auf die speziellen Parameter %n$, %$ und %# (Anzahl der Befehlsparameter) aus. Aus Gründen der Kompatibilität mit CMD ändert diese Form des SHIFT-Befehls jedoch  nicht den Inhalt oder die Reihenfolge der Parameter, die von %* zurückgegeben werden.  Siehe Batch-Datei-Parameter für weitere Einzelheiten.

 

Beispiele:

 

Erstellen Sie eine Batch-Datei mit dem Namen TEST.BAT:

 

echo %1 %2 %3 %4

shift

echo %1 %2 %3 %4

shift 2

echo %1 %2 %3 %4

shift -1

echo %1 %2 %3 %4

 

Die Ausführung des folgenden Befehls führt zu den folgenden Ergebnissen:

 

[c:\] test one two three four five six seven

one two three four

two three four five

four five six seven

three four five six

 

SHIFT/n Diese Form des Befehls löscht den Parameter %n unwiderruflich  aus dem Befehlsende und verschiebt alle Parameter, die sich ursprünglich rechts von ihm befanden,um 1 Position nach links. Ein Beispiel,

 

shift /2

 

lässt die Parameter %0 und %1 unverändert und verschiebt den Wert von %3 auf Position %2, %4 auf %3 usw.

 

Diese Form von SHIFT wirkt sich auch auf die speziellen Parameter %n$, %$ und %# (Anzahl der Batchdateiparameter) aus. Siehe Batchdatei-Parameter für weitere Einzelheiten.