Die Windows-Konsole, Kommandozeile oder Befehlszeile ist eine Anwendung welche Textzeilen als Eingabe vom Benutzer entgegennimmt und Befehle ausführt. Im Englischen wird sie als command-line oder command prompt (Eingabeaufforderung) bezeichnet.
Eine Anwendung unter Windows kann entweder eine grafische Benutzeroberfläche (Graphical User Interface, GUI) haben oder als Konsolenanwendung umgesetzt sein. Solche rein über textbasierte Kommandos gesteuerten Konsolenanwendungen werden in der Windows-Konsole ausgeführt. In einer ausführbaren Datei (mit der Endung .exe) wird bei der Erstellung festgelegt ob es sich um eine reine Windows-GUI oder eine Konsolenanwendung handelt.
Um die Windows-Konsole zu starten muss aus dem Start-Menü die
Eingabeaufforderung (C:\Windows\System32\cmd.exe) ausgewählt werden.

| Tastenkürzel | Beschreibung |
|---|---|
| ESC | Löscht die aktuelle Kommandozeile |
| F7 | Zeigt Befehlshistorie an |
| F11 | Vollbild |
| Strg + C | Bricht den aktuelle laufen den Befehl bzw. das Programm ab |
| Strg + Z | Sendet das EOF-Zeichen |
| TAB | Vervollständigt Datei- und Ordnernamen |
| ↑ / ↓ | Scrollt durch die Befehlshistorie |
| Befehl | Beschreibung | Beispiel |
|---|---|---|
cd |
Wechselt das Verzeichnis aus dem aktuellen Laufwerk (z.B. E: um auch das Laufwerk zu wechseln) |
cd \Windows\System32 |
call |
Ruft eine Batchdatei oder Subroutine auf | call datei.bat |
cls |
Löscht den Bildschirminhalt | cls |
copy |
Kopiert eine oder mehrere Dateien | copy quelle ziel |
del |
Löscht eine oder mehrere Dateien | del *.obj |
dir |
Listet Dateien und Unterverzeichnisse auf | dir *.txt |
echo |
Gibt Meldungen auf Konsole aus | echo Meldung |
exit |
Beendet die Konsole oder die aktuelle Batchdatei | exit 1 |
findstr |
Sucht nach Zeichenfolgen in Dateien | findstr wort datei.txt |
goto |
Wechsel zu einer Sprungmarke in einer Batchdatei | goto next |
if |
Verarbeitet Ausdrücke in einer Batchdatei abhängig von Bedingungen | if exist datei.txt echo Gefunden |
mkdir |
Erstellt ein Verzeichnis | mkdir ordner1 |
more |
Zeigt Textdateien seitenweise auf dem Bildschirm an | more datei.txt |
move |
Verschiebt Dateien und Verzeichnisse | move a.txt b.txt |
pause |
Wartet auf einen Tastendruck | pause |
rmdir |
Löscht ein Verzeichnis | rmdir ordner1 |
rem |
Leitet Kommentare (in einer Batchdatei) ein | rem Ein Kommentar |
set |
Setzt oder löscht Umgebungsvariablen | set VAR=Wert |
type |
Zeigt den Inhalt einer Textdatei an | type datei.txt |
where |
Zeigt den Speicherort von Dateien an | where java |
Befehlszeilenargumente werden den Befehlen mit Leerzeichen getrennt übergeben. Enthält ein einzelnes Argument ein Leerzeichen oder andere Befehlszeichen muss das Argument in Anführungszeichen (") geschrieben werden. In der Regel entspricht eine Zeile einem Befehl. Wenn mehrere Befehle in einer Zeile ausgeführt werden sollen, müssen diese mit dem &-Zeichen getrennt werden.
mkdir "Neuer Ordner"
echo Eins & echo Zwei & echo Drei
echo "Lach- & Sachgeschichten"
Befehle und Programme geben nach der Ausführung einen Zahlenwert an das aufrufende Programm zurück. Dieser Return Code (Rückgabewert; auch Exit-Status genannt) kann ausgewertet werden um festzustellen ob das Programm bzw. der Befehl erfolgreich ausgeführt wurde. Jeder Wert ungleich 0 ist ein Fehler-Code. Mit der Umgebungsvariable %ERRORLEVEL% lässt sich der Return code des zuletzt ausgeführten Befehls bzw. Programms in der Windows-Konsole anzeigen. Außerdem lassen sich mit && zwei Befehle verknüpfen, wobei der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich ausgeführt wurde. Mit || lassen sich zwei Befehle verknüpfen, wobei der zweite Befehl nur im Fehlerfall des ersten Befehls ausgeführt wird.
type NichtVorhanden
echo %ERRORLEVEL%
mkdir "Neuer Ordner" && echo Ordner angelegt
type NichtVorhanden || echo Nicht gefunden
Konsolenanwendungen verfügen über einen Kanal für die Standardeingabe (0 – stdin) sowie jeweils über einen Kanal für die Standardausgabe (1 – stdout) und die Standardfehlerausgabe (2 – stderr). Mit den Operatoren >, >> (append) und < lassen sich Ausgaben in eine Datei umleiten bzw. Eingaben aus einer Datei einlesen. Mit | (Pipe) lassen sich zwei Befehle verknüpfen und die Ausgabe des ersten Befehls als Eingabe des zweiten Befehls verwenden.
echo Eins > text.txt
echo Zwei >> text.txt
more < text.txt
type text.txt | findstr /n /i zwei
Die Ausgabekanäle lassen sich über ihre Nummer einzeln umleiten bzw. mit 2>&1 am Ende des Befehls zusammenlegen.
dir NichtVorhanden 1> out.log 2> err.log
dir NichtVorhanden > ausgabe.log 2>&1
Als Umgebungsvariable bezeichnet man konfigurierbare Variablen in Betriebssystemen, die oft Pfade zu bestimmten Programmen oder Daten enthalten, sowie bestimmte Daten und Einstellungen, die von mehreren Programmen verwendet werden können. Bei den Werten handelt es sich immer um Zeichenketten.
Die Windows-Konsole stellt von sich aus einige dynamisch generierte Umgebungsvariablen zur Verfügung. Diese werden nicht fest gespeichert, und der Wert wird kurz vor der Ausgabe ermittelt. Beispiele solcher dynamischer Umgebungsvariablen sind DATE, TIME und ERRORLEVEL.
Quelle: Wikipedia
| Variable | Beschreibung |
|---|---|
%COMPUTERNAME% |
Rechnername |
%COMSPEC% |
Pfad zum Kommandozeilen-Interpreter (C:\Windows\System32\cmd.exe) |
%DATE% |
Aktuelles Datum |
%ERRORLEVEL% |
Fehlercode des zuletzt ausgeführten Befehls bzw. Programms |
%NUMBER_OF_PROCESSORS% |
Anzahl (logischer) Prozessoren bzw. Prozessorkerne des Rechners |
%PATH% |
Suchpfad für Programme und Programmbibliotheken |
%PATHEXT% |
Erweiterungen von ausführbaren Dateien |
%PROGRAMFILES% |
Installationsverzeichnis für Programme |
%TEMP% |
Verzeichnis zur Speicherung von temporären Dateien |
%TIME% |
Aktuelle Uhrzeit |
%SYSTEMROOT% |
System-Verzeichnis (C:\Windows) |
%USERNAME% |
Name des aktuellen Benutzers |
%USERPROFILE% |
Pfad zum Benutzerprofil des aktuellen Benutzers |
%0, %1, %2, %3, %4, %5, %6, %7, %8, %9 |
Befehlszeilenargumente in einer Batchdatei oder Subroutine |
Als Kommandozeilenparameter werden zusätzliche Parameter zum Kommando in einer Kommandozeile bezeichnet. Sie werden durch ein Leerzeichen vom Kommando und voneinander getrennt und folgen immer auf das Kommando. Sie gliedern sich in Optionen und Argumente.
Optionen werden auf Unix-artigen Systemen mit einem oder zwei Bindestrichen (-) eingeleitet, in der Windows-Welt mit einem Schrägstrich (/). Sie modifizieren die Wirkung eines Kommandos. Die meisten Kommandos bieten einen einheitlichen Parameter, der alle für das jeweilige Kommando möglichen Optionen anzeigt. Dies ist unter Linux --help, unter Windows ist es /?. Mehrere gleichzeitige Optionen dürfen bei manchen Kommandos zusammengefasst werden, beispielsweise kann der Linux-Befehl ls -l -h auch als ls -lh angegeben werden.
Argumente sind Namen von Dateien, Verzeichnissen, Benutzern oder ähnlichen Objekten, auf die das Kommando angewendet werden soll.
Viele Kommandozeilenanwendung die in Windows verwendet werden wurden von Unix-artigen Systemen portiert oder sind generell auf mehreren Betriebssystemen verfügbar, weswegen Optionen mit Bindestrichen auch hier häufig anzutreffen sind.
Eine Batchdatei (Stapelverarbeitungsdatei) ist eine Textdatei mit der Endung .bat oder .cmd welche mehrere Befehle aus der Windows-Konsole enthält und mit dem Kommandozeileninterpreter (cmd.exe) als Skript ausgeführt werden kann.
Mit @ am Anfang der Zeile lässt sich die Befehlsausgabe für einen bestimmten Befehl ausschalten. Das Kommando "@echo off" schaltet die Befehlsausgabe für das gesamte Skript ab. Außerdem lassen sich mit Klammern mehrere Befehle, z.B. für die Verwendung mit if, gruppieren.
@rem Befehlsanzeige ausschalten
@echo off
rem Skript beenden, wenn erforderliches Argument fehlt
if "%1" == "" (echo Argument fehlt. 1>&2 & exit /b 1)
if not exist %1 (
echo %DATE% %TIME% > %1
) else (
echo Datei bereits vorhanden. 1>&2
exit /b 2
)
Innerhalb einer Batchdatei können in Zeilen mit dem :-Zeichen am Anfang Sprungmarken gesetzt werden. Innerhalb der Batchdatei kann dann mit dem Befehlen goto oder call zu dieser Zeile gesprungen und die Ausführung dort fortgesetzt werden. Bei der Verwendung von call wird die Batchdatei ein zweites Mal, an der Stelle der Sprungmarke aufgerufen und anschließen die Ausführung an der ursprünglichen fortgeführt. Dadurch lassen sich Subroutinen ähnlich wie Funktionen realisieren. In Batchdateien mit der Endung .cmd gibt es eine virtuelle Sprungmarke :eof welche das Ende der Datei repräsentiert.
@echo off
if /i "%1" == "clean" goto clean
if exist *.pdf goto :eof
echo Creating PDFs...
call :makepdf handout
call :makepdf example
goto :eof
rem Subroutine die mit CALL aufgerufen wird
:makepdf
echo %1.pdf
call scripts\html2pdf.cmd %1.html %1.pdf
goto :eof
rem wird nur mit dem Argument "clean" aufgerufen
:clean
del *.pdf