Home » Software » Skripting » DOS » Batch Skripte (DOS) Teil 1
- Anzeige -
Software Asset Management beim Fachmann

Batch Skripte (DOS) Teil 1

Auch in Zeiten von VBSkript und Powershell hat die DOS-Kommandoshell nicht vollkommen an Bedeutung verloren.

 

Batch Skript

Routineaufgaben lassen sich mittels Batch Skript automatisieren. Eine bestimmte Folge von Befehlen wird dabei der Reihe nach eingegeben und vom System bearbeitet. Solche relativ einfachen Befehlsfolgen lassen sich in so genannten Skripten automatisieren. Es gibt diverse Skriptsprachen, die die Möglichkeit bieten diese Befehlsfolgen automatisch ablaufen zu lassen.

Beispiel:

  • Login-Skripte für Server
  • Einfache Backup-Routinen

Im Prinzip handelt es sich hierbei um eine einfache Art und Weise der Programmierung. Der Unterschied zwischen Skripten und Programmen besteht im wesentlichen nur darin, dass bei Skripten jede Anweisung der Reihe nach vom Rechner interpretiert und anschliessend ausgeführt wird. Skripte sind meist auch recht kurz. Programme führen meist eine aufwändigere Aufgabe aus und bei ihnen werden i. d. R. erst alle Anweisungen in für den Computer verständliche Befehle übersetzt und dann das Programm als ganzes gestartet.

Beim Programmieren (egal ob Skript oder Programm) muss man eine Reihe von Anweisungen vorgeben, die der Computer dann abarbeitet. Dabei muss man diverse Randbedingungen beachten. Vergisst man z.B. eine wichtige Bedingung, dann geht das Programm schief bzw. es kommt zu einem Absturz. Die Befehle müssen einer genauen Syntax folgen, sonst werden sie nicht erkannt. Es gibt sehr viele Programmier- und Skriptsprachen.

Ein einfaches Beispiel: Ich will einen Roboter programmieren, der das Badewasser einlaufen lassen soll. Dieser Roboter würde in unserem Beispiel normales Deutsch verstehen. Ich sage ihm also:

  • Gehe zur Badewanne
  • Öffne den Wasserhahn

Was passiert nun?

Der Roboter geht zur Badewanne und öffnet den Wasserhahn. Was passiert aber nun wenn die Wanne voll ist? Wie warm wird das Wasser wohl sein? Der Roboter (und auch unser PC) hat keine Intuition und wird also die Wanne mit zu heissem oder zu kaltem Wasser überlaufen lassen.

Korrekter müssten die Anweisungen also lauten

  • Gehe zur Badewanne
  • Öffne den Wasserhahn
  • Stelle das Wasser auf 38° ein
  • Schliesse den Wasserhahn, wenn der Wasserstand x erreicht ist

CMD versus BAT

Batch Skripte mit der Endung .bat verwenden den alten Befehlszeilenprozessor. Speichern Sie daher Ihr Skript mit der Endung .cmd.

 

Los gehts: DOS-Umgebung starten

Unter Windows lässt sich die DOS-Umgebung mittels
  • Start > Ausführen > cmd

starten.

