Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
  


informatik artikel (Interpretation und charakterisierung)

Windows

Stapelverarbeitungsdateien (batch-files)


1. Java
2. Viren

Stapelverarbeitungsdateien (eng. batch-files) führen einfache DOS-Befehle aus, wie bei der normalen DOS-Eingabeaufforderung (eng. DOS-prompt). Der DOS-Prompt dient als einfacher Interpreter. Ein Interpreter übersetzt einen eingegebenen Befehl sofort in die Maschinensprache, Zeile für Zeile. Der DOS-Befehlsinterpreter ist normalerweise die Datei command.com, die beim Betriebssystemstart in den Speicher geladen wird.

Batch-Dateien sind einfache ASCII-Dateien, die die Erweiterung BAT haben (namen.bat). In einer Batch-Datei können wie beim DOS-Prompt sowohl Programme, als auch interne Befehle, die im Befehlsinterpreter vorhanden und in den Speicher geladen sind, aufgerufen werden. Die Programme, die mit DOS mitgeliefert und mitinstalliert sind und in ihrer Erscheinungsart wie der DOS-Prompt sind (sie haben keine grafische Oberfläche, verlangen eventuell Parameter und geben das Ergebnis kryptisch am Prompt aus), nennt man auch externe Befehle.

Unter den normalen DOS-Befehlen gibt es einige, die vor allem in Stapelverarbeitungsdateien verwendet werden und dort auch den meisten Sinn machen:

Befehl Typ Beschreibung
:: intern Leitet eine Kommentarzeile ein, die nicht verarbeitet wird (siehe auch Rem). Da es kein richtiger Befehl ist, erfolgt das Übergehen der entsprechende Zeile schneller (zumindest auf sehr alten Rechnern).
@ intern Der Befehl, der diesem Zeichen folgt, wird nicht angezeigt (siehe auch Echo).
Call intern Ruft eine andere Batch-Datei auf. Nach deren Beendigung wird die ursprüngliche Datei weiterverarbeitet.
Choice extern Der Benutzer wird aufgefordert, eine Wahl zwischen vorgegebenen Möglichkeiten zu treffen.
Echo intern Zeigt eine Nachricht an oder schaltet die Anzeigefunktion in Batch-Dateien an oder ab (siehe auch @).1
For Intern Führt den angegebenen Befehl für eine Gruppe von Dateien oder Verzeichnissen aus (Schleife).
Goto intern Springt zu einer andern Stelle in der Batch-Datei und setzt dort mit der Befehlsverarbeitung fort.
If intern Führt einen Befehl abhängig von einer Bedingung aus.
Pause intern Hält die Stapelverarbeitung an, bis eine Taste gedrückt wird.
Rem intern Leitet eine Kommentarzeile ein, die nicht verarbeitet wird (siehe auch ::).
Shift intern Ändert die Position der austauschbaren Parameter.

Schreiben, Ausführen und Stoppen einer Batch-Datei


Eine Stapelverarbeitungsdatei kann mit jedem Editor, der auch ohne Formartierungen speichern kann ("Nur-Text"), geschrieben werden. Die Datei muss im ASCII-Format sein und die Erweiteung BAT haben.

Ausgeführt werden sie wie jedes Programm unter DOS, indem man einfach den Namen eingibt, mit oder ohne Erweiterung. Stehen im Verzeichnis allerdings gleichnamige COM- oder EXE-Dateien, so werden diese bei Eingabe ohne Erweiterung ausgeführt.

Durch Drücken von Strg+C oder Strg+Untbr wird die Verarbeitung angehalten und eine Nachricht angezeigt, ob man fortfahren oder abbrechen will.


Beispiel für den Aufbau einer einfachen Batch-Datei

Beisp1.bat

c:

cd \\
dir /on /w /p


Dieses Programm wechselt auf die Startpartition der Festplatte (c:) in das Wurzelverzeichnis (cd \\) und zeigt die Dateien in alphabetischer Reihenfolge über die gesamte Bildschirmbreite Seite für Seite (dir /on /w /p) an.

