[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
---------------------------------------------------------------------------
FOR
---------------------------------------------------------------------------
Zweck: Wiederholungsschleifen f.r Befehle definieren.
Format: FOR [%]%Var IN (Menge) DO Befehl [[%]%Var]
Einsatz: Wenn ein bestimmter Befehl mehrmals hintereinander aufgerufen
werden soll und sich hierbei immer nur 1 Parameter, bzw. eine
Variable (wie z.B. ein Dateiname) .ndert kann die Wiederholung
des Befehls mit dem Schleifen-Befehl FOR geschehen.
[%]%Var bezeichnet hierbei eine Laufvariable, welche aus einem
beliebigen ASCII-Zeichen ausgenommen der Zeichen % < > und |
(ASCII 37 60 62 und 124) besteht.
Dieser Variablen ist hierbei immer das Prozentzeichen % voran-
zustellen, wobei innerhalb von Batch-Programmen ein zweites
Prozentzeichen mit anzugeben ist.
Nach dem Schl.sselwort IN folgt in einer Klammer eine Menge von
Elementen, die von der Variablen in aufeinanderfolgenden
Schleifen aufgenommen werden und hierdurch die Anzahl der zu
durchlaufenden Schleifen bestimmen. Als Elemente sind m.glich:
1. Durch Leerzeichen getrennte Zeichenfolgen, wie z.B. Buch-
staben, Dateinamen, Worten oder Ziffern.
2. Durch Leerzeichen getrennte Stapelprogramm-Variablen wie
z.B. %1 %2 %3 etc.
3. Durch Wildcards definierte und durch Leerzeichen ge-
trennte Dateigruppen, wie z.B.
A*.TXT f.r alle Textdateien, welche mit A beginnen.
Hierbei k.nnen auch alle 3 M.glichkeiten auf einmal benutzt
werden. Z.B. (Datei.txt %2 *.doc)
Nach dem Schl.sselwort DO kann dann ein Befehl folgen, der
die Schleifenvariable als Parameter nutzen kann.
Ineinander verschachtelte Schleifen sind nicht m.glich; durch
den Aufruf einer weiteren Batch-Datei mit dem Befehl CALL
innerhalb einer FOR-Schleife ist jedoch eine indirekt ver-
schachtelte Schleife m.glich.
Beispiel: FOR %%X IN (*.DOC READ*.*)DO IF EXIST %%X TYPE %%X
Alle in der Klammer bezeichneten Dateien werden gelistet.
FOR %%X IN (*.TMP *.BAK *.SIK) DO DEL %%X
Alle in der Klammer bezeichneten Dateien werden gel.scht.
FOR %%A IN (JA ja Ja jA) DO IF %%A==%1 goto ja
.berpr.ft m.gliche Eingaben und springt gegebenenfalls zu
dem Sprung-Label :ja.
FOR %%P IN (masm link exe2bin) DO %%P %1
Bei Aufruf mit einer Datei als Parameter wird diese Datei
erst assembliert, dann gelinkt und zu einem fertigen Programm
mit der Erweiterung .COM umgewandelt.
FOR %%p IN (1 2 3 4 5 6 7 8 9) DO ECHO.
Es werden 9 Leerzeilen ausgegeben. In dieser Form ist es
schneller als 9 einzelne Zeilen mit ECHO., da COMMAND nur
eine Zeile interpretieren mu. und nicht neun.
FOR %Z IN (*.BAK) DO REN %Z*.TXT
Alle Dateien mit der Erweiterung .BAK werden in eine Datei
mit der Erweiterung .TXT umbenannt.
Das letzte Beispiel demonstriert die Verschachtelung von zwei
Schleifen mit dem Befehl FOR:
Hierzu wird eine zweite Batchdatei ben.tigt, die hier
second.bat hei.en soll:
@ECHO OFF
FOR %%2 IN (0 1 2 3 4 5 6 7 8 9) DO ECHO %1%%2
In Verbindung mit einer Batchdatei:
@ECHO OFF
FOR %%V IN (0 1 2 3 4 5 6 7 8 9) DO CALL SECOND %%V
werden in dieser verschachtelten Schleife alle Zahlen von
0 bis 99 ausgegeben.
Hinweise: Wird in einer Befehls-Sequenz mit FOR eine Umleitung (> oder
<) oder ein Pipe (|) angegeben, so werden zun.chst alle
Befehle zuvor abgearbeitet:
FOR %%D IN (C:\UTIL C:\TEXT) DO DIR %%D|SORT
sortiert nicht (!) beide Verzeichnisse einzeln, sondern beide
zusammen. Einzelsortierung ist dennoch m.glich:
FOR %%D IN (C:\UTIL C:\TEXT) DO CALL Dir-Sort.BAT %%D
Dir-Sort.Bat:
@ECHO OFF
DIR %1|SORT
See Also:
call
Stapel-Dateien
Wildcards
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson