Alle Windows-Kommandos

Liste der Windows-Kommandozeilentools - Kommandos und -Befehle unter MS Windows

Liste der Windows-eigenen Kommandos

shift

Übersicht

Befehl
Kurzbeschreibung
Syntax
Beispiele
     Drag and Drop und Startparameter durchloopen


Befehlshift
KurzbeschreibungVerändert die Position ersetzbarer Parameter in einem Batchprogramm.
Syntax
Hinweis: Dies ist ein internes Kommando. 
Kommando zum Anzeigen der Hilfe: shift /? 

Verändert die Position ersetzbarer Parameter in einem Batchprogramm.

SHIFT [/n]

Wenn die Befehlserweiterungen aktiviert sind, unterstützt der SHIFT-Befehl
die /n-Option. Damit wird mit dem Verschieben beim n-ten Argument begonnen,
wobei n zwischen Null und Acht liegt. So wird zum Beispiel durch

    SHIFT /2

das Argument %3 nach %2, %4 nach %3 usw. verschoben, während die
Argumente %0 und %1 nicht verschoben werden.
Beispiele

Drag and Drop und Startparameter durchloopen

Mit %1 .. %9 kann die mit einer Batch-Datei mitgegebenen Startparameter auswerten. Wichtig bei Parametern, die Leerzeichen enthalten ist das Quoten mit (doppeltem) Hochkomma.

Anbei ein Beispiel, dass immer 1 Parameter verarbeitet. Am Ende einer (fiktiven) Aktion wird mit shift Parameter 1 weggeschoben (verworfen) und nachfolgende Parameter rücken auf (der vormals zweite Parameter rückt an die 1. Stelle, der 3. Parameter wird zum 2. usw.). Auf diese Weise kann man mit dem shift Kommando auch mehr als 9 Parameter ansprechen.

Ach ja: Man kann natürlich von einer BAT-Datei eine Verknüpfung auf dem Desktop erzeugen. Markiert man im Explorer mehrere Dateien und zieht diese per Drag and Drop auf die Verknüpfung der BAT-Datei, so werden die markierten Dateien als einzelne Parameter übergeben.

Im nachfolgenden Beispiel...
  • erfolgt ein Test, ob überhaupt ein Parameter mitgegeben wurde
  • Das Label :loop ist mein Startpunkt für die Verarbeitung eines einzelnen Parameters
  • shift macht die Verschiebung der Paramter
  • Wenn nach dem shift der erste Paramter leer ist, dann wird abgebrochen
  • Wenn nicht, springen wir zum Label :loop und wiederholen das Spiel.
	(...)
	if "%~1"=="" (
		echo Es wurde kein Parameter angegeben. Druecke eine Taste zum Beenden.
		pause >nul
		exit
	)

	:loop
	echo --- %~1
	
	echo" Hier mache ich irgendetwas mit %~1"
	 
	shift
	
	if "%1"=="" (
		echo FERTIG. Druecke eine Taste zum Beenden.
		pause >nul
		exit
	)
	goto loop

s.a. » %1..%9 » goto


Übersicht