Anzeige am DOS-Prompt:


C:\\>Beisp1


C:\\>c:


C:\\>cd\\


C:\\>dir /on /w /p


Datenträger in Laufwerk C: FESTPLATTE
Seriennummer des Datenträgers: 3A15-1D08

Verzeichnis von C:\\

[ABLAGE] AUTOEXEC.VS AUTOEXEC.BAT BEISP1.BAT [BP]
COMMAND.COM CONFIG.SYS [EIGENE~1] [GAMES] IEDKCS32.WMP
JSPROXY.WMP MSDOS.SYS [NC] NETLOG.TXT [PROGRA~1]
SCANDISK.LOG SETUPXLG.TXT [UTIL] [WINDOWS]

11 Datei(en) 334.819 Bytes

8 Verzeichnis(se) 94.240.768 Bytes frei


C:\\>


C:\\>



Funktionsweise der Batch-Befehle


@ , Echo, ::, Rem


Im obigen Beispiel wird vor dem Ausführen der einzelnen Befehle der Befehl selber am DOS-Prompt angezeigt, was unschön ist. Daher verwendet man am besten @Echo Off. Mit :: bzw. Rem kann man noch einen erklärenden Kommentar dazugeben.


Beisp2.bat


@Echo Off

:: Schaltet Befehlsanzeige aus
c:
Rem Wechselt auf Laufwerk C

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:
dir /on /w /p


Anzeige am DOS-Prompt:


C:\\>Beisp2
Das Wurzelverzeichnis der Startpartition sieht so aus:


Datenträger in Laufwerk C: FESTPLATTE
Seriennummer des Datenträgers: 3A15-1D08

Verzeichnis von C:\\

[ABLAGE] AUTOEXEC.VS AUTOEXEC.BAT BEISP2.BAT [BP]
COMMAND.COM CONFIG.SYS [EIGENE~1] [GAMES] IEDKCS32.WMP
JSPROXY.WMP MSDOS.SYS [NC] NETLOG.TXT [PROGRA~1]
SCANDISK.LOG SETUPXLG.TXT [UTIL] [WINDOWS]

11 Datei(en) 334.830 Bytes

8 Verzeichnis(se) 94.240.768 Bytes frei

C:\\>


Durch Echo Off wird die Anzeige der Befehle unterdrückt, durch @ wird die Anzeige des Befehls Echo Off unterdrückt. Die Zeilen mit :: und Rem werden nicht verarbeitet. Ansonsten würde es eine Fehlermeldung wegen unbekannter Befehle geben. Der Befehl Echo. gibt eine leere Zeile aus, mit einer Nachricht als Parameter zeigt er diese an.
Call


Mit Call können Batch-Dateien untereinander verschachtelt werden.

autoexec.bat (eine Batch-Datei, die beim Booten aufgerufen wird)


.

.

.

LH C:\\DOS\\MOUSE.COM
Call Beisp2.bat

Win


Von der autoexec.bat wird die Datei Beisp2.bat aufgerufen, mit der das Wurzelverzeichnis angezeigt wird. Anschließend wird Windows gestartet.


If, Goto


If führt einen Befehl unter bestimmten Bedingungen aus, Goto springt zu einer bestimmten Stelle im Stapel:

Beisp3.bat


@Echo Off

:: Schaltet Befehlsanzeige aus

if not "%1" == "dir" goto End
c:
Rem Wechselt auf Laufwerk C

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:
dir /on /w /p

:End


Durch das If wird überprüft, ob der erste Parameter (%1) ungleich (not) dir ist. Ist dies der Fall, springt die Ausführung durch Goto End zu :End; der dazwischen liegende Teil wird nicht verarbeitet.


Choice, if errorlevel, if exist


Choice stellt den Benutzer vor eine Auswahl, if errorlevel fragt den Ausgabewert eines Befehls ab und if exist stellt fest, ob es die angegebenen Dateien überhaupt gibt:

Beisp4.bat


@Echo Off

:: Schaltet Befehlsanzeige aus

