ForEach local|remote <muster> do <command>
Mit dem ForEach Befehl kann ein anderer Befehl mehrmals ausgeführt werden, nämlich je 1x für jede Datei, die dem Suchmuster (z.B. "*.html") entspricht.
Der auszuführende Befehl ist ein einzelner Parameter in einfachen oder doppelten Anführungszeichen, der einen vollständigen Skriptbefehl enthält. Wenn der Skriptbefehl selbst ebenfalls Anführungszeichen benötigt, können Sie einfache Anführungszeichen innerhalb doppelter verwenden oder umgekehrt, z.B. "RemoteRename '.txt', '.text'".
In dem auszuführenden Kommando kann der Platzhalter $file (in Kleinschreibung) verwendet werden, der dann gegen den jeweiligen Dateinamen ersetzt wird.
Als Alternative zum Platzhalter $file, kann (sofern im Suchmuster genau ein *-Zeichen vorkommt) jedes * im Befehl durch den Teil des Dateinamens ersetzt werden, der dem * im Muster entspricht (siehe das Beispiel 'RemoteRename' unten).
Wenn das Suchmuster mit dir: beginnt, werden Verzeichnisnamen statt Dateien gesucht. Der Lesbarkeit halber kann im Befehl statt $file auch $dir verwendet werden (das Ergebnis ist in in beiden Fällen identisch).
Beispiel: ForEach remote "*.mdb" do "Get '$file'"
(alle MDB Dateien vom Server holen, entspricht Get "*.mdb". oder GetDir "*.mdb")
Beispiel: ForEach remote "*.cgi" do "RemoteExec 'chmod 777 $file'"
(Den Serverbefehl chmod für alle CGI Dateien am Server ausführen.)
Beispiel: ForEach remote "*.txt" do "RemoteRename '*.txt', '*.text'"
(Alle *.txt Dateien am Server in *.text umbenennen)
Beispiel: ForEach remote "dir:data*" do "RemoteRmDir '$dir'"
(Alle Verzeichnisse löschen, die mit 'data' beginnen)
Beispiel: ForEach remote "*.html" do "LogToFile 'files.out', '$file'"
(Die Namen aller html Dateien am Server in die Datei files.out schreiben.)
Siehe auch: Suchmuster für Datei/Ordner, Get, GetDir, RemoteExec, RemoteRename, RemoteDelete, RemoteRmDir.
← Zurück zu Skript-Befehle