Batch, CMD Scripting Grundlagen unter Windows Tutorial Teil1 - CMD Befehle Übersicht

Grundlagen

Batch Programme sind eine Aneinanderreihung von Befehlen die entweder direkt in die cmd Konsole eingegeben werden können, oder aber in eine Datei geschrieben werden.
Batch Dateien werden nicht kompiliert. Das bedeutet dass diese Dateien nicht wie in anderen Programmiersprachen üblich in Maschinencode oder Zwischencode umgewandelt werden, damit diese dann ausführbar sind.
Batch Dateien werden einfach Zeile für Zeile Interpretiert, so wie die Befehle in eine Datei geschrieben wurden.
Starten lässt sich die Kommandozeile cmd.exe indem man cmd.exe direkt in „Ausführen“ eintippt.
Je nach Betriebssystem lässt sich die Kommandozeile aber auch mit Rechtsklick auf das Windows Startmenü und anschließendem Klick auf Eingabeaufforderung starten.

Ab Window Vista ist es manchmal auch nötig die Eingabeaufforderung speziell als Administrator zu starten um bestimmte Aktionen ausführen zu können.

Dateinamenerweiterung einblenden

Damit Sie unter Windows die Dateinamenerweiterungen ansehen können, empfehle ich zuerst diese einzuschalten.Unter den meisten Windows Betriebssystemen können Sie dies im Explorer unter Extras->Ordneroptionen einschalten. Entferne das Häckchen bei Erweiterungen bei bekannten Dateitypen ausblenden.

Bei einigen Windows Versionen kann man auch im Explorer Fenster Ansicht auswählen und Dateinamenerweiterungen direkt aktivieren.

Die Kommandozeile

Starten wir unsere erste Kommandozeile um diese besser kennen zu lernen, bevor wir unser erstes kleines Script starten.
Wir können die cmd.exe starten indem wir cmd in den Aufführen Dialog eintippen und mit Return bestätigen.
Je nach Windows System kann man auch über einen Rechtsklick auf das Windows Symbol in der Startleiste die Eingabeaufforderung auswählen.

Nach ausführen des Befehls sollte sich ein schwarzes Fenster öffnen welches in etwa so aussieht wie in diesem Bild.

Wir sehen hier auf der linken Seite immer den Pfad im Dateisystem in welchem wir uns gerade befinden, und in welchem Befehle ausgeführt werden, wenn wir dies nicht explizit anders angeben.


Hier im Beispiel ist das C:\

C:\ ist die oberste Ebene meiner Verzeichnisstruktur des Laufwerkes C:.
Wer sich darunter nichts vorstellen kann, sollte einmal den Explorer öffnen und sich seine Verzeichnisstruktur genauer ansehen.

Als erstes wechselt man in das oberste Verzeichnis in dem man in die Konsole folgenden Befehl eingibt:

Durch Eingabe des Befehls dir bekommen wir genau diese Verzeichnisstruktur auch in der Konsole angezeigt.

Die Englischen Ordnernamen in der Ausgabe brauchen uns nicht zu beunruhigen, vielmehr ist es so dass im Hintergrund das System die Englischen Bezeichnungen verwendet und nicht die Deutschen.

Navigation in der Kommandozeile

Im Explorer ist es ganz einfach mit der Maus und einem Doppelklick in ein Verzeichnis zu wechseln um sich den Inhalt anzusehen. In der Konsole geht das auch, dazu müssen wir einfach die entsprechenden Befehle verwenden, dabei spielt es bei vielen Befehlen eine Rolle an welcher Position wir uns im Dateisystem befinden. In meinem Fall befinde ich mich wie man in dem Bild oben sehen kann, direkt im Laufwerk c:\. Sollten das bei euch nicht der Fall sein , kann man das mit dem Befehl cd \ und anschließendem Return ändern.

Der Befehl cd bedeutet „change directory“ also wechsle das Verzeichnis und der Schrägstrich dahinter ist ein Synonym für root das oberste Verzeichnis des aktuellen Laufwerkes. Kurz gesagt weißt ihr damit die Kommandozeile an die oberste stelle der Verzeichnisstruktur zu springen.