if not "%1" == "dir" goto End
Choice /c:ac /t:c,5 Dateien am Laufwerk A oder C

if errorlevel 1 a:
if errorlevel 2 c:

Rem Wechselt das Laufwerk

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:

if exist *.* dir /on /w /p
if not exist *.* echo Keine Dateien

:End


Durch den Parameter /c:Auswahlmöglichkeiten von Choice werden die Auswahlmöglichkeiten festgelegt. Durch /t:Auswahlmöglichkeit,nn wird die Standard-Wahl und das Timeout festgelegt. Choice liefert für die Wahl den entsprechenden Rückwert, der von if errorlevel erfragt, das den dementsprechenden Befehl aufruft. If errorlevel ist dann war, wenn der Rückwert größer oder gleich dem angegebenen ist. Mit if exist *.* wird überprüft, ob es überhaupt Dateien in dem Verzeichnis gibt.



Anzeige am DOS-Prompt:


C:\\>Beisp4 dir

Dateien am Laufwerk A oder C[A,C]?C

Das Wurzelverzeichnis der Startpartition sieht so aus:


Datenträger in Laufwerk C: FESTPLATTE
Seriennummer des Datenträgers: 3A15-1D08

Verzeichnis von C:\\

[ABLAGE] AUTOEXEC.VS AUTOEXEC.BAT BEISP4.BAT [BP]
COMMAND.COM CONFIG.SYS [EIGENE~1] [GAMES] IEDKCS32.WMP
JSPROXY.WMP MSDOS.SYS [NC] NETLOG.TXT [PROGRA~1]
SCANDISK.LOG SETUPXLG.TXT [UTIL] [WINDOWS]

11 Datei(en) 335.132 Bytes

8 Verzeichnis(se) 89.755.648 Bytes frei

C:\\>


For

Der Befehl for führt einen Befehl für eine Gruppe von Dateien oder Verzeichnissen aus:

Beisp5.bat


@Echo Off

:: Schaltet Befehlsanzeige aus

if not "%1" == "dir" goto End
Choice /c:ac /t:c,5 Dateien am Laufwerk A oder C

if errorlevel 1 a:
if errorlevel 2 c:

Rem Wechselt das Laufwerk

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:

if exist *.* dir /on /w /p
if not exist *.* echo Keine Dateien

for %%f in (*.bat) do type %%f

:End

Das for %%f in (Gruppe) do Befehl %%f bewirkt, das alle Dateien mit der Erweiterung TXT durch type ausgegeben werden.


Anzeige am DOS-Prompt:


C:\\>beisp5 dir

Dateien am Laufwerk A oder C[A,C]?C

Das Wurzelverzeichnis der Startpartition sieht so aus:


Datenträger in Laufwerk C: FESTPLATTE
Seriennummer des Datenträgers: 3A15-1D08

Verzeichnis von C:\\

[ABLAGE] AUTOEXEC.VS AUTOEXEC.BAT BEISP5.BAT [BP]
COMMAND.COM CONFIG.SYS [EIGENE~1] [GAMES] IEDKCS32.WMP
JSPROXY.WMP MSDOS.SYS [NC] NETLOG.TXT [PROGRA~1]
SCANDISK.LOG SETUPXLG.TXT TXT.TXT [UTIL] [WINDOWS]

12 Datei(en) 335.172 Bytes

8 Verzeichnis(se) 89.624.576 Bytes frei

@ECHO OFF
LH C:\\UTIL\\TREIBER\\KBD\\KBD.COM >nul

SET COMSPEC=C:\\COMMAND.COM
SET BLASTER=A220 I5 D1 H5 P330 T6

SET MIDI=SYNTH:1 MAP:E
SET TEMP=C:\\WINDOWS\\TEMP

SET TMP=C:\\WINDOWS\\TEMP
PROMPT $P$G
SET
PATH=C:\\NC;C:\\;D:\\;C:\\BP\\BIN;C:\\BP\\DOS\\UTIL;C:\\BP\\
\\DOS\\TPROF;C:\\UTIL;C:\\PROGRA~1\\ULTRAEDT;
SET QTJava=C:\\WINDOWS\\SYSTEM\\QTJava.zip

