ZOC Terminal ist ein professioneller SSH Client und Terminal-Emulator für Windows und macOS.
PyroBatchFTP Online Hilfe Thema:

Skript-Befehle → Makros

Die PyroBatchFTP Skript-Sprache bietet zwar keine Variablen, aber es ist möglich Makros auf der Kommandozeile zu definieren oder Platzhalter für Datum und Uhrzeit in den Skripten zu benutzen.

 

Wenn Sie ein Makro auf der Kommandozeile angeben, z.B. /D:name=login001 /D:pass=secret, können Sie diese Werte innerhalb von Befehlen in Ihren Skripten nutzen. Dazu geben Sie den Namen des Makros in $() an, z.B.
 
Beispiel:  Connect server01, $(name), $(pass)

 

Darüberhinaus bietet PyroBatchFTP die folgenden vordefinierten Makros: $(date), $(day), $(month), $(monthname) (3stellig, engl.), $(year), $(year2) (2stellig), $(time), $(hour), $(minute) und $(second), $(dayofweek) (einstellig 0-6 für So-Sa), $(dayofweekstr3) (drei Zeichen engl., Sun, Mon, etc.).. Damit können z.B. Dateinamen basierend auf dem aktuellen Datum zu bilden, z.B.:
 
Beispiel:  Put "sales.dat", "sales$(year)$(month)$(day).dat"

Zusätzlich zur lokalen Uhrzeit gibt es noch Makros auf Basis UTC/GMT (Greenwichzeit) gmt.time, gmt.hour, gmt.minute, gmt.second.

Weiterhin können Sie Namen bilden, die auf dem gestrigen und morgigen Datum basieren, indem Sie yesterday. oder tomorrow. zum den Datumsbegriffen hinzufügen, e.g. $(yesterday.day) or $(tomorrow.month) etc.:
 
Beispiel:  Get "access_$(yesterday.year)$(yesterday.month)$(yesterday.day).log"

 

Außerdem stehen mit $(lasterror) und $(lastresult) der letzte aufgetretene Fehler bzw. das Ergebnis des vorherigen Befehls zur Verfügung.

 

Makros können auch verwendet werden, um Teile des Programmes von der Ausführung auszuschließen. PyroBatch unterstützt zwar keine Entscheidungsbefehle oder Schleifen, jedoch kann - ähnlich wie in C/C++ Programmen - ein Teil des Programmes abhängig davon ob ein Makro definiert ist oder nicht, auskommentiert werden. Im Beispiel unten werden die Dateien sales/expenses nur dann übertragen, wenn beim Start von PyroBatchFTP per Kommandozeile /D:SENDSALES und/oder /D:SENDEXPENSES angegeben wurde. Andernfalls werden die Programmteile zwischen #ifdef/#ifndef und #endif wie Kommentar behandelt:


 

 Connect ...
 #ifdef SENDSALES
 Put "oldsales.dat"
 Put "newsales.dat"
 RemoteChDir ".."
 #endif
 #ifdef EXPENSES
 Put "oldexpenses.dat"
 Put "newexpenses.dat"
 #endif
 Disconnect
 Exit

 
← Zurück zu Skript-Befehle