Freigeben über


Umschalten

Ändert die Position von Batchparametern in einer Batchdatei.

Syntax

shift [/n <N>]

Die Parameter

Parameter BESCHREIBUNG
/n <N> Gibt an, mit der Verschiebung am N--th-Argument zu beginnen, wobei N- ein beliebiger Wert von 0 auf 8ist. Erfordert Befehlserweiterungen, die standardmäßig aktiviert sind.
/? Zeigt hilfe an der Eingabeaufforderung an.

Bemerkungen

  • Der Befehl Umschalt ändert die Werte der Batchparameter %0 bis %9, indem jeder Parameter in den vorherigen kopiert wird. Der Wert %1 wird in %0kopiert, der Wert %2 wird in %1kopiert usw. Dies ist nützlich zum Schreiben einer Batchdatei, die denselben Vorgang für eine beliebige Anzahl von Parametern ausführt.

  • Wenn Befehlserweiterungen aktiviert sind, unterstützt der Befehl Umschalt die Befehlszeilenoption /n. Die option /n gibt an, mit der Verschiebung am Nth-Argument zu beginnen, wobei N ein beliebiger Wert zwischen 0 und 8 ist. Beispielsweise würde UMSCHALT /2%3 auf %2, %4%3usw. verschieben und %0 und %1 unberührt lassen. Befehlserweiterungen sind standardmäßig aktiviert.

  • Sie können den Befehl Schicht verwenden, um eine Batchdatei zu erstellen, die mehr als 10 Batchparameter akzeptieren kann. Wenn Sie mehr als 10 Parameter in der Befehlszeile angeben, werden die Parameter, die nach dem zehnten (%9) angezeigt werden, einzeln in %9verschoben.

  • Der Befehl Schicht hat keine Auswirkungen auf den %* Batchparameter.

  • Es gibt keinen Rückwärts-Umschaltbefehl. Nachdem Sie den Befehl Schicht implementiert haben, können Sie den Batchparameter (%0) nicht wiederherstellen, der vor der Schicht vorhanden war.

Beispiele

Wenn Sie eine Batchdatei verwenden möchten, die als Mycopy.batbezeichnet wird, um eine Liste von Dateien in ein bestimmtes Verzeichnis zu kopieren, geben Sie Folgendes ein:

@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
rem The command uses the following syntax:
rem mycopy dir file1 file2 ...
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done