SET CLASSPATH=%QTJava%;

@Echo Off

@Echo Off

:: Schaltet Befehlsanzeige aus

if not "%1" == "dir" goto End
Choice /c:ac /t:c,5 Dateien am Laufwerk A oder C

if errorlevel 1 a:
if errorlevel 2 c:

Rem Wechselt das Laufwerk

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:

if exist *.* dir /on /w /p
if not exist *.* echo Keine Dateien

for %%f in (*.bat) do type %%f

:End


C:\\>



Shift, Pause

Shift kopiert jeden Parameter des Batch-Programmes in den vorigen. So wird z.B. %1 in %0 kopiert. Da DOS nur 10 Parameter zulässt (der erste, %0, ist das Programm selbst) kann durch shift diese Einschränkung umgangen werden.


Beisp6.bat


@Echo Off

:: Schaltet Befehlsanzeige aus

if not "%1" == "dir" goto End
Choice /c:ac /t:c,5 Dateien am Laufwerk A oder C

if errorlevel 1 a:
if errorlevel 2 c:

Rem Wechselt das Laufwerk

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:

if exist *.* dir /on /w /p
if not exist *.* echo Keine Dateien

for %%f in (*.bat) do type %%f
echo Vollständiger Programmaufruf:
:Para
echo %0
if "%1" == "" goto END

shift
goto Para

:End
Pause

Das shift kopiert jeden Parameter in den vorigen, bis es keine mehr gibt. so können beliebig viele Parameter verwendet werden, und nicht nur 9. Pause hält das Programm bis zu einem Tastendruck an.


Anzeige am DOS-Prompt:


C:\\>beisp6 dir

Dateien am Laufwerk A oder C[A,C]?C

Das Wurzelverzeichnis der Startpartition sieht so aus:


Datenträger in Laufwerk C: FESTPLATTE
Seriennummer des Datenträgers: 3A15-1D08

Verzeichnis von C:\\

[ABLAGE] AUTOEXEC.VS AUTOEXEC.BAT BEISP6.BAT [BP]
COMMAND.COM CONFIG.SYS [EIGENE~1] [GAMES] IEDKCS32.WMP
JSPROXY.WMP MSDOS.SYS [NC] NETLOG.TXT [PROGRA~1]
SCANDISK.LOG SETUPXLG.TXT TXT.TXT [UTIL] [WINDOWS]

12 Datei(en) 335.172 Bytes

8 Verzeichnis(se) 89.624.576 Bytes frei

@ECHO OFF
LH C:\\UTIL\\TREIBER\\KBD\\KBD.COM >nul

SET COMSPEC=C:\\COMMAND.COM
SET BLASTER=A220 I5 D1 H5 P330 T6

SET MIDI=SYNTH:1 MAP:E
SET TEMP=C:\\WINDOWS\\TEMP

SET TMP=C:\\WINDOWS\\TEMP
PROMPT $P$G
SET
PATH=C:\\NC;C:\\;D:\\;C:\\BP\\BIN;C:\\BP\\DOS\\UTIL;C:\\BP\\
\\DOS\\TPROF;C:\\UTIL;C:\\PROGRA~1\\ULTRAEDT;
SET QTJava=C:\\WINDOWS\\SYSTEM\\QTJava.zip

SET CLASSPATH=%QTJava%;

@Echo Off

@Echo Off

:: Schaltet Befehlsanzeige aus

if not "%1" == "dir" goto End
Choice /c:ac /t:c,5 Dateien am Laufwerk A oder C

if errorlevel 1 a:
if errorlevel 2 c:

Rem Wechselt das Laufwerk

cd \\

Echo.
Echo Das Wurzelverzeichnis der Startpartition sieht so aus:

if exist *.* dir /on /w /p
if not exist *.* echo Keine Dateien

