www.wikidata.de-de.nina.az
Eine Stapelverarbeitungsdatei englisch batch file ist eine ausfuhrbare Textdatei deren Inhalt zeilenweise als Kommandos des Kommandozeileninterpreters von PC kompatiblem DOS ausgefuhrt werden Der Begriff leitet sich von der aus der Datenverarbeitung stammenden Stapelverarbeitung englisch batch job ab Da sich unter PC DOS und MS DOS den meist vorinstallierten Betriebssystemen des IBM PC und kompatibler Computer die Dateinamenserweiterung BAT etabliert hatte ist auch abseits von kompatiblen DOS Betriebssystemen BAT Datei BAT Datei bzw Batch Datei neben Batch Skript Stapelverarbeitungsskript und Batch Programm ein Synonym fur Stapelverarbeitungsdatei StapelverarbeitungsdateiWindows BatchBatch fileDateisymbol von Windows Vista bis 10Dateiendung SUB br BAT br BTM br cmdMIME Type application bat br application x batErstveroffentlichung CP M1981 mit PC DOS 1 0Art StapelverarbeitungEnthalten in Kommandozeileninterpretern Inhaltsverzeichnis 1 Technische Details und Geschichte 1 1 Kompatibilitat 1 2 Verwendung 1 3 Bedeutung einiger Batch Befehle 2 Hello World Beispiel 3 Alternativen und Nachfolger 3 1 Batch to Memory 3 2 REXX 3 3 PowerShell 4 Siehe auch 5 Weblinks 6 EinzelnachweiseTechnische Details und Geschichte BearbeitenAls Dateiformat sind Stapelverarbeitungsdateien grundsatzlich Textdateien deren Inhalt von einem Kommandozeileninterpreter als Stapelverarbeitung ausgefuhrt werden konnen Skripte zur Abarbeitung von Kommandos einer Shell gab es bereits in den 1960er und 70er Jahren unter Multics und Unix Der Kommandozeileninterpreter der meisten PC kompatiblen DOS Betriebssysteme wie MS DOS PC DOS und DR DOS ist COMMAND COM der von Windows NT ist cmd exe Alternativen wie 4DOS erweitern die Skriptfahigkeiten durch zusatzliche Kommandos und zusatzliche Funktionen bestehender Kommandos Unter CP M dem Vorbild des ursprunglich als 86 DOS entwickelten spateren MS DOS gab es mit SUBMIT bereits die Moglichkeit Stapelverarbeitungsdateien mit der Dateinamenserweiterung SUB zu starten 1 2 Unter OS 2 und Windows NT die Nachfolger von PC DOS bzw MS DOS werden die Befehle der COMMAND COM durch cmd exe implementiert und zusatzliche Befehle wurden eingefuhrt weshalb Stapelverarbeitungsdateien auf NT basierten Windows Versionen und auf OS 2 die Dateinamenserweiterung cmd verwenden BAT Dateien funktionieren jedoch weiterhin Allen Betriebssystemen ist gemein dass als Laufzeitumgebung und Interpreter der Kommandozeileninterpreter eine zeilenweise arbeitende Shell verwendet wird Alle Kommandozeilenbefehle lassen sich in der Regel sowohl auf der Kommandozeile direkt als auch aus einer Stapelverarbeitungsdatei heraus ausfuhren auch Kommentare Sprungmarken und Abfragen sind jedoch nur in einer Stapelverarbeitungsdatei sinnvoll anwendbar und es gibt teilweise kleinere Unterschiede etwa bei der Verwendung von Variablen Das trifft ebenso auf Shellskripte zu einem Synonym fur Stapelverarbeitungsdatei auf der Unix und der PowerShell Kompatibilitat Bearbeiten Da unter Windows NT die meisten Befehle von COMMAND COM durch cmd exe nachgebildet sind sollte es in vielen Fallen moglich sein eine fur MS DOS geschriebene Stapelverarbeitungsdatei auch unter Windows NT auszufuhren Aber selbst unter reinem DOS konnen Unterschiede bei Parametern genutzter Dienst und Systemprogramme Anpassungen an der Stapelverarbeitungsdatei notig machen damit diese weiterhin funktioniert Verwendung Bearbeiten Stapelverarbeitungsdateien werden zur Ausfuhrung von immer wiederkehrenden Befehlsfolgen verwendet z B fur automatisierte Anmeldevorgange oder Laden von TSR Programmen Es ist auch moglich die Ausfuhrung einzelner Befehlszeilen von einer Bedingung abhangig zu machen Dafur gibt es seit IBM DOS bzw MS DOS 2 0 Konstrukte wie IF oder IF NOT Unter Windows NT basierten Systemen wurden unter anderem IF und a href FOR Kommandozeilenbefehl html title FOR Kommandozeilenbefehl FOR a Befehle stark aufgewertet indem sie zum Beispiel Vergleiche von Werten anboten Neben diesen Bedingungsoperatoren konnen auch Variablen genutzt Sprunge ausgefuhrt Benutzereingaben realisiert und Kommentare geschrieben werden Im PC kompatiblen DOS diente die Datei a href AUTOEXEC BAT html title AUTOEXEC BAT AUTOEXEC BAT a zur Systemkonfiguration beim Starten des Betriebssystems Windows 3 x und Windows 9x arbeiten beim Start zusatzlich die Datei WINSTART BAT ab Bedeutung einiger Batch Befehle Bearbeiten Hauptartikel Liste von DOS Kommandozeilenbefehlen a href Echo Informatik Kommando html title Echo Informatik ECHO a OFF Unterdruckt die Ausgabe des Befehls in der Stapelverarbeitungsdatei CLS von englisch clear screen Leert den Bildschirm PAUSE Pausiert eine Stapelverarbeitung solange bis der Benutzer eine Taste gedruckt hat PAUSE gt NUL Pausiert eine Stapelverarbeitung solange bis der Benutzer eine Taste gedruckt hat die Meldung Drucken Sie eine beliebige Taste wird in die virtuelle Geratedatei NUL umgeleitet wodurch diese nicht auf dem Bildschirm ausgegeben wird EXIT Beendet die StapelverarbeitungsdateiHello World Beispiel BearbeitenDie Ausgabe des klassischen Hello World Beispiels lasst sich durch eine Stapelverarbeitungsdatei erzeugen Diese sollte zuvor unter geeignetem Dateinamen z B hello bat gespeichert werden REM Text Hello World ausgeben ECHO Hello World Eine erweiterte Version mit angepasster Titelzeile Schrift und Hintergrundfarbe und einer Aufforderung zum Schliessen des Programms durch einen Tastendruck konnte wie folgt aussehen Die Absatze sind jedoch nicht zwingend erforderlich sie dienen lediglich zur besseren Ubersichtlichkeit REM Befehle mit werden nicht ausgegeben Befehle mit REM werden nicht verarbeitet Kommentar Befehle mit oder REM werden weder ausgegeben noch verarbeitet ECHO OFF REM Kommandozeilenfenster leeren CLS REM Der Titel des Fensters wird zu Hallo Welt Programm geandert nur Windows TITLE Hallo Welt Programm REM Die Windows Codepage wird zu 1252 westeuropaisch geandert dadurch kann unter anderem u ausgegeben werden CHCP 1252 REM Die Schrift und Hintergrundfarbe wird geandert COLOR 4E REM Text Hallo Welt wird ausgegeben ECHO Hallo Welt REM Leerzeile ausgeben ECHO REM Es wird der Text Taste drucken zum Beenden ausgegeben und gewartet bis der Benutzer eine Taste druckt ECHO Taste drucken zum Beenden PAUSE gt NULAlternativen und Nachfolger BearbeitenBatch to Memory Bearbeiten Der alternative Kommandozeileninterpreter 4DOS von JP Software der als NDOS auch Teil der Norton Utilities ist erganzt den Funktionsumfang von Stapelverarbeitungsdateien Um Verwechslungen und Inkompatibilitaten zu vermeiden nutzt 4DOS die Dateinamenserweiterung BTM von englisch Batch To Memory da die Dateien vor der Ausfuhrung vollstandig in den Arbeitsspeicher kopiert werden Das verbraucht zwar einerseits mehr Speicher andererseits ist die Ausfuhrung dadurch schneller da nicht nach jeder Zeile erneut in der Stapelverarbeitungsdatei gelesen werden muss Batch to Memory Stapelverarbeitungsdateien werden auch von JP Softwares alternativen Kommandozeileninterpretern 4OS2 fur OS 2 und 4NT bzw Take Command TC fur Windows unterstutzt REXX Bearbeiten Unter PC DOS ab Version 7 und OS 2 von IBM wurde mit REXX eine zusatzliche Skriptsprache eingefuhrt die in Dateien mit der Erweiterung BAT in DOS oder CMD in OS 2 ohne weitere Konfiguration ausfuhrbar sind Auch auf anderen Betriebssystemen sind REXX Interpreter verfugbar Die ubliche Dateinamenserweiterung fur REXX Skripte ist REX die mit dem Interpreter vorangestellt aufgerufen werden mussen z B mit REXX MEINPROG REX EinBeispielParameter Mit Dienstprogrammen ist es moglich REXX Skripte mit der Erweiterung REX die daher nicht wie Batch Dateien automatisch ausfuhrbar sind auch ohne vorangestellten Interpreter aufrufbar zu machen beispielsweise mit DOSKEY ein Makro fur jedes REXX Skript oder mit 4DOS set rex C Pfad zum REXX Interpreter exe was fortan fur alle REXX Skripte mit der entsprechenden Dateinamenserweiterung funktioniert fur REXX Skripte in BAT Dateien wie in PC DOS muss allerdings auch REXXPath in der Datei 4DOS INI gesetzt sein Eine Alternative die jedoch einige Einschrankungen hat sind sogenannte bilinguale Batch Dateien die sowohl einen klassischen Batch Teil als auch einen REXX Teil enthalten 2 gt NUL ECHO OFF SET REXXPROG NAME 0 SET REXXPROG PARMS GET PARMS SET REXXPROG PARMS REXXPROG PARMS 1 2 3 4 5 6 7 8 9 FOR A IN 1 2 3 4 5 6 7 8 9 DO SHIFT IF NOT 1 GOTO GET PARMS REXX REXXPROG NAME REXX EXT REXXPROG PARMS GOTO DONE REXX Skript folgt Hier steht nun der REXX Skript Zum Beispiel SAY HELLO ARG ARGS gt ARG 1 lt EXIT Nachdem das REXX Skript mit EXIT beendet wurde muss sich die Batch Datei uber das Sprungziel DONE sauber beenden DONE SET REXXPROG PARMS SET REXXPROG NAME Diese Stapelverarbeitungsdatei die mit der Erweiterung BAT ausfuhrbar ist und daher normal aufgerufen werden kann startet in der ersten Zeile mit dem Kommando das jedoch eine Fehlermeldung auswirft da es sich unter DOS um kein gultiges Kommando oder Programm handelt Mit dem Zusatz 2 gt NUL wird diese Fehlermeldung unter Windows NT mit cmd exe jedoch an das Nullgerat weitergeleitet und daher nicht auf dem Bildschirm ausgegeben unter DOS und Windows 9x mit COMMAND COM funktioniert das jedoch nicht sodass die Fehlermeldung in jedem Fall ausgegeben wird und nur mit dem CLS Kommando das den gesamten bisherigen Textbildschirm zurucksetzt wieder geloscht werden kann Ab der zweiten Zeile wird dann die Stapelverarbeitung ausgefuhrt die alles aufbereitet um sich selbst mit dem REXX Interpreter REXX der im Pfad sein muss neu zu starten Voraussetzung ist in diesem Beispiel Skript allerdings dass die Variable REXX EXT BAT systemweit gesetzt ist z B in der AUTOEXEC BAT In REXX wird der Batch Teil am Anfang ubersprungen da alles was zwischen steht als Kommentar angesehen wird Nach der Beendigung des REXX Skripts mit dem EXIT Befehl beendet sich schliesslich auch die Stapelverarbeitung die den REXX Teil per GOTO Anweisung uberspringt PowerShell Bearbeiten Im Jahr 2006 wurde von Microsoft die PowerShell veroffentlicht eine modernere und plattformubergreifende Alternative mit der Skripte in der eigens dafur entwickelten PowerShell Scripting Language geschrieben werden konnen PowerShell Skripte haben ublicherweise die Dateinamenserweiterung ps1 siehe PowerShell Dateiendungen Siehe auch BearbeitenShellskript Unix ShellWeblinks Bearbeiten nbsp Wikibooks Informationen zur Windows Batch Programmierung Lern und LehrmaterialienEinzelnachweise Bearbeiten Schneider Wolfgang Einfuhrung in die Anwendung des Betriebssystems CP M Springer Verlag 2013 ISBN 978 3 322 89716 9 S 18 eingeschrankte Vorschau in der Google Buchsuche Submit Einreichen vorlegen Mit Hilfe des SUBMIT Kommandos konnen mehrere CP M Kommandos miteinander verknupft werden Sie werden automatisch hintereinander ausgefuhrt sog Batch Verarbeitung d h Stapelverarbeitung Allen Kent James G Williams Debuggers and Debugging Techniques to Electron Beam Lithography In Encyclopedia of Microcomputers Band 5 CRC Press 1990 ISBN 0 8247 2704 5 S 161 englisch eingeschrankte Vorschau in der Google Buchsuche Abgerufen von https de wikipedia org w index php title Stapelverarbeitungsdatei amp oldid 234767566