Grundlagen der BATch-programmierung [Teil I: allgemeines] [Teil II: CONFIG.SYS und AUTOEXEC.BAT] -------->[Teil III: spezielles zu BATch-Dateien]<------------- [Teil IV: spezielles zu CONFIG.SYS und AUTOEXEC.BAT] =====>1. Einleitung Hallo und herzlich Willkommen zu dem III. Teil des BATch-Kurses. Heute wollen wir uns mit mehreren wichtigen und speziellen Befehlen der einfachen DOS-Programmierung beschftigen. ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ Hier erst einmal eine -->bersicht <--- Dei folgenden Befehle werden heute erklrt: GOTO CLS IF DIR TYPE txt.txt |more |sort . anstatt *.* CALL --> Der Befehl GOTO Dieser Befehl bewirkt da das Programm zu einen anderen Teil des BATch- Listings geht und dort die folgenden Befehle bearbeitet. Beispiel: . Erklrung: @ECHO OFF schaltet die Ausgabe der einzelnen Befehle . auf dem Bildschirm aus GOTO ende geht zu der Zeile mit der Sprungmarke ende DIR :ende vor jeder Sprungmarke mu ein : stehen! CLS lscht den Bildschirm Der Befehl DIR wird also durch den Sprungbefehl GOTO garnicht ausgefhrt da der Computer diese Zeile berspringt. Auf diese Weise knnen einige Bemerkungen ohne den Befehl REM (=remark Bemerkung(siehe Teil I)) in das Listing eingfgt werden. Beispiel: @ECHO OFF GOTO weiter Hier knnte jetzt der Text stehen der der Orientierung dient. :weiter Folgt nach der Sprungmarke kein Befehl (und auch keine weitere Sprungmarke) ist also das Listing dort zu ende beendet der Computer diese BATch-Datei. Eine weitere Verwendung des GOTO-Befehls folgt spter. ---> Der Befehl CLS Mit diesem kann man den Bildschirm lschen. Beispiel: CLS ---> Der Befehl IF mit dem Befehl IF kann man Variablen miteinander oder mit einem festgelegten Wert vergleichen und dann verschiedene Befehle ausfhren. Die mit IF festgelegte Bedingung mu erst erfllt sein bevor der Befehl ausgefhrt wird (wie die IF-CLAUSES im Englischen). Beispiel: @ECHO OFF IF %1 .==. CLS Wichtig! Nach der Bedingung darf kein THEN (wie es z.B.beim BASIC blich ist) folgen. Die Variablen mit den Zahlen enthalten die Parameter die beim Start der BATch-Datei von dem Benutzer mit eingegeben wurden. Beispiel: Startet man eine BATch-Datei mit: BAT *.EXE *.ARJ \dosgames\ so befindet sich in der Variable %1 der Wert ''*.EXE'' in der Variable %2 der Wert ''*.ARJ'' und in der Variable %3 der Wert ''\dosgames\''. (natrlich ohne '') Jetzt kommen wir zur zweiten Verwendung von GOTO @ECHO OFF IF %1 .==. GOTO ende IF %2 .==. GOTO ende CLS COPY %1 %2 DEL %1 DIR %2 :ende Hier wird ein Sprungbefehl zum Ende ausgefhrt wenn der Inhalt der Parameter 1 und 2 nichts ist. So kann man also berprfen ob die Parameter vergessen wurden. (Das passiert ja mal ganz schnell!) @ECHO OFF IF %1 .==. ECHO Parameter 1 wurde vergessen IF %2 .==. ECHO Parameter 2 wurde vergessen IF %1 .==. GOTO ende IF %2 .==. GOTO ende --> Der Befehl DIR Tja wieso greife ich wohl nochmal den Befehl DIR auf? Hier sind weitere Mglichkeiten diesen Befehl sinnvoll zu nutzen: DIR /ad/s/b 'zeigt alle Unterverzeichnisse vom . aktuellen Verzeichnis an DIR /s 'zeigt alle Dateien (inklusive der . Unterverzeichnisse) des aktuellen . Verzeichnisses an DIR /a:h 'zeigt alle versteckten Dateien DIR /b 'zeigt alle Dateien ohne Datums- Gren- . und Uhrzeitenangabe Es gibt noch viel mehr Parameter mit denen man die Anzeige modifizieren kann. Gebt mal HELP DIR ein. ---> Der Befehl TYPE Mit dem Befehl TYPE kann man eine ASCII-Datei ohne Umwege zu dem DOS-EDITOR ansehen (aber nicht ndern). Aufruf: TYPE txt.txt Leider kann man bei einer Datei die Lnger als eine Bildschirmseite ist nicht alles sehen. Das Programm MORE schafft da Abhilfe. Mit dem Aufruf TYPE txt.txt |more wird die gesamte Datei txt.txt an das Programm MORE bergeben das dann die Datei Seitenweise auflistet. Die einzelnen Zeilen in einem Text kann man mit dem Programm SORT sortieren. Auerdem besteht noch die Mglichkeit mit dem Programm FIND etwas in einer Datei zu finden. ----> . anstatt *.* Jeder kennt es z.B. den Aufruf del *.* oder der Aufruf COPY *.* a: oder hnliche Aufrufe. Bei den meisten Aufrufen kann man aber das *.* durch ein . ersetzen. Dadurch wird die Aktion schneller ausgefhrt. Bei DEL ist es sogar mglich den Punkt direkt an den Befehl zu hngen: DEL. Das macht die Sache noch schneller. Tja jetzt ist dieser Teil leider schon wieder vorbei. Im nchsten Teil beschftigen wir uns weiter mit den Startdateien.