for %%f in (*.bat) do type %%f
echo Vollständiger Programmaufruf:
:Para
echo %0
if "%1" == "" goto END

shift
goto Para

:End
Pause
Vollständiger Programmaufruf:

beisp6
dir

Weiter mit beliebiger Taste . . .


C:\\>


Komplexeres Batch-Programm

Erklärungen befinden sich im Programm vor den entsprechenden Zeilen (hinter den ::). Die for Methode wäre für den Befehl del nicht nötig, zeigt aber gut die Art, wie sie verwendet werden kann.

Beisp7.bat

@Echo OFF

REM Lösch-Batch-Datei
:: Zeigt Begrüßungstext an

Echo.
Echo Willkommen bei der Dateien-Löschen-Batch-Datei

Echo.
:: Geht bei richtigen Parameter zu Loeschen

if \"%1\" == \"e\" goto Loeschen
if \"%1\" == \"g\" goto Loeschen

:: Geht ansonsten zur Hilfe
goto Hilfe

:Loeschen

:: Fragt vor dem Löschen noch einmal
choice /c:jn /t:n,10 Sind Sie sicher?

:: Wenn nein, dann zum Ende
if errorlevel 2 goto end
:: Geht zum Gruppen- bzw. zum Einzel-Löschen
goto %1



:e
:: Verschiebt Parameter in den vorherigen

shift

:: überprüft, ob Datei vorhanden

:: Wenn nicht, dann Fehlermeldung

if not exist %1 echo %1 nicht gefunden!

:: Wenn ja, dann Lösch-Meldung

if exist %1 echo %1 wird gelöscht...

:: Löscht Datei (wenn existent)
if exist %1 del %1
:: Wenn noch ein Parameter, dann noch einmal
if not \"%2\" == \"\" goto e

:: Meldung, dass alles gelöscht
echo.

echo Alle Dateien gelöscht

:: Weil fertig zum Ende
goto End


:g
:: Verschiebt Parameter in den vorherigen

shift

:: überprüft, ob Datei vorhanden

:: Wenn nicht, dann Fehlermeldung

if not exist %1 echo %1 nicht gefunden!

:: Wenn ja, dann Lösch-Meldung

if exist %1 echo %1 wird gelöscht...
:: Lösch Gruppe der Dateien (wenn existent)

if exist %1 for %%f in (%1) do del %%f
:: Wenn noch ein Parameter, dann noch einmal

if not \"%2\" == \"\" goto g

:: Meldung, dass alles gelöscht
echo.

echo Alle Dateien gelöscht

:: Weil fertig zum Ende
goto End

:Hilfe

:: Zeigt Hilfetext an
echo Dieses Programm löscht Dateien

echo Parameter:
echo e ...... Einzelne, beim Namen gennante Dateien
echo g ...... Dateigruppen werden gelöscht (*.???)
:: Und ab zum Ende
goto End


:End
:: Leerzeile
echo.
:: Auf Tastendruck warten

pause
:: Bildschirm löschen cls

 
 

Datenschutz
Top Themen / Analyse
indicator Entwicklung und Stellenwert der CD
indicator Vorteile von IntraNetware
indicator Das Kompressionsverfahren
indicator Die erste Ladenkette
indicator Why ignore them - they are just harmless
indicator Software Mp3
indicator Die von Geschichte Samba
indicator Einzugscanner
indicator Das OSI-Modell von ISO
indicator Programmablauf


Datenschutz
Zum selben thema
icon Netzwerk
icon Software
icon Entwicklung
icon Windows
icon Programm
icon Unix
icon Games
icon Sicherheit
icon Disk
icon Technologie
icon Bildung
icon Mp3
icon Cd
icon Suche
icon Grafik
icon Zahlung
icon Html
icon Internet
icon Hardware
icon Cpu
icon Firewall
icon Speicher
icon Mail
icon Banking
icon Video
icon Hacker
icon Design
icon Sprache
icon Dvd
icon Drucker
icon Elektronisches
icon Geschichte
icon Fehler
icon Website
icon Linux
icon Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.
dsolution