www.wikidata.de-de.nina.az
FOR ist ein Kommandozeilenbefehl der eine Schleife ahnlich wie in vielen Programmiersprachen For Schleife ermoglicht Wahrend FOR in MS DOS noch ein primitives Werkzeug darstellte das lediglich eine Iteration durch Dateien innerhalb eines Ordners durchfuhren konnte wurde der Befehl FOR mit den in Windows 2000 eingefuhrten Befehlszeilenerweiterungen in cmd exe zu einem machtigen Befehl ausgebaut der auch mit gewissen Einschrankungen Textdateien parsen und durch die Bestandteile iterieren kann Inhaltsverzeichnis 1 Funktionalitat von FOR unter MS DOS 2 Funktionalitat von FOR ab Windows 2000 2 1 Iteration durch eine Datei oder die Ausgabe eines Befehls 2 2 Rekursive Iteration durch einen Verzeichnisbaum 2 3 Iteration durch Ordner 2 4 Iteration durch Zahlenbereiche 2 5 Weitere Funktionen 3 WeblinksFunktionalitat von FOR unter MS DOS BearbeitenDie Syntax des FOR Befehls unterscheidet sich grundlegend von der Syntax anderer Befehle auf der Befehlszeile Sie lautet wie folgt FOR I IN HTM DO TYPE I Die Bestandteile eines syntaktisch korrekten FOR Befehls sind I bezeichnet die Variable die wahrend der Laufzeit der For Schleife durch den jeweiligen Dateinamen ersetzt wird Als Variablenname kann jeder Buchstabe des Alphabets verwendet werden Soll eine For Schleife innerhalb einer Stapelverarbeitungsdatei verwendet werden muss das Prozentzeichen verdoppelt werden I statt I IN ist ein Schlusselwort das die Angabe der zu iterierenden Dateien einleitet Es muss zwingend nach dem Variablennamen vorkommen HTM bezeichnet die Dateien durch die iteriert wird im hier vorliegenden Beispiel alle Dateien mit der Dateierweiterung HTM Es konnen hier sowohl konkrete Dateien als auch Wildcards angegeben werden moglich ist auch die Angabe mehrerer Arten von Dateien durch ein Leerzeichen getrennt z B HTM TXT fur alle Dateien mit den Dateierweiterungen HTM oder TXT Die Klammern sind zwingend Es ist auch moglich hier eine Zeichenkette anzugeben in Anfuhrungszeichen was aber in den seltensten Fallen sinnvoll ist DO ist ein weiteres Schlusselwort das den auszufuhrenden Befehl einleitet Er muss zwingend nach der Angabe der Dateien folgen TYPE I bezeichnet den Befehl der fur jede Datei einzeln ausgefuhrt wird die Variable wird wahrend der Laufzeit durch den konkreten Dateinamen ersetzt Funktionalitat von FOR ab Windows 2000 BearbeitenAb Windows 2000 bietet FOR mit aktivierten Befehlszeilenerweiterungen weitere deutlich machtigere Optionen Iteration durch eine Datei oder die Ausgabe eines Befehls Bearbeiten Wird FOR mit dem Parameter F aufgerufen wird der Kommandozeileninterpreter angewiesen den Inhalt einer Datei durchzulaufen und jede einzelne Zeile dieser Datei in einzelne Bestandteile aufzuteilen mithin handelt es sich um einen primitiven Tokenizer Ebenso ist es moglich die Ausgabe eines anderen Befehls der Befehlszeile unmittelbar auszuwerten oder auch eine Zeichenkette unmittelbar im Befehl anzugeben die ausgewertet werden soll Standardmassig wird der Inhalt der Datei in Tokens aufgeteilt wobei als Trennzeichen das Leerzeichen und das Horizontal Tabulatorzeichen voreingestellt sind und nur das erste Token jeder Zeile ausgewertet wird Sollen diese Voreinstellungen geandert werden mussen sie durch spezielle Schlusselworter innerhalb von Anfuhrungszeichen nach dem Parameter und vor der Angabe der Variable angegeben werden tokens legt fest welches Token in einer Zeile ausgewertet wird Der Standardwert lautet 1 moglich ist die Angabe sowohl einer einzelnen Zahl als auch mehrerer Zahlen oder eines ganzen Zahlenbereichs wie z B tokens 2 4 6 um das 2 4 5 und 6 Token in jeder Zeile auszuwerten Wird mehr als ein Token angegeben weist der Kommandozeileninterpreter den weiteren Tokens automatisch Variablen zu und zwar dem Alphabet folgend Ware also im Befehl als Variablenname I angegeben erhielten die weiteren Tokens automatisch die Variablen J K und L Es ist ausserdem moglich das Sternchen als Wildcard anzugeben etwa tokens 3 zur Auswertung des 3 und allen darauffolgenden Tokens delims legt das Trennzeichen fest das der Kommandozeileninterpreter verwendet um die Zeilen in einzelne Tokens aufzutrennen Es konnen auch mehrere Trennzeichen angegeben werden z B delims um den Punkt und den Doppelpunkt als Trennzeichen festzulegen skip legt fest wie viele Zeilen am Anfang der Datei ubersprungen werden soll etwa weil sie fur die Auswertung wertlose Metadaten enthalten Standard ist 0 eol legt fest ab welchem Zeichen der Kommandozeileninterpreter das Lesen der Zeile beenden soll Standard ist der Semikolon dies hat etwa zur Folge dass Zeilen die mit einem Semikolon beginnen ahnlich wie Kommentarzeilen vom Kommandozeileninterpreter ignoriert werden usebackq andert die Syntax des FOR Befehls Standardmassig interpretiert der Kommandozeileninterpreter die Angabe innerhalb der Klammern nach dem Schlusselwort IN wie folgt Ohne Sonderzeichen z B index txt Name der Datei deren Inhalt verarbeitet werden soll Mit einfachen Anfuhrungszeichen z B dir b txt Befehl dessen Ausgabe verarbeitet werden soll Mit doppelten Anfuhrungszeichen z B 1 txt 2 txt 3 txt Zeichenkette die wortlich verarbeitet werden sollWird nun das Schlusselwort usebackq angegeben andert sich die Syntax wie folgt Mit Gravis Zeichen z B dir b txt Befehl dessen Ausgabe verarbeitet werden soll Mit einfachen Anfuhrungszeichen z B 1 txt 2 txt 3 txt Zeichenkette die wortlich verarbeitet werden soll Mit doppelten Anfuhrungszeichen z B Neue Datei txt Name der Datei deren Inhalt verarbeitet werden sollDas hat den Vorteil dass auch Dateinamen mit Leerzeichen angegeben werden konnen ohne das Schlusselwort wurden die Bestandteile vor und nach dem Leerzeichen getrennt verarbeitet also als Datei Neue und als Datei Datei txt Rekursive Iteration durch einen Verzeichnisbaum Bearbeiten Der Parameter R ermoglicht es einen gesamten Verzeichnisbaum rekursiv zu durchsuchen und den Befehl in der For Schleife fur jede Datei in den einzelnen Unterordnern auszufuhren die der Angabe in den Klammern entsprechen Die Angabe des Verzeichnisbaums der rekursiv durchsucht werden soll erfolgt nach dem Parameter und vor der Angabe der Variable Wird kein Verzeichnisbaum angegeben wird das aktuelle Verzeichnis benutzt Iteration durch Ordner Bearbeiten Mit der Angabe des Parameters D iteriert die For Schleife nicht durch Dateien sondern durch Ordner Es besteht die undokumentierte Moglichkeit die Parameter D und R zu kombinieren um einen Verzeichnisbaum rekursiv nach Ordnern zu durchsuchen Iteration durch Zahlenbereiche Bearbeiten Wird FOR mit dem Parameter L aufgerufen iteriert die For Schleife durch einen angegebenen Zahlenbereich Die Syntax hierfur lautet 1 1 5 Die erste Zahl gibt an von wo die Zahlung anfangen soll die zweite Zahl um wie viel die Variable mit jedem Durchlaufen der Schleife erhoht werden soll und die dritte Zahl ab wo die Zahlung enden soll Weitere Funktionen Bearbeiten Mit aktivierten Befehlszeilenerweiterungen kann der FOR Befehl auch verschachtelt werden In diesem Fall kann der auszufuhrende Befehl in Klammern gesetzt werden um klarzustellen zu welcher Ebene der Befehl gehort Ein Ausbrechen aus einer inneren Schleife ahnlich dem Schlusselwort break in Programmiersprachen wie C ist nur uber einen Umweg moglich indem die innere For Schleife in eine eigene Routine verlagert wird diese kann dann mit exit b beendet werden Weblinks BearbeitenBeschreibung des FOR Befehls MS DOS 6 22 Befehlsreferenz FOR Abgerufen von https de wikipedia org w index php title FOR Kommandozeilenbefehl amp oldid 213170142