Wie Aliase, benutzerdefinierte Funktionen und Anwendungsprogramme können auch Batchdateien die Befehlszeile untersuchen, über die sie aufgerufen werden. Der Befehlsschwanz (alles in der Befehlszeile nach dem Namen der Batch-Datei oder des Alias) wird in einzelne Positionsparameter (auch Parameter oderBatch-Variablen genannt) getrennt, indem nach Leerzeichen, Tabulatoren, Kommas und Gleichheitszeichen (=) gesucht wird, die sie voneinander trennen. (Das =-Trennzeichen kann durch Setzen der Direktive "CMDBatchDelimiters=No" in Ihrer TCMD.INIdeaktiviert werden). Bei Aliasen und Funktionen löst ein Schrägstrich (/) den Beginn eines neuen Parameters aus, z. B. wird  die Zeichenkette xyz/abc in die Parameter foo und /abc aufgeteilt .

 

Diese Parameter sind von %1 bis %4095 nummeriert . %1 bezieht sich auf den ersten Parameter in der Befehlszeile, %2 auf den zweiten und so weiter. Es obliegt der Batch-Datei, die Bedeutung der einzelnen Parameter zu bestimmen. Sie können doppelte Anführungszeichen verwenden, um Leerzeichen, Tabulatoren, Kommas und andere Sonderzeichen in einem Batch-Dateiparameter zu übergeben;  weitere Informationen finden Sie unter Parameterquotierung.

 

Parameter, auf die in einer Batchdatei verwiesen wird, die aber in der Befehlszeile fehlen, erscheinen als leere Zeichenfolgen in der Batchdatei. Wenn Sie beispielsweise eine Batchdatei starten und zwei Parameter in die Befehlszeile eingeben, wird jeder Verweis in der Batchdatei auf %3 oder einen höherwertigen Parameter als leere Zeichenfolge interpretiert.

 

Eine Batchdatei kann die in der folgenden Tabelle aufgeführten speziellen Parameter verwenden:

 

Parameter

Wert

%0

der Name der Batch-Datei, wie er in der Befehlszeile eingegeben wurde

%#

die Anzahl der Befehlszeilenparameter, geändert durch SHIFT

%n$

das Ende des Befehls, beginnend mit der Parameternummer n, modifiziert durch SHIFT

%-n$

das Ende des Befehls von Parameter 1 bis n - 1

%$

daskomplette Ende des Befehls, geändert durch SHIFT

%*

dervollständige, durch SHIFT nicht geänderte Befehl sschwanz

%@

die Batch-Datei-Argumente (wie %*), die jedoch alle in Anführungszeichen gesetzt werden

 

Zum Beispiel  bedeutet %3$ den dritten und alle folgenden Parameter. Die Werte von %#, %n$, %-n$ und %$ ändern sich, wenn Sie den  Befehl SHIFT verwenden .  Um CMD zu emulieren , hat SHIFT keinen Einfluss auf den Wert von %*.

 

Wenn Ihre Batch-Datei beispielsweise den ersten Parameter als Unterverzeichnis interpretiert, würde die folgende Zeile in das angegebene Verzeichnis wechseln:

 

cd %1

 

Eine freundlichere Stapeldatei würde prüfen, ob das Verzeichnis existiert, und eine spezielle Aktion durchführen, wenn dies nicht der Fall ist:

 

iff isdir %1 then

cd %1

else

echo Subdirectory %1 does not exist!

quit

endiff

 

(Siehe die  Befehle IF und IFF.)

 

Batchdateien können auch Umgebungsvariablen, interne Variablen und Variablenfunktionen verwenden .

 

Batchdateiparameter können auch die spezielle CMD-Kompatibilitätssyntax verwenden .