Möchten wir jetzt den Inhalt des aktuellen Verzeichnisses sehen, verwenden wir den Befehl dir.
Der Befehl dir ohne weitere Parameter  gibt das Inhaltsverzeichnis des aktuellen Verzeichnisses aus, also alle Dateien und Ordner inklusive Erstellungsdatum und Dateigröße wenn es sich um eine Datei handelt. Ordner welche wieder andere Ordner und Dateien enthalten können, werden mit <DIR> gekennzeichnet.

Wie aber gebe ich jetzt den Inhalt des Ordners Windows aus?

Wie ich bereits geschrieben hatte ist es sehr wichtig zu wissen an welcher Position im Dateisystem wir uns aktuell befinden. Da wir uns immer noch im Wurzelverzeichnis C: befinden, ist es möglich den Dateiinhalt des Ordners über folgenden Befehl auszugeben:

Es ist aber auch möglich das Windows Vezeichnis absolut zu adressieren, das würde dann so aussehen:

Der erste Befehl funktioniert nur da Windows erst im aktuellen Verzeichnis nach dem angegebenen Verzeichnis oder Dateinamen sucht. Würden wir uns im Dateisystem an einer anderen Stelle befinden, würde der erste Befehl fehlschlagen.
Der zweite Befehl würde aber immer funktionieren, vorausgesetzt es gibt diese Verzeichnisstruktur wie sie angegeben wurde (c:\windows).

Das Dateisystem ist hierarchisch aufgebaut. Um sich die Navigation und den Aufbau besser vorstellen zu können, verwende ich zusätzlich den Windows Explorer für die Darstelung.

Vielleicht noch eine Bemerkung am Rande bevor wir hier weiter machen.
Ich verwende hier das C:\Windows Verzeichnis als Beispiel da wir noch nicht wissen wie man Ordner per Kommandozeile erstellt, vermeide es aber irgendwelche andere Befehle oder Tests in diesem Verzeichnis auszuführen, da es sich um ein Wichtiges Betriebssystem Verzeichnis handelt.

Abb1

Im Bild Abb1 können wir sehen wie die Ordnerstruktur aufgebaut ist. Ich habe mich hier im Windows Verzeichnis bis zum Verzeichnis System32 durchgeklickt.
Möchten wir dieselbe Position in unserer CMD Konsole erreichen, machen wir dies mit dem uns bereits bekannten Befehl cd. Befinden wir uns noch im Hauptverzeichnis C:\, können wir in das neue Verzeichnis mit folgendem Befehl springen:

oder von jedem beliebigen anderen Ort auf C: mit dem Befehl

Abb2

Nach erfolgreicher Ausführung des Befehls sollte dann die Konsole wie in Abb2 aussehen. Äquivalent zur Ansicht im Explorer sehen wir auch in der Konsole durch das vorangestellte C:\Windows\system32> das wir uns nun in diesem Ordner befinden.

Wir haben nun schon einige Male den Befehl cd Verwendet und wissen dass man nach dem Befehl einen Verzeichnisnamen angeben kann um dorthin zu navigieren. Dieser Verzeichnisnamen den wir angegeben haben ist ein sogenannter Parameter.

Parameter sind Ausdrücke oder Schalter mit denen man den Befehl bedienen kann, je nachdem welche Parameter man einem Befehl mitgibt, verhält sich der Befehl anders.
Viele der Befehle für Windows und auch andere Betriebssysteme akzeptieren dies Schalter oder Parameter, ob und welche Parameter ein Befehl unterstützt und was dieser Bewirkt, erhält man in dem man die Hilfe für einen Befehl ausgeben lässt. Dies geschieht mit einem Parameter /? den man nach dem Befehl verwendet.

Ausgabe der Hilfe für den cd Befehl:

Ausgabe der Hilfe für den dir Befehl:

