Sie sind auf Seite 1von 3

Batch Programmierung.

. Das wort batch programmierung findet sich hufig, weil der geschriebene code wie bei einem programm abegarbeitet wird. Die abarbeitung geschieht sequentiell. Batch programmierung gibt es nicht nur unter dos/windows, auch unter macos oder unix lassen sich skripte dieser art schreiben, allerdings sind die shell-scripts unter unix doch deutlich vielseitiger und interessanter als unter windows. Hier wird aber nur die die batchprorgammierung unter windows behandelt. Bei einer batch werden nur OS-interne befehle verarbeitet, die funktionen sind also dementsprechend beschrnkt. Komplexe sachen sind, je nach interpretation, nicht mglich. Das schreiben einer batch unter windows ist denkbar einfach und erfordert kaum kenntnisse irgend einer art. Von vorteil ist es dennoch ber die zu verfgung stehenden win-commands bescheid zu wissen und deren mglichen schalter. Allerdings kann man sich hier jederzeit behelfen. Unter windows lassen sich in der CLI mit dem befehl "help" (Start > Ausfhren > cmd > help) commands anzeigen. Windows stellt grundstzlich vordefinierte variablen wie %0% (aktuelle datei) oder %ver% oder %temp% bereit. diese lassen sich mit dem befehl "set" anzeigen. Batches eignen sich unter windows um einfache, zum beispiel um hufig anfallende und daher lstige, routine aufgaben wie zB die regelmige sicherung eines ordners auf ein logisches laufwerk oder hnliches, mit einem tastendruck zu erledigen. Es geht auch etwas komplexer, so kann man mit batches auch mehrere aufgaben hintereinander abarbeiten und diese per variablen noch verfeinern. Betriebssystemintern sind somit kaum grenzen gesetzt. Um eine batch zu erstellen ffnet man unter windows (hier geht es um alle neueren windows NT versionen) lediglich ein leeres txt-dokument und kann dort seine befehle hineinschreiben. (im brigen empfiehlt es sich auch bei batches auf eine saubere struktur zu achten, gerade wenn man lngere batch-dateien schreibt). Eine simple batch datei knnte so aussehen: @echo off echo Dies ist eine Batch! pause echo ist wohl der am meisten verwendete befehl in batch dateien, er wird im prinzip stndig benutzt. Echo gibt text auf der CLI aus und kann den output von befehlen unterdrcken. Echo gefolgt von einem leerzeichen zeigt also alles an was danach folgt. Weiterhin kann man mit echo auch variablen anzeigen lassen oder in eine weitere txt-datei umlenken lassen (zB eine log-datei). Sehr hufig werden batches mit dem befehl @echo off begonnen. Dieser befehl unterdrckt die gesamte commandline-ausgabe auf der CLI bis die batch terminiert oder "echo on" gesetzt wird. Bei pause terminiert die batch nicht sofort, sondern wartet auf einen user input (man muss eine taste drcken). Anhand der gerade genannten beispiel lassen sich die batch befehle von oben etwas modifizieren. (Fortgeschrittene Optionen von echo werden spter in diesem tutorial noch aufgefhrt.)

@echo off echo. Echo Dies ist eine Batch! > c:\logfile.txt pause >nul mit "echo." kann man leerzeilen erzeugen. Der Satz "Dies ist eine Batch!" wird per > in eine datei umgelenkt, hier sinnvollerweise in eine txt, die auf c:\ erzeugt wird. Bei > wird die datei jedesmal neu erzeugt und der satz einmal hineingeschrieben, bei >> wird der satz in die txt immer wieder angehngt. Man muss nicht > benutzen um ein neues dokument zu erstellen, man kann dafr auch >> verwenden. Mit >nul wird der output von "Bitte drcken Sie eine beliebige Taste." nicht vom CLI interpretiert und wird verworfen. Er wird also nicht am bildschirm ausgegeben. >nul lsst sich in dieser Art auch anderweitig einsetzen. Hufig werden batches auch fr sehr simple aufgaben wie kopieraufgaben eingesetzt. Erste wahl fr einfache kopieraufgaben ist xcopy. Wer sich an der beschrnktheit von xcopy strt und gerne inkrementelle backups bers netzwerk erledigen mchte oder hnliches, dem sei robocopy ans herz gelegt. Frher gab es dieses nur im windows ressource kit, mittlerweile gibt es das tool auch als seperate .exe fr xp und 2000. bei vista ist es schon an bord. Wir bleiben hier aber bei xcopy, da es das am abstand gebruchlichste tool seiner art ist. Wer hilfe mit den ganzen parametern braucht, kann sich diese per xcopy /? auf der CLI anzeigen lassen. Beispiels-Szenario: alle .doc-dateien eines ordners auf einer partition sollen auf einen usb-stick kopiert werden. Dazu soll auch ein unterverzichnis kopiert werden. Auerdem sollen nur die dateien gesichert werden, die ab dem 12.12.2009 das letzte mal gendert wurden. Zudem soll eine datei, die eine .odt-datei ist (OpenOffice), ausgeschlossen werden. Bevor kopiert wird, soll eine besttigung kommen, die man mit Tastendruck besttigen muss. In einer batch-datei knnte das so aussehen: @echo off xcopy D:\Dokumente\*.doc K:\Dokumente\ /s /p /f /d:12-12-2009 /exclude:d:\excludefiles.txt pause D:\ ist der pfad wo der Ordner "Dokumente" liegt, K:\ ist der Laufwerkspfad des USBSticks. Bei xcopy gilt: Quellordner gefolgt von Zielordner. exclude kann nicht als parameter einfach in einer batch verwendet werden, stattdessen muss man eine weitere .txt-datei erstellen, in der man dann in die erste zeile "*.odt" schreibt. Man kann auch namen von dateien verwenden, es mssen keine endungen sein. Einfach den namen der datei in die erste zeile und jede weitere datei in eine eigene zeile. jetzt soll die .bat-datei noch etwas modifiziert werden. Es soll noch eine datei von einem Freigabeordner im LAN kopiert werden. @echo off xcopy D:\Dokumente\*.doc K:\Dokumente\ /s /p /f /d:12-12-2009 /exclude:d:\excludefiles.txt

xcopy \FREIGABE\copyme.txt D:\ Somit wird die datei copyme.txt auf den lokalen computer bertragen. Mit *.* kann man auch alle dateien eines laufwerkes kopieren. Wie gesagt xcopy ist nicht das ma aller dinge wenn es ums kopieren unter windows geht, aber fr kleinere backupaufgaben beispielsweise durchaus brauchbar. Mit copy kann man auch dateien zusammenfgen, welches sowohl mit text- als auch binary-dateien funktioniert. copy /b "name der datei" + "name der zweiten datei" "neue datei"