| Zweck: | Ermöglicht die Verwendung von mehr als 10 Parametern in einer Stapeldatei oder die Iteration durch ihre Parameter |
| Format: | SHIFT [[-]n | /n ] |
| n | Anzahl 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.