Im Fall von cd sehen wir in der Hilfe dass man den Befehl auch als chdir ausführen kann.
Wir sehen dass als Parameter [Laufwerk:][Pfad] verwendet werden kann, und wir sehen durch die Klammern in denen sich Laufwerk, Pfad oder /D befinden dass dies optional sind.
Mit der Angabe von cd C:\Windows\System32 haben wir also folgende Syntax verwendet: cd [Laufwerk:][Pfad]

Der Parameter /D kann verwendet werden wenn mehrere Laufwerke vorhanden sind und wir mit Verwendung des Befehls cd auch gleich auf das neue Laufwerk springen möchten. Andernfalls wechselt man das Laufwerk einfach durch Angabe des Laufwerksbuschstabens und Doppelpunkt also z.B.

für den Wechsel zu Laufwerk D:

Natürlich kann man sich im Verzeichnis auch rückwärts bewegen.
Durch die Eingabe von:

können wir in der Verzeichnisstruktur ein Verzeichnis zurück springen und mit:

wieder in das oberste Verzeichnis das Root Verzeichnis.

Abb3

Da das Verständnis für die Verzeichnisstruktur und die Verwendung dieser unumgänglich für späteres Scripting ist, empfehle ich im Ordner C:\ einen Ordner namens Test und darin einen Ordner TestA und einen Ordner namens TestB und darin einen Ordner namens TestB-1. Der Befehl zum erstellen der Ordner heißt mkdir, ich empfehle aber solange wir damit noch nicht 100% vertraut sind die Dateien per Explorer anzulegen wie in Abbildung Abb3.

Wechsle jetzt mit dem Befehl cd C:\Test in das Verzeichnis, und übe die Navigation durch die Ordner mit den Befehlen cd den Ordnerinhalt kannst Du mit dem Befehl dir ausgeben lassen. Versuche auch mit cd direkt aus dem Ordner C:\Test in den Ordner TestB-1 zu springen und zurück.

Wichtig: Sollten Ordner Leerzeichen beinhalten, sollte man die Adresse zwischen 2 Anführungszeichen schreiben z.B.

Kommen wir nun zu einer weiteren Möglichkeiten der Adressierung eines Verzeichnisses.
Diese kann auch relativ zu dem gerade verwendeten gemacht werden.
Wechseln wir mit folgendem Befehl in den Ordner Test-B1.

Möchten wir jetzt direkt in den Ordner C:\Test zurück wechseln, können wir das über den uns bekannten Befehl

machen, oder relativ zu dem Pfad in welchem wir uns gerade befinden.

Dazu verwenden wir unsere zwei Punkte ..  die wir schon kennen gelernt haben um ein Verzeichnis zurück zu springen. Nur erweitern wir das Beispiel ein wenig um nicht ein Verzeichnis sondern gleich 2 zurück zu springen.

Wechseln wir wieder zurück in das Verzeichnis Test-B1.

Auf diese Weise könnten wir ausgehend von unserem Verzeichnis Test-B1 auch direkt in das Verzeichnis TestA springen.

Nehmen wir einmal an, wir hätten in unserem Ordner C.\Test noch verschiedene Dateien und Scripts die angesprochen werden müssen. Und wir möchten den Ordner Test mit allen Dateien einer anderen Person weitergeben, dann wissen wir nicht, ob diese andere Person den Ordner Test auch direkt auf C: speichert oder vielleicht auf D: oder auf C:\Benutzer\Name\Desktop.

In diesem Fall würde die relative Adressierung dafür sorgen dass angesprochene Ordner oder Dateien trotzdem gefunden werden, auch dann wenn der Ordner Test nicht auf C:\Test gespeichert wird.

Ende Teil 1

Teile:
Batch, CMD Scripting Grundlagen unter Windows Tutorial Teil1
Batch, CMD Scripting Grundlagen unter Windows Tutorial Teil2
Batch, CMD Scripting Grundlagen unter Windows Tutorial Teil3
Batch, CMD Scripting Grundlagen unter Windows Tutorial Teil4

Beitrag kommentieren

Bitte verfasse einen Kommentar.

Dein Kommentar wird vor der Freischaltung von einem Admin moderiert.