Eine gute Übersicht der Batch-Kommandos findet man bei ss64.com. Hier gibt es auch Übersichten zu VBScript, PowerShell, etc.
Zu Escape-Zeichen, Delimiters und Quotes gibt es eine separate Seite
Batch-Parameter können an einer beliebigen Stelle innerhalb einer Batch-Datei zum Extrahieren von Informationen zur Umgebungseinstellungen verwandt werden.
Cmd.exe stellt die Variablen %0 bis %9 zur Verfügung. %0 wird durch den Batch-Dateinamen ersetzt und %1 bis %9 durch die entsprechenden Argumente, die in der Befehlszeile eingeben wurde. Für den Zugriff auf Argumente jenseits %9 muss der Shift-Befehl verwandt werden. Der %* Batch-Parameter ist ein Wildcard und verweist auf alle Argumente, die an die Batchdatei übergeben wurden, außer dem Parameter %0.
Batch-Parameter können über Modifikatoren zur Extraktion von Verzeichnis- oder Dateiinformationen angepasst werden. In der folgenden Tabelle sind die möglichen Modifikatoren aufgelistet. Die Bespiele wurden mit folgender Batch-Datei generiert:
echo %0
echo %~0
echo %~f0
echo %~d0
echo %~p0
echo %~n0
echo %~x0
echo %~s0
echo %~a0
echo %~t0
echo %~z0
echo %~$PATH:0
echo %~dp0
echo %~nx0
echo %~dp$PATH:0
echo %~ftza0
pause
Modifikator | Beschreibung | Beispiel |
---|---|---|
%1 | Liefert den unmodifizierten 1. Kommandozeilen-Paramter. | "C:\Develop\UllisTools\mod-param.cmd" |
%~1 | Erweitert %1 und entfernt alle umgebenden Anführungszeichen (""). | C:\Develop\UllisTools\mod-param.cmd |
%~f1 | Erweitert %1 zu einem vollständigen Pfadnamen. | C:\Develop\UllisTools\mod-param.cmd |
%~d1 | Erweitert %1 zu einem Laufwerksbuchstaben. | C: |
%~p1 | Erweitert %1 zu einem Pfad. | \Develop\UllisTools\ |
%~n1 | Erweitert %1 zu einem Dateinamen. | mod-param |
%~x1 | Erweitert %1 zu einer Dateierweiterung. | .cmd |
%~s1 | Erweitert %1 zu einem Pfad mit kurzen Namen. | C:\Develop\ULLIST~1\MOD-PA~1.CMD |
%~a1 | Erweitert %1 zu Dateiattribute. | --a-------- |
%~t1 | Erweitert %1 zu Datum und Uhrzeit der Datei. | 29.04.2016 09:27 |
%~z1 | Erweitert %1 zu der Größe der Datei. | 195 |
%~$PATH:1 | Durchsucht die in der PATH-Umgebungsvariablen aufgeführten Verzeichnisse und erweitert %1 mit dem ersten Treffer zu einem vollständigen Namen. Wenn die Umgebungsvariable nicht definiert ist oder die Datei nicht gefunden wird, wird eine leere Zeichenfolge zurückgeliefert. | C:\Develop\UllisTools\mod-param.cmd |
Die folgende Tabelle listet die möglichen Kombinationen von Modifikatoren zur Erzeugung zusammengesetzter Ergebnisse.
Modifikator | Beschreibung | Beispiel |
---|---|---|
%~dp1 | Erweitert %1 zu einem Laufwerksbuchstaben und den Pfad. | C:\Develop\UllisTools\ |
%~nx1 | Erweitert %1 zu einem Dateinamen und Dateierweiterung. | mod-param.cmd |
%~dp$PATH:1 | Durchsucht die in der Umgebungsvariable PATH angegebenen Verzeichnisse nach %1 und liefert den Laufwerksbuchstaben und den Pfad der ersten gefundenen Datei. | C:\Develop\UllisTools\ |
%~ftza1 | Erweitert %1 zu einem DIR-ähnlichen Ausgabe. | --a-------- 29.04.2016 09:27 195 C:\Develop\UllisTools\mod-param.cmd |
Der %* Modifikator ist ein besonderer Modifikator, der alle Argumente in einer Batch-Datei darstellt. Dieser Schlüssel kann nicht in Verbindung mit dem %~ Modifikator verwandt werden.
Die %~ Syntax muss mit einem gültigen Argumentwert abgeschlossen werden.
Batch-Parameter nicht auf die gleiche Weise wie Umgebungsvariablen manipuliert werden. Man kann nicht nach Werten suchen oder ersetzen oder mit Substrings arbeiten. Man kann jedoch den Parameter einer Umgebungsvariablen zuweisen und dann die Umgebungsvariable zu manipulieren.