Es erscheint dann der schwarze Bildschirm mit weisser Schrift und dem sogenannten Prompt (im folgenden Beispiel C:\Dokumente und Einstellungen\Lars>

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\Lars>   //<-prompt

Hier können die möglichen Skript-Befehle eingegeben und getestet werden.

.cmd Datei starten

Ein einfacher Doppelklick auf die Datei führt sie zwar aus, man sieht jedoch nicht, was ausgegeben wird. Deshalb muss man, wie oben beschrieben, ein DOS Fenster öffnen. Nun zieht man die Datei einfach per Drop&Drag in das DOS Fenster hinein. Mit der Enter-Taste führt man das Skript aus.

 

Grundaufgaben

 

EDIT

Edit ruft den Editor unter DOS auf. Man kann zwar auch den unter Windows verwenden, jedoch werden dann die Umlaute dort nicht richtig kodiert.

Gib einfach die Befehle im Editor ein und speichere die Datei mit der Endung CMD.

 

ECHO

Der Befehl echo zeigt Meldungen an und gibt Texte aus.

Beispiele:

echo hallo 

Zeigt hallo am Bildschirm an

echo on 

Anzeige von Befehlen einschalten

echo off 

Anzeige von Befehlen ausschalten

@echo 

Verhindert, dass echo selbst angezeigt wird

 

Variablen - 1. Teil

In den DOS-Skript-Dateien kann man auch Variablen verwenden. Variablen sind verschiedene Werte, die man über den gleichen Ausdruck ansprechen kann. Du kennst das vielleicht vom Taschenrechner: Du kannst ein Rechenergebnis auf einen Speicher nehmen und später mit diesem weiterrechen.

Variablen sind immer mit % gekennzeichnet. Beispiel: %MusterVariabel%

 

Sytemvariablen time und date

DOS hat einige vordefinierte Variablen, dazu gehören z.B. %date% und %time%.

 

Ausgabeumleitung

Mit dem Zeichen > kann eine Ausgabe in eine Datei umgeleitet werden.

Dabei legt > immer eine neue Datei an. Das Zeichen » hängt an eine bereits vorhandene Datei an.

echo Jetzt ist %time% >> C:\LOG\log1.txt

 

DOS Befehle

Mit den folgenden Befehlen kann man per DOS das Selbe verändern, wie man es sonst im Windows Explorer per Mausklick tut.

 

CD

Mit CD wechselt man das Verzeichnis.

Beispiel

CD Test 

Wechselt in ein vorhandenes Unterverzeichnis Test

CD ..

Wechselt ein Verzeichnis nach oben

CD \ 

Wechselt in das Stammverzeichnis - Will man das Laufwerk wechseln, gibt man einfach den Buchstaben gefolgt von einem Doppelpunkt an (also z.B. C:, D:)

 

MD

MD legt ein Unterverzeichnis unter dem gerade aktuellen an.

Beispiel:

MD Test

 

RD

RD löscht ein Unterverzeichnis. Dieses muss aber leer sein.

Beispiel

RD Test

 

PAUSE

Pause hält das laufende Programm an und wartet auf einen Tastendruck.

 

COPY

Mit dem COPY-Befehl kopiert man eine einzelne Datei.

Beispiel:

COPY logtest1.cmd logcopy.cmd

 

XCOPY

Mit dem XCOPY-Befehl kopiert man einzelne oder mehrere Dateien. XCOPY ist etwas flexibler als COPY.

Beispiel:

XCOPY g:\internet d:\lw_g\internet\ /s /e /c /r /h /k /y 

kopiert den Inhalt von g:\internet nach d:\lw_g\internet

 

TYPE

Type gibt den Inhalt einer Datei aus.

 

FIND

FIND <suchbegriff> findet alle Zeilen, die den <suchbegriff> beeinhalten.
FIND benötigt den zu durchsuchenden Input von einer Quelle, z.B. vom Type-Befehl.

 

Die Hilfe

In der Hilfe werden alle Parameter aufgelistet von jedem Befehl. Die Hilfe erscheint immer durch: Musterbefehl /?

Beispiel:

XCOPY /?

 

Variablen - 2. Teil

Variablen lassen sich auch neu definieren und zuweisen.
Aufgabe - Teste das folgende Skript
%cd% ist eine Systemvariable und enthält das aktuelle Verzeichnis

Beispiel:

set CurrentDir=%cd%
echo %CurrentDir%

 

Stringbeandlung

Eine Variable, die einen Text enthält, bezeichnet man auch als String. Ab und zu ist es nötig, dass man Strings bearbeitet (z.B. einzelne Teile daraus auschneidet.)
SET DIR123=%CD%
SET DRIVE123=%DIR123:~0,2%
echo DIR123=%DIR123%
pause

%date% gibt das Datum aus (klar, oder?)
%date:~0,2% gibt die ersten 2 Zeichen von %date% aus
%date:~0,3% gibt die ersten 3 Zeichen aus
%date:~3,5% gibt 5 Zeichen aus, beginnend bei Zeichen Nr. 3
 

 

GOTO

Mit GOTO kann zu einer Sprungmarke verweist werden.

Die Sprungmarke beginnt immer mit einem Doppelpunkt.

In der Regel muss abhängig von einer Bedingung etwas ausgeführt werden. Dies kann z.B. sein, ob ein bestimmter Befehl erfolgreich war oder nicht. Das funktioniert z.B. auch mit dem Ping-Befehl.

Beispiel:

@echo off
set serverip=192.168.121.239
ping -n 1 -w 1000 %serverip% >nul
if not errorlevel 1 (
echo %serverip% ist erreichbar
goto end
) else (
echo %serverip% ist nicht erreichbar
)
:end

Quellen



War der Artikel hilfreich? Ich freue mich sehr über Likes, Shares oder Links von Deiner Website darauf. Danke Dir.

it-zeugs.de ist auch auf Facebook...

Schreibe einen Kommentar - aber kein SPAM - der wird zuverlässig gefiltert!

  • Erforderliche Felder sind markiert mit *.

If you have trouble reading the code, click on the code itself to generate a new random code.