Übergabe von Befehlsparametern in Batch Dateien Verfasst am: 04.05.2009, 17:46
In BAT-Ablaeufen sind oft variable Angaben erforderlich, die erst
mit dem jeweiligen Aufruf bestimmt werden sollen.
Dazu werden in der BAT-Datei "Platzhalter" eingebaut. Beim Start
einer BAT-Datei werden dann die aktuellen Werte einfach als zusaetzliche
Angaben in der Befehlszeile gemacht (Befehlsparameter).
Platzhalter bestehen aus einem Prozentzeichen mit der laufenden
Nummer des Befehlsparameters, also %1.....%9 (nur _eine_ Ziffer
moeglich).
Ein Beispiel (Datei EDR.BAT):
attrib -R %1
XEDIT %1
attrib +R %1
Aufruf:
EDR ANY.TXT
Hier wird vor dem Aufruf des Editors (XEDIT) der Schreibschutz der
angegebenen Datei entfernt und anschliessend wieder eingeschaltet.
DOS ersetzt Platzhalter jeweils bevor eine Zeile interpretiert
wird durch den entsprechenden Befehlsparamter. Auf diese Weise
kann praktisch alles in einem BAT-Ablauf variabel gemacht werden,
auch Befehle und Programm-Aufrufe.
Trennzeichen, Sonderzeichen
Zur Trennung von Befehlsparametern koennen auch Komma oder Semikolon
verwendet werden. Sie werden praktisch durch Leerzeichen
ersetzt. Leere Parameter koennen auf diese Weise NICHT uebergeben
werden, z.B.:
XXX.BAT A,,,B ergibt: %1=A, %2=B
Auch die Uebergabe eines Parameters, in dem Leerzeichen enthalten
sein sollen, ist nicht moeglich (Anfuehrungszeichen nutzen nichts)
Beisipel:
AAA.BAT "das Wort" ergibt: %1="das, %2=Wort"
Achtung: Das Gleich-Zeichen (=) gilt ebenfalls als Trennzeichen,
wird also wie ein Leerzeichen behandelt!
Zum Ausprobieren empfiehlt es sich, eine TEST.BAT zu schreiben,
die einfach 9 ECHO-Befehle enthaelt:
ECHO %1
ECHO %2
(etc.)
Parameter %0
Mit %0 kann man im BAT-Ablauf den Namen der BAT-Datei ansprechen,
genauer gesagt, den Befehl, so wie er beim Aufruf angegeben wurde.
Nur fuer spezielle Tricks zu gebrauchen.
SHIFT-Befehl
Kaum genutzt, aber der Vollstaendigkeit halber:
SHIFT verschiebt die Parameter-Liste nach links, d.h.
%0 faellt raus,
der bisherige %1 wird zu %0
%2 wird zu %1
und so weiter
Damit kann auch der zehnte Parameter erreicht werden (jetzt also
%9). SHIFT kann bei Bedarf wiederholt werden.
Weitere Themen
Variable Befehlsparameter koennen erst richtig eingesetzt werden,
wenn man abfragen und verzweigen kann. Dazu gibt's Bedingungen
(IF), GOTO und Labels. _________________