MS-DOS Forum

MS-DOS Forum
Anleitungen, Referenz aller DOS Befehle, Batch Dateien
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    MS-DOS Forum Foren-Übersicht -> Batch Programmierung
Autor
Nachricht
matthias





Grundlagen Batchprogrammierung für Anfänger
Verfasst am: 17.04.2009, 09:55

Die Grundidee der Batch-Ablaeufe ("Stapelverarbeitung") ist die
automatische Abarbeitung von Programmen und Befehlen, z.B. um nach
dem Einschalten des Computers eine Reihe von residenten Programme
zu installieren (AUTOEXEC.BAT).
DOS bietet dazu die Moeglichkeit, Befehle aus einer ASCII-Datei
zeilenweise abzuarbeiten, so als wuerden sie nacheinander auf der
Befehlsebene eingegeben. Eine solche Datei muss den Namenszusatz
"BAT" haben, und ist damit - neben COM- und EXE-Dateien - eine
weitere Variante der "ausfuehrbaren" Dateien, die als Befehl auf
der DOS-Ebene aufgerufen werden koennen.
Damit ein BAT-Ablauf mehr ist, als nur eine einfache Folge von
Programm-Aufrufen, gibt es besondere Anweisungen und Eigenschaften,
die einfache Funktionen einer Programmiersprache bieten:

* Befehlsparameter (%1..)
* Bildschirm-Ausgaben (ECHO)
* Halt (PAUSE)
* Variable (SET, Umgebungsvariable)
* Bedingte Ausfuehrung (IF.. GOTO, Labels)
* Schleifen (FOR..)
* CALL weiterer BAT-Ablaeufe
* Ein-/Ausgabe-Umleitungen

Die BAT-Sprache ist allerdings von Microsoft auesserst spaerlich
ausgestattet worden, und sie unterstuetzt vor allem keinerlei
Bildschirmdialoge, etwa fuer Eingaben oder zur Auswahl durch den
Benutzer. (Seit Ver. 6.0 gibt's allerdings CHOICE.)
Aus diesem Grunde sind schon viele nuetzliche Erweiterungen der
BAT-Sprache entwickelt worden (BAT Enhancements), die aber meist
nur isolierte Befehle bieten, ohne die BAT-Sprache selbst (d.h.
die Programm-Logik) zu verbessern.
Das Problem liegt darin, dass der BAT-Prozessor von DOS fester
Bestandteil von COMMAND.COM ist, also kein separates Programm,
das man so einfach durch ein besseres ersetzen koennte. Das oft
zitierte 4DOS ersetzt COMMAND.COM komplett und kann daher mit
einem eigenen, erheblich erweiterten BAT-Prozessor aufwarten.
Soviel zu BAT-Erweiterungen.

BAT-Datei, ASCII

Um BAT-Dateien zu schreiben, braucht man einen ASCII-Editor.
Wer nichts besseres hat, kann EDIT von MS-DOS benutzen. Das alte
EDLIN frueherer DOS-Versionen sollte man sich allerdings nicht
zumuten.
Eine BAT-Datei darf nur ASCII-Zeilen mit einer Laenge von maximal
127 Zeichen enthalten. Das Zeilen-Ende wird durch CR+LF (ASCII
13,10) bestimmt, wobei das LF auch fehlen darf. Das Datei-Ende
kann durch den EOF-Code (Control-Z, ASCII 26) markiert werden, was
aber heute kaum noch ueblich ist.
Alle uebrigen ASCII-Zeichen (1..255) duerfen verwendet werden.
Allerdings koennen Sonderzeichen eine besondere Bedeutung haben!
Allgemein gilt: Sonderzeichen, die auch in Dateinamen gueltig
sind, werden wie Buchstaben behandelt. Sonstige Sonderzeichen
sowie "%" bitte nur ganz bewusst und mit Absicht verwenden!
(Naeheres bei den jeweiligen Befehlen.)
Leerzeilen werden ignoriert (wie ein CR auf der Befehlsebene),
koennen also zur besseren Lesbarkeit eingebaut werden.

Abarbeitung durch DOS

Zur Kontrolle des Ablaufs legt COMMAND.COM beim Start im Arbeitsspeicher
einen BAT-Steuerblock an, der am Ende wieder entfernt
wird (64 Bytes oder auch etwas mehr). In diesem Steuerblock wird
unter anderem ein Zeiger auf die naechste auszufuehrende Zeile der
BAT-Datei verwaltet.
Fuer jede einzelne Befehlszeile des BAT-Ablaufs wird von DOS die
BAT-Datei geoeffnet, gelesen und geschlossen. Grundsaetzlich kann
also eine BAT-Datei auch veraendert werden, waehrend sie laeuft,
was man allerdings mit Vorsicht geniessen sollte. Auf jeden Fall
sollte man vermeiden, in einem BAT-Ablauf den Editor aufzurufen,
um eben diese BAT-Datei zu aendern. Das bringt die Abarbeitung mit
hoher Wahrscheinlichlkeit durcheinander!

Fehler in BAT-Ablauf, Abbruch

Bei ungueltigen Befehlen oder Syntax-Fehlern gibt DOS eine Meldung
aus und setzt die Verarbeitung (wenn moeglich) mit der naechsten
Zeile fort.
Da DOS nicht die Zeilen-Nummer des Fehlers angibt, muss man notfalls
ECHO ON schalten, um den Ablauf zu verfolgen (s. Kapitel
ECHO).
Eine laufende BAT-Datei laesst sich normalerweise mit Control-C
oder Control-BREAK (Strg-Unterbr.) abbrechen. DOS erwartet dann
noch eine Bestaetigung:
Stapelverarbeitung abbrechen? (J/N)
Ob sich ein gerde ausgefuehrtes PROGRAMM abbrechen laesst ist
natuerlich eine andere Frage.
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    MS-DOS Forum Foren-Übersicht -> Batch Programmierung

Tags: dos, bat, befehle, befehl, abbrechen, ascii

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Suchen von Text mit dem Befehl find 990 22.08.2009, 06:18
Keine neuen Beiträge Steuern der Bildschirmanzeige mit dem Befehl more 666 15.08.2009, 09:37
Keine neuen Beiträge Umleiten der Eingabe für einen Befehl 698 02.08.2009, 18:14
Keine neuen Beiträge Der Befehl Restore funktioniert nicht 1216 08.12.2008, 08:39
Keine neuen Beiträge Der Befehl Undelete funktioniert nicht 1929 01.12.2008, 09:32
 



[ Time: 0.3460s ][ Queries: 59 (0.0962s) ][ GZIP on - Debug on ]