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:
#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