Advertisement
AyrA

[CMD] FOR Help

Feb 2nd, 2013
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.74 KB | None | 0 0
  1. Führt einen Befehl für jede einzelne Datei für einen Satz von Dateien aus.
  2.  
  3. FOR %Variable IN (Satz) DO Befehl [Parameter]
  4.  
  5. %Variable Ein ersetzbarer Parameter bestehend aus einem einzelnen
  6. Buchstaben.
  7. (Satz) Ein Satz von mindestens einer Datei. Platzhalter sind zulässig.
  8. Befehl Befehl, der für jede Datei ausgeführt werden soll.
  9. Parameter Parameter und Optionen für den angegebenen Befehl.
  10.  
  11. Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable
  12. statt %Variable an. Beachten Sie die Groß-/Kleinschreibung bei Variablen-
  13. namen, %i und %I sind nicht identisch.
  14.  
  15. Wenn die Befehlserweiterungen aktiviert sind, werden folgende
  16. Ergänzungen für den FOR-Befehl unterstützt:
  17.  
  18. FOR /D %Variable IN (Satz) DO Befehl [Parameter]
  19.  
  20. Wenn der Satz Platzhalter enthält, dann bezieht sich der FOR-Befehl
  21. auf Verzeichnisse und nicht auf Dateien.
  22.  
  23. FOR /R [[Laufwerk:]Pfad] %Variable IN (Satz) DO Befehl [Parameter]
  24.  
  25. Der FOR-Befehl wird ausgehend vom Verzeichnis [Laufwerk:]Pfad (als
  26. Stammverzeichnis) für jedes darunterliegende Verzeichnis ausgeführt.
  27. Wenn kein Verzeichnis nach der /R-Option angegeben ist, wird das aktuelle
  28. Verzeichnis verwendet. Wenn der Satz nur einen einzelnen Punkt als
  29. Zeichen (.) enthält, wird nur die Verzeichnisstruktur aufgelistet.
  30.  
  31. FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]
  32.  
  33. Der Satz ist eine Folge von Zahlen von Start bis Ende und der
  34. angegebenen Schrittweite. So erstellt (1,1,5) die Folge 1 2 3 4 5 und
  35. (5,-1,1) erstellt die Folge (5 4 3 2 1).
  36.  
  37. FOR /F ["Optionen"] %Variable IN (Dateiensatz) DO Befehl [Parameter]
  38. FOR /F ["Optionen"] %Variable IN ("Zeichenfolge") DO Befehl [Parameter]
  39.  
  40. oder, unter Verwendung der Option "usebackq":
  41.  
  42. FOR /F ["Optionen"] %variable IN (Dateiensatz) DO Befehl [Parameter]
  43. FOR /F ["Optionen"] %variable IN ("Zeichenfolge") DO Befehl [Parameter]
  44. FOR /F ["Optionen"] %variable IN (`Befehl`) DO Befehl [Parameter]
  45.  
  46.  
  47. Der Dateiensatz besteht aus einem oder mehreren Dateinamen. Jede Datei
  48. wird geöffnet, gelesen und bearbeitet, dann wird mit der nächsten Datei
  49. des Satzes fortgefahren. Die Bearbeitung einer Datei erfolgt zeilenweise,
  50. jede einzelne Textzeile wird ausgewertet und in die entsprechenden Token
  51. (keinen oder mehrere) zerlegt. Die Befehle in der FOR-Schleife werden dann
  52. mit den Variablenwerten (d.h. den gefunden Zeichenfolgen bzw. Token)
  53. aufgerufen. Standardmäßig liefert "/F" den ersten, durch ein Leerzeichen
  54. getrennten Token von jeder Zeile in jeder Datei. Leerzeilen werden
  55. übersprungen. Das standardmäßige Verhalten bei der Analyse kann wahlweise
  56. durch den Parameter "Optionen" überschrieben werden. Dies ist eine
  57. Zeichenfolge in Anführungszeichen, welche mindestens ein Schlüssel-
  58. wort enthält, um verschiedene Parameter für die Analyse anzugeben. Diese
  59. Schlüsselwörter sind:
  60.  
  61. eol=c - Gibt das Zeichen für Zeilenendekommentare an
  62. (nur eins).
  63. skip=n - Gibt die Anzahl der Zeilen an, die am Anfang einer
  64. Datei übersprungen werden.
  65. delims=xxx - Gibt einen Satz von Trennzeichen an. Diese ersetzen
  66. die Standardtrennzeichen TAB und Leerzeichen.
  67. tokens=x,y,m-n - Gibt an, welche Token von jeder Zeile an die
  68. FOR-Schleife weitergegeben werden.
  69. Das führt dazu, dass zusätzliche Variablen erstellt
  70. werden. Mit der Form m-n wird dabei ein Bereich vom
  71. m-ten bis zum n-ten Token angegeben. Wenn das letzte
  72. Zeichen ein Sternchen ist, wird eine zusätzliche
  73. Variable deklariert, die den verbleibenden Text
  74. dieser Zeile enthält.
  75. usebackq - Gibt an, dass die neue Semantik in Kraft ist,
  76. wobei eine Zeichenfolge in umgekehrten Anführungs-
  77. zeichen als Befehl ausgeführt wird und eine
  78. Zeichenfolge in Anführungszeichen ein literaler
  79. Befehl ist, der die Verwendung von doppelten
  80. Anführungszeichen um Dateinamen in Dateien-
  81. sätzen erlaubt.
  82.  
  83. Einige Beispiele:
  84.  
  85. FOR /F "eol=; tokens=2,3* delims=, " %i in (Datei.txt) do @echo %i %j %k
  86.  
  87. Dadurch wird jede Zeile in der Datei "Datei.txt" ausgewertet, Zeilen
  88. die mit einem Semikolon beginnen werden ignoriert, für den 2. und
  89. 3. Token jeder Zeile werden die Befehle in der FOR-Schleife ausge-
  90. führt. Trennzeichen sind Kommas und/oder Leerzeichen. In der FOR-
  91. Schleife wird der Ausdruck "%i" verwendet, um den 2. Token zu
  92. erhalten, "%j" für den 3. Token und "%k", um alle übrigen Token
  93. zu erhalten. Dateinamen, die Leerzeichen enthalten, müssen Sie
  94. innerhalb doppelter Anführungszeichen angeben. Dazu müssen Sie
  95. die Option "usebackq" verwenden. Andernfalls werden doppelte
  96. Anführungszeichen zur Definition eines auszuwertenden Literals ver-
  97. wendet.
  98.  
  99. Dabei ist "%i" explizit deklariert, während "%j" und "%k" implizit
  100. durch die Option "tokens=" deklariert werden. Sie können bis zu
  101. 26 Token durch diese Option angeben, vorausgesetzt, es wird da-
  102. durch nicht versucht, eine Variable mit einem Buchstaben größer als
  103. "z" zu deklarieren. Bedachten Sie, dass FOR-Variablen aus nur
  104. einem Buchstaben bestehen, Groß-/Kleinschreibung beachtet wer-
  105. den muss, dass sie global sind und nicht mehr als insgesamt 52
  106. gleichzeitig aktiv sein dürfen.
  107.  
  108. Sie können den Befehl "FOR /F" auch direkt mit einer Zeichenfolge
  109. verwenden, indem Sie die Zeichenfolge in doppelten Anführungszei-
  110. chen als Dateiensatz zwischen den Klammern angeben. Diese Zei-
  111. chenfolge wird dabei als einzelne Zeile einer Datei betrachtet und
  112. ausgewertet.
  113.  
  114. Schließlich können Sie den Befehl "FOR /F" auch verwenden, um
  115. die Ausgabe eines Befehls auszuwerten. Dazu geben Sie eine Zei-
  116. chenfolge in einfachen Anführungszeichen als Dateiensatz zwischen
  117. den Klammern an. Diese Zeichenfolge wird dabei als Befehlszeile
  118. betrachtet und von einer untergeordneten "CMD.EXE" ausgeführt.
  119. Die Ausgabe dieses Befehls wird dann wie eine normale Datei ausge-
  120. wertet. Das folgende Beispiel listet die Umgebungsvariablen im
  121. aktuellen Verzeichnis auf:
  122.  
  123. FOR /F " usebackq delims==" %i IN (`set`) DO @echo %i
  124.  
  125. Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
  126. Sie können jetzt folgende Syntax verwenden:
  127.  
  128. %~I - Expandiert %I und entfernt alle umschließenden
  129. Anführungszeichen (").
  130. %~fI - Expandiert %I zu einem vollständigen Dateinamen.
  131. %~dI - erstellt nur den Laufwerkbuchstaben von %I.
  132. %~pI - erstellt nur den Pfad von %I.
  133. %~nI - erstellt nur den Dateinamen von %I.
  134. %~xI - erstellt nur die Dateierweiterung von %I.
  135. %~sI - erstellter Pfad enthält nur kurze Dateinamen.
  136. %~aI - erstellt die Dateiattribute von %I.
  137. %~tI - erstellt Datum und Zeit von %I.
  138. %~zI - erstellt die Dateigröße von %I.
  139. %~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
  140. angegebenen Verzeichnisse und expandiert die erste
  141. gefundene Datei %I zu dem vollständigen Dateinamen.
  142. Wenn der Name der Umgebungsvariablen nicht definiert
  143. ist oder diese Datei bei der Suche nicht gefunden wurde,
  144. wird dieser Parameter zu einer leeren Zeichenfolge
  145. expandiert.
  146.  
  147. Diese Parameter können auch miteinander kombiniert werden:
  148.  
  149. %~dpI - erstellt den Laufwerkbuchstaben und Pfad von %I.
  150. %~nxI - erstellt den Dateinamen und die Dateierweiterung von %I.
  151. %~fsI - Expandiert %I zu einem vollständigen Namen, der nur
  152. kurze Dateinamen enthält.
  153. %~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
  154. angegebenen Verzeichnisse nach %I und erstellt den
  155. Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
  156. %~ftzaI - Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
  157. Befehls entspricht.
  158.  
  159. In den angegebenen Beispielen können %I und PATH durch andere gültige
  160. Werte ersetzt werden. Der Ausdruck %~ wird durch einen gültigen Variablen-
  161. namen für FOR abgeschlossen. Die Verwendung von Großbuchstaben für die Namen
  162. von Variablen, wie z. B. %I, macht diese Ausdrücke leichter lesbar und
  163. vermeidet Verwechslungen mit den eigentlichen Parametern.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement