The Bat! Hilfe

Ordner (6)
Vorlagen (8)
Makros (13)

XMP Makros

  • Bertiebssystem
  • Dateien und Ordner
  • Datum und Uhrzeit
  • Dialoge und Meldungen
  • IDN Internationale Domains
  • Nachrichten und Header
  • Zeichenketten
  • Sonstige

  • Bertiebssystem

    Makro Beschreibung
    %XMP_Beep(Frequenz, Dauer) Gibt einen Ton mit der angegebenen "Frequenz" und "Dauer" aus. Das Attribut "Frequenz" muss im Bereich von 37 und 32.767 liegen. "Dauer" bezeichnet die Dauer des Tones in Millisekunden.
    Beispiel:
    %XMP_Beep(300,300)%
    %XMP_Beep(200,150)%
    %XMP_Beep(100,400)%
    %XMP_Envir(Umgebungsvariable) Gibt den Inhalt der "Umgebungsvariable" aus. In der Konsole erhält man mit dem Befehl "SET" eine Liste mit allen verfügbaren Umgebungsvariablen.
    Beispiel:
    XMP_Envir("OS")
    XMP_Envir("WinDir")
    Ausgabe:
    Windows_NT
    C:\WINNT
    %XMP_Host2IP([Hostname]) Ermittelt zum angegebenen "Hostnamen" die IP-Adresse. Wird "Hostname" nicht angegeben, wird die IP-Adresse des lokalen Rechners zurückgegeben. Eine Netzwerk- bzw. Internetverbindung kann erforderlich sein. Wird der Host nicht gefunden, kann die Vorlage kurz (ca. 2 Sekunden) blockieren.
    Beispiel:
    %XMP_Host2IP
    %XMP_Host2IP("gaijin1")
    %XMP_Host2IP("gaijin2")
    Ausgabe:
    192.168.1.1
    192.168.1.1
    192.168.1.2
    %XMP_IsUserAdmin Diese Makro gibt den Wert "1" zurück, wenn der aktuelle Benutzer Administratorrechte hat, ansonten wird "0" zurückgegeben.
    %XMP_KbdLayout([Layout]) Ermittelt oder setzt das aktuelle Tastaturlyout. Wird kein "Layout" als Parameter angegeben, wird das aktuelle Tastaturlyout zurückgegeben. Wird "Layout" angegeben, wird das Tastaturlayout gesetzt, die Rückgabe ist im positiven Fall ein leerer String.
    Das Tastaturlayout bleibt während der gesamten Arbeitssitzung mit The Bat! eingestellt.
    Als "Layout" wird grundsätzlich ein hexadezimaler Wert erwartet, wobei bei den Hexadezimalwerten führende Nullen weggelassen werden können. Der Rückgabewert ist immer ein 8-stelliger Hexadezimalwert.
    An Stelle des hexadezimalen Wertes kann auch eine Sprachabkürzung verwendet werden. Es werden alle von Microsoft definierten Abkürzungen unterstützt. Damit die Auswahl des Tastaturlayouts einfacher wird, werden auch Alias-Namen unterstützt, die eigentlich für Sprachen und nicht für Tastaturbelegungen setehen. Darunter fallen alle von The Bat! verwendeten Sprachabkürzungen und einige sonst gebräuchlichen Abkürzungen, wie z.B. "de" für Deutsch oder "en" für Englisch. Die vollständige Liste ist im Anhang "Sprach-IDs" enthalten.
    Beispiel:
    Layout: %XMP_KbdLayout
    %XMP_KbdLayout("409")%
    Layout: %XMP_KbdLayout
    Ausgabe (mit Testeingabe):
    Test äöüÄÖÜ
    Layout: 00000407
    Layout: 00000409
    Test ';[":{
    %XMP_Process("E", Prozess)
    %XMP_Process("L", [Trennzeichen])
    Zeigt eine Liste aller ausgeführten Prozesse an.
    Als erster Parameter wird entweder "E" oder "L" erwartet.
    Die Option "E" bewirkt, dass nach dem angegebenen "Prozess" gesucht wird. Wird der Prozessname gefunden, wird "1" zurückgegeben, aonsonsten "0". Die Groß- und Kleinschreibung wird nicht beachtet. Es muss der gesamte Prozessname angegeben werden. Die Dateinamenerweiterung ".EXE" kann auch weggelassen werden.
    Wird "L" als erster Parameter angegeben, wird eine Liste mit allen Prozessnamen ausgegeben. Das Argument "Trennzeichen" legt das Trennzeichen für die Prozessnamen fest. Standardmäßig wird ein Windows-Zeilenumbruch verwendet.
    Beispiel:
    %XMP_Process("L")
    %XMP_Process("L","|")
    %XMP_Process("E","TheBat.exe")
    Layout: %XMP_KbdLayout
    Ausgabe (gekürzt):
    [IDLE]
    System
    SMSS.EXE
    CSRSS.EXE
    WINLOGON.EXE
    thebat.exe
    [IDLE]|System|SMSS.EXE|CSRSS.EXE|WINLOGON.EXE|...|thebat.exe
    %XMP_RegGet(Schlüssel, [Standard]) Liest einen Wert aus der Windows Registrierungsdatenbank aus.
    Der "Schlüssel" wird im Format "ROOT\Schlüssel\Eintrag" angegeben.
    Als Root-Schlüssel kann sowohl die Kurzversion, als auch die lange Schreibweise verwendet werden:
    CR HKEY_CLASSES_ROOT
    CU HKEY_CURRENT_USER
    LM HKEY_LOCAL_MACHINE
    US HKEY_USERS
    PD HKEY_PERFORMANCE_DATA
    CC HKEY_CURRENT_CONFIG
    DD HKEY_DYN_DATA
    Unter "Standard" kann ein Text vorgegeben werden, der bei einem Fehlerfall zurückgegeben wird, etwa dann, wenn der Eintrag nicht vorhanden ist.
    Es können Strings, Expanded-Stings, Multi-Strings und DWord-Werte (vollständig bis 0xFFFFFFFF!) ausgelesen werden.
    Beispiel:
    %XMP_RegGet("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows %-
    NT\CurrentVersion\ProductName")
    %XMP_RegGet("LM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
    %XMP_RegGet("LM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate")
    Ausgabe:
    Microsoft Windows 2000
    Microsoft Windows 2000
    1022448564
    %XMP_RegSet(Schlüssel, [Wert], [Format]) Schreibt einen "Wert" in die Windows Registrierungsdatenbank aus.
    Der "Schlüssel" wird im Format "ROOT\Schlüssel\Eintrag" angegeben.
    Als Root-Schlüssel kann sowohl die Kurzversion, als auch die lange Schreibweise verwendet werden:
    CR HKEY_CLASSES_ROOT
    CU HKEY_CURRENT_USER
    LM HKEY_LOCAL_MACHINE
    US HKEY_USERS
    PD HKEY_PERFORMANCE_DATA
    CC HKEY_CURRENT_CONFIG
    DD HKEY_DYN_DATA
    Unter "Format" kann das zu verwendete Datenformat angegeben werden. Standard ist "S" für String. Gültige Datenformate sind:
    S String
    E Expanded-String
    M Multi-String
    D DWord
    Beispiel:
    %XMP_RegSet("CU\Test\TestString","Hallo")
    %XMP_RegSet("CU\Test\TestDWord","123","D")
    Wird der Wert erfolgreich geschrieben, wird "1" zurückgegeben, im Fehlerfall ist die Rückgabe "0".
    %XMP_Run(Programm, [Fenster]) Führt das angegebene Windows-"Programm" aus.
    Mit "Fenster" kann die Fensterform angegeben werden. Gültige Werte sind:
    MIN -> minimiertes Fenster
    MAX -> maximiertes Fenster
    HIDE -> verborgenes Fenster
    Wird "Fenster" nicht angegeben, wird das Programm in normaler Größe angezeigt.
    Beispiel:
    %XMP_Run("calc")
    %XMP_Run("explorer","max")
    %XMP_RunCmd(Befehl, [NoConvert], [Timeout]) Führt den angegebenen Konsolen-"Befehl" aus und gibt die Ausgabe als Ergebnis zurück. Pfadangaben müssen im DOS-Format (mit "8+3" Dateinamen) übergeben werden!
    Hat "NoConvert" den Wert "1", wird die Ausgabe nicht in das ANSI-Format konvertiert. Einige Programme geben die Daten bereits im ANSI-Format aus.
    Das "Timeout" legt die maximale Wartezeit in Millisekunden fest, bis die Programmausführung abgebrochen wird. Der Standardwert sind 5000 Millisekunden (5 Sekunden). Dieser Wert kann jedoch auch wesentlich höher gesetzt werden, wie etwa dann, wenn eine Datei komprimiert oder dekomprimiert werden soll.
    Beispiel:
    %XMP_RunCmd("ver")
    Ausgabe:
    Microsoft Windows 2000 [Version 5.00.2195]
    %XMP_SetClipB(Text) Speichert den unter "Text" angegebenen Text in der Zwischenablage von Windows. Mit dem internen Makro von The Bat! "%CLIPBOARD" kann die Zwischenablage ausgelesen werden.
    Beispiel:
    %XMP_SetClipB("Hallo")
    Das Makro "XMP_SetClipB" hat keien Rückgabewert.
    %XMP_SendKeys(Tasten, [Warten]) Sendet die angegebenen "Tasten" oder Tastenkombinationen an die aktive Anwendung. Im Falle einer Schnellvorlage ist dies der Nachrichteneditor.
    Wird das Makro in anderen Vorlagen verwendet, wie etwa in einem Filter, kann es zu unerwünschten Ergebnissen kommen!
    Der Parameter "Warten" ist optional und legt mit den Werten "1" oder "0" fest, ob auf die Verarbeitung der Tasten gewartet werden soll (Wert "1").
    Für den Parameter "Tasten" wird folgende Syntax (ähnlich wie SendKeys von VB) verwendet:
    + -> Shift (Hochstelltaste)
    ^ -> Control (Steuerungstaste)
    % -> Alt
    ~ -> Return (Enter)
    ( und ) -> Zusammenfassen von Tasten
    { und } -> Kennzeichnung von Tastennamen
    Mit runden Klammern können mehrere Tasten zusammengefasst werden: "+ab" entspricht der Tastenkombination "Shift+a, b", wohingegen "+(ab)" der Tastenkombination "Shift+a, Shift+b" entspricht.
    Tastennamen, wie etwa "BACKSPACE" müssen in geschweiften Klammern geschrieben werden. Gültige Tastennamen sind:
    BKSP, BS, BACKSPACE, BREAK, CAPSLOCK, CLEAR, DEL, DELETE, DOWN, END, ENTER, ESC, ESCAPE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, HELP, HOME, INS, LEFT, NUMLOCK, PGDN, PGUP, PRTSC, RIGHT, SCROLLLOCK, TAB, UP
    Text im Editor:
    Hallo,
    Test
    Beispiel:
    %XMP_SendKeys("^(ac{END})",1)
    %XMP_QuoteAdd("%CLIPBOARD")%-
    Ausgabe:
    Hallo
    Test
    > Hallo
    > Test
    %XMP_SysInfo(Text) Ermittelt Systeminformationen und ersetzt im "Text" bestimmte Tags mit diesen.
    Folgende Tags werden erkannt:
    $clv$ -> CPU Prozessor-Level
    $cmn$ -> CPU-Modell
    $cnr$ -> Anzahl der CPUs
    $cns$ -> Name der CPU
    $csp$ -> Geschwindigkeit der CPU
    $ctp$ -> CPU-Typ
    $cvn$ -> Hersteller der CPU
    $lhn$ -> Lokaler Hostname
    $lip$ -> Lokale IP-Adresse
    $maf$ -> Verfügbare Größe der Auslagerungsdatei in Megabyte
    $map$ -> Verfügbarer physikalischer Speicher in Megabyte
    $mav$ -> Verfügbarer virtueller Speicher in Megabyte
    $mml$ -> Speicherauslastung in Prozent
    $mtf$ -> Maximale Größe der Auslagerungsdatei in Megabyte
    $mtp$ -> Gesamter physikalischer Speicher in Megabyte
    $mtv$ -> Gesamter virtueller Speicher in Megabyte
    $osp$ -> Plattform
    $pcn$ -> Computername
    $sed$ -> Systemlaufzeit in Tagen
    $seh$ -> Systemlaufzeit in Stunden
    $sen$ -> Systemlaufzeit in Minuten
    $ses$ -> Systemlaufzeit in Sekunden
    $suh$ -> Stunden-Wert der Systemlaufzeit
    $sun$ -> Minuten-Wert der Systemlaufzeit
    $sus$ -> Sekunden-Wert der Systemlaufzeit
    $tdn$ -> Name der Sommerzeit für die eingestellte Zeitzone
    $tsn$ -> Name der Winterzeit für die eingestellte Zeitzone
    $tzn$ -> Name der eingestellten Zeitzone
    $usn$ -> Benutzername
    $wcn$ -> Bezeichnung des Betriebssystems
    $wvm$ -> Hauptversion des Betriebssystems
    $wvs$ -> Nebenversion des Betriebssystems
    $wvb$ -> Build-Nummer des Betriebssystems
    $wvc$ -> CSD-Version des Betriebssystems
    Beispiel:
    %XMP_SysInfo("Windows $wcn$ ($osp$ $wvm$.$wvs$%-
    Build $wvb$ - $wvc$)"
    %XMP_SysInfo("CPU: $cvn$ $cmn$ ($ctp$)")
    ---
    Das System läuft seit: %XMP_SysInfo("$sen$ Minuten")
    (%XMP_SysInfo("$sed$ Tage, $suh$ Stunden, $sun$ %-
    Minuten, $sus$ Sekunden."))
    Ausgabe:
    Windows 2000 (NT 5.0 Build 2195 - Service Pack 4)
    CPU: Intel Pentium 4 (586)
    ---
    Das System läuft seit: 764 Minuten
    (0 Tage, 12 Stunden, 44 Minuten, 10 Sekunden.)

    0  

    Dateien und Ordner

    Makro Beschreibung
    %XMP_AttrGet(Dateiname) Ermittelt die Attribute der angegebenen Datei.
    Als Attribute werden folgende Werte zurückgegeben:
    R -> Schreibgeschützt
    A -> Archiv
    H -> Versteckt
    S -> System
    D -> Verzeichnis
    Wird eine leere Zeichenkette zurückgegeben, besitzt die Datei keine Attribute. Im Fehlerfall wird ein Stern ("*") zurückgegeben.
    Beispiel:
    %XMP_AttrGet("C:\Boot.ini")
    Ausgabe:
    HS
    %XMP_AttrSet(Dateiname, [Attribute]) Setzt die Attribute der angegebenen Datei.
    Als Attribute werden folgende Werte erkannt:
    R -> Schreibgeschützt
    A -> Archiv
    H -> Versteckt
    S -> System
    Die Reihenfolge und die Groß- und Kleinschreibung wird bei den Attributen nicht beachtet. Werden Zeichen angegeben, die nicht in der oben angeführten Liste enthalten sind, werden sie ignoriert.
    Werden keine Attribute angegeben, werden alle Attribute entfernt.
    Konnten die Attribute gesetzt werden, wird "1" zurückgegeben, sonst "0".
    Beispiel:
    %XMP_AttrSet("C:\Test.txt","HSA")
    %XMP_DirCreate(Pfad) Erstellt den angegebenen "Pfad". Wurde der Pfad erfolgreich erstellt oder existierte es bereits, wird der Wert "1" zurückgegeben. Kann der Pfad nicht erstellt werden, wird "0" zurückgegeben.
    Beispiel:
    %_Tmp='%XMP_DirCreate("C:\Test1\TEST2\test3")'%-
    Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_DirCreate", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.
    %XMP_DirExist(Verzeichnis) Prüft, ob ein "Verzeichnis" existiert. Wurde das Verzeichnis gefunden, wird der Wert "1" zurückgegeben, sonst "0".
    Beispiel:
    %_Tmp='%XMP_DirExist("C:\Windows\System32")'%-
    Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_DirExist", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.
    %XMP_FileAddLn(Datei, Text) Fügt der "Datei" die unter "Text" angegebenen Zeilen hinzu.
    Das Argument "Text" kann auch Zeilenumbrüche enthalten. Ist die Datei nicht vorhanden, wird sie erstellt.
    Beispiel:
    %XMP_FileAddLn("C:\Test.txt","%XMP_StrC('Zeile1\r\nZeile2\r\nZeile3')")
    Inhalt der Datei:
    ...
    Zeile1
    Zeile2
    Zeile3
    %XMP_FileCopy(Quelle, Ziel) Kopiert die Datei(en), die unter "Quelle" angegeben sind in das "Ziel"-Verzeichnis. Existiert die Datei im Zielverzeichnis bereits, wird sie ohne Rückfrage überschrieben.
    Wurden die Dateien/Ordner erfolgreich kopiert, wird der Wert "1" zurückgegeben, sonst "0".
    Um mehrere Dateien gleichzeitig zu kopieren, können die Dateinamen mit einem Pipe-Zeichen ("|") von einander getrennt werden. Weiters werden die Wildcard-Zeichen ("?" und "*") unterstützt.
    Beispiel:
    %_Tmp='%XMP_FileCopy("C:\Test.txt","C:\Windows\")'%-
    Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileCopy", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.
    %XMP_FileDel(Datei) Löscht die angegebene "Datei" ohne Rückfrage. Wurde die Datei erfolgreich gelöscht, wird der Wert "1" zurückgegeben, sonst "0".
    Um mehrere Dateien gleichzeitig zu löschen, können die Dateinamen mit einem Pipe-Zeichen ("|") von einander getrennt werden. Weiters werden die Wildcard-Zeichen ("?" und "*") unterstützt.
    Beispiel:
    %_Tmp='%XMP_FileDel("C:\Test.txt")'%-
    Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileDel", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.
    %XMP_FileExist(Datei) Prüft, ob eine "Datei" existiert. Wurde die Datei gefunden, wird der Wert "1" zurückgegeben, sonst "0".
    Beispiel:
    %_Tmp='%XMP_FileExist("C:\Test.txt")'%-
    Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileExist", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.
    %XMP_FileInfo(Datei, Info) Ermittelt Informationen aus dem VERSIONINFO-Block einer EXE-Datei oder einer DLL-Datei.
    Das Argument "Info" bezieht sich auf den Namen der gespeicherten Informationen. Es bestehen keine Einschränkungen hinsichtlich des Namens. Wird eine Information nicht gefunden, wird nichts zurückgegeben.
    Beispiele für "Info":
    • CompanyName
    • FileDescription
    • FileVersion
    • InternalName
    • LegalCopyright
    • OriginalFilename
    • ProductName
    • ProductVersion
    Fallweise können auch noch weitere Werte abgefragt werden.
    %XMP_FileInUse(Dateiname) Gibt an, ob die im Parameter "Dateiname" angegebene Datei gerade in Verwendung ist. Das Makro gibt "1" zurück, wenn die Datei verwendet wird, ansonsten wird "0" zurückgegeben.
    Beispiel:
    %XMP_FileInUse("C:\InUse.txt")
    %XMP_FileInUse("C:\NotInUse.txt")
    Ausgabe:
    1
    0
    %XMP_FileLines(Datei, [Start], [Anzahl],
    [Konvertierung])
    Liest aus der "Datei" ab der Zeile "Start" eine bestimmte "Anzahl" von Zeilen aus und gibt diese als Ergebnis zurück.
    Wird "Start" weggelassen, wird die erste Zeile als Beginn angenommen. Der Standardwert für "Anzahl" ist "1". Wird "0" als Anzahl übergeben, werden alle Zeilen bis zum Dateiende zurückgegeben.
    Der Aufruf des Makros nur mit einem Dateinamen gibt somit alle Zeilen in der Datei aus.
    Für den Parameter "Konvertierung" kann eine "1" angegeben werden, wenn DOS-Dateien gelesen werden sollen. Der Standard ist hier "0" für Windows-Dateien.
    Beispiel:
    %XMP_FileLines("C:\Win.txt",2,2)
    Ohne Konvertierung: %XMP_FileLines("C:\Dos.txt",2,1)%-
    Mit Konvertierung: %XMP_FileLines("C:\Dos.txt",2,1,1)
    Ausgabe:
    2 Abc ÄäÖöÜü ß µ WIN
    3 Abc ÄäÖöÜü ß µ WIN

    Ohne Konvertierung: 2 Abc Ž„™”š• á æ DOS
    Mit Konvertierung: 2 Abc ÄäÖöÜü ß µ DOS
    %XMP_FileLnCnt(Datei) Ermittelt die Anzahl der Zeilen in der angegebenen "Datei".
    Wird die Datei nicht gefunden, wird eine leere Zeichenkette zurückgegeben.
    Beispiel:
    Lines="%XMP_FileLnCnt('C:\boot.ini')"
    Error="%XMP_FileLnCnt('C:\boot1.ini')"
    Ausgabe:
    Lines="5"
    Error=""
    %XMP_FileLong(Dateiname) Ermittelt den langen Dateinamen aus dem angegebenen kurzen Datei- oder Verzeichnisnamen.
    Beispiel:
    %XMP_FileLong("C:\WINDOWS\ANWEND~1\THEBAT~1\")
    Ausgabe:
    C:\WINDOWS\Anwendungsdaten\The Bat!\
    %XMP_FileMove(Quelle, Ziel) Verschiebt die Datei(en), die unter "Quelle" angegeben sind in das "Ziel"-Verzeichnis. Existiert eine Datei im Zielverzeichnis mit dem selben Namen bereits, wird sie ohne Rückfrage überschrieben.
    Wurden die Dateien/Ordner erfolgreich verschoben, wird der Wert "1" zurückgegeben, sonst "0".
    Um mehrere Dateien gleichzeitig zu verschieben, können die Dateinamen mit einem Pipe-Zeichen ("|") von einander getrennt werden. Weiters werden die Wildcard-Zeichen ("?" und "*") unterstützt.
    Beispiel:
    %_Tmp='%XMP_FileMove("C:\Test.txt","C:\Windows\")'%-
    Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileMove", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.
    %XMP_FileName(Dateiname, [Teil]) Gibt einen Teil eines "Dateinamens" zurück.
    Folgende "Teile" können extrahiert werden:
    N -> Dateiname mit Erweiterung (Standard)
    F -> Dateiname ohne Erweiterung
    E -> Dateinamenserweiterung
    D -> Laufwerksangabe
    P -> Pfadname, inklusive Laufwerksangabe
    V -> Pfadname, ohne Laufwerksangabe
    T -> Bezeichnung des Dateityps, wie er im Explorer angezeigt wird
    Beispiel:
    %XMP_FileName("C:\Windows\Explorer.exe")
    %XMP_FileName("C:\Windows\Explorer.exe","F")
    %XMP_FileName("C:\Windows\Explorer.exe","E")
    %XMP_FileName("C:\Windows\Explorer.exe","D")
    %XMP_FileName("C:\Windows\Explorer.exe","P")
    %XMP_FileName("C:\Windows\Explorer.exe","V")
    %XMP_FileName("C:\Windows\Explorer.exe","T")
    Ausgabe:
    Explorer.exe
    Explorer
    .exe
    C:
    C:\Windows\
    \Windows\
    Anwendung
    %XMP_FileOwner(Dateiname) Gibt den Besitzer der angegebenen Datei zurück.
    Beispiel:
    %XMP_FileOwner("C:\Boot.ini")
    %XMP_FileOwner("D:\Test.txt")
    Ausgabe:
    VORDEFINIERT\Administratoren
    NOBODY\Gaijin
    %XMP_FileShort(Dateiname) Ermittelt den kurzen Dateinamen (DOS-Dateinamen) der angegebenen Datei oder des angegebenen Verzeichnisses.
    Beispiel:
    %XMP_FileShort("C:\WINDOWS\Anwendungsdaten\The Bat!\Vorlagen\QT_Pack")
    Ausgabe:
    C:\WINDOWS\ANWEND~1\THEBAT~1\Vorlagen\QT_Pack
    %XMP_FileSize(Datei, [Einheit]) Ermittelt die Größe einer "Datei".
    Das Argument "Einheit" kann folgende Werte haben:
    K -> Kilobyte
    M -> Megabyte
    G -> Gigabyte
    Beispiel:
    %XMP_FileSize("C:\Test.dat","K") KB
    Ausgabe:
    321,72 KB
    %XMP_FileTime(Datei, Datum, [Format]) Ermittelt das angebene "Datum" einer "Datei".
    Das Argument "Datum" kann folgende Werte haben:
    A -> Datum des letzten Zugriffes
    C -> Datum und Uhrzeit der Erstellung
    M -> Datum und Uhrzeit der letzten Änderung
    Wird das optionale Argument "Format" weggelassen, wird das Datum im Format "dd.mm.yyyy hh:nn:ss" bzw. im Fall des letzten Zugriffes im Format "dd.mm.yyyy" ausgegeben.
    Die Formatangaben entsprechen denen von The Bat!
    Beispiel:
    %XMP_FileTime("C:\Test.txt","C","mm/dd/yyyy, hh:nn) Uhr
    %XMP_FileTime("C:\Test.txt","M")
    Ausgabe:
    08/15/2025, 17:27 Uhr
    15.08.2025 18:02:29
    %XMP_GetPath(Pfad) Ermittelt das mit "Pfad" benannte Verzeichnis.
    Folgende benannte "Pfade" sind verfügbar:
    TBWork -> Arbeitsverzeichnis von The Bat!
    WinDir -> Windows-Verzeichnis
    SysDir -> System-Verzeichnis
    MyDesktop -> Desktop-Verzeichnis des aktuellen Benutzers
    MyFiles -> Verzeichnis der "Eigene Dateien" des aktuellen Benutzers
    MyRecent -> Zuletzt verwendete Dateien des aktuellen Benutzers
    MyTemp -> Temporäres Verzeichnis des aktuellen Benutzers
    Zusätzlich können alle Namen der "Shell Folders" aus der Registry verwendet werden. Zum Beispiel sind hier Pfade wie "AppData", "Lokal Settings" und "Local AppData" eingetragen.
    Beispiel:
    %XMP_GetPath("TBWork")
    %XMP_GetPath("MyTemp")
    %XMP_GetPath("WinDir")
    %XMP_GetPath("MyFiles")
    %XMP_GetPath("Local Settings")
    Ausgabe:
    C:\Dokumente und Einstellungen\Gaijin\Anwendungsdaten\The Bat!\
    C:\Dokumente und Einstellungen\Gaijin\Lokale Einstellungen\Temp\
    C:\WINNT\
    C:\Dokumente und Einstellungen\Gaijin\Eigene Dateien\
    C:\Dokumente und Einstellungen\Gaijin\Lokale Einstellungen\
    %XMP_IniGet(Datei, Sektion, Eintrag, [Standard]) Liest einen Wert aus einer INI-Datei aus. Tritt ein Fehler auf, oder ist der Wert leer oder nicht vorhanden, wird der unter "Standard" angegebene Wert zurückgegeben.
    Wird "Standard" nicht angegeben, wird eine leere Zeichenkette angenommen.
    Die maximale Größe der auszulesenden Daten beträgt 10 KB.
    Beispiel:
    %XMP_IniGet("C:\Test.ini","Settings","Path")
    %XMP_IniSet(Datei, Sektion, Eintrag, Wert) Schreibt einen "Wert" in eine INI-Datei. Wird der Wert erfolgreich geschrieben, wird nichts zurückgegeben. Bei einem Fehler wird die Fehlermeldung ' *** Aktion nicht erfolgreich *** ' ausgegeben.
    Beispiel:
    %XMP_IniSet("C:\Test.ini","Settings","Path","C:\Test\")
    %XMP_TempDir Ermittelt das temporäre Verzeichnis des Betriebssystems.
    Beispiel:
    %XMP_TempDir
    Ausgabe:
    C:\DOKUME~1\Gaijin\LOKALE~1\Temp\
    %XMP_TempFile Ermittelt einen freien Dateinamen für eine temporäre Datei.
    Beispiel:
    %XMP_TempFile
    Ausgabe:
    C:\DOKUME~1\Gaijin\LOKALE~1\Temp\XMP4C6.tmp

    0  

    Datum und Uhrzeit

    Makro Beschreibung
    %XMP_Age(Geburtsdatum, [Datum]) Ermittelt die Anzahl der vollen Jahre zwischen dem "Geburtsdatum" und dem angegebenen "Datum". Wird der zweite Datumswert nicht angegeben, wird das aktuelle Datum verwendet.
    Beispiel:
    %XMP_Age("15.01.1960", "14.01.2006")
    %XMP_Age("15.01.1960", "15.01.2006")
    Ausgabe:
    45
    46
    %XMP_TimeAdd(Zeit, Wert, [Art],
    [Ausgabeformat])
    Fügt einer "Zeit" (Datum und Uhrzeit) einen bestimmten "Wert" hinzu. Durch die Angabe eines negativen Wertes, wird die Zeit abgezogen. Negative Werte müssen aber in Anführungszeichen gesetzt werden!
    Die "Zeit" muss im Format "dd.mm.yyyy hh:nn:ss" oder "dd.mm.yyyy" angegeben werden!
    Ist "Art" nicht angegeben, werden Tage hinzugefügt. Das Argument "Art" kann folgende Werte haben:
    D -> Tage (Standard)
    W -> Wochen
    M -> Monate
    Y -> Jahre
    H -> Stunden
    N -> Minuten
    S -> Sekunden
    Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".
    Beispiel:
    %XMP_TimeAdd("12.10.2004 19:04:23",3)
    %XMP_TimeAdd("12.10.2004 19:04:23",3,"H")
    %XMP_TimeAdd("12.10.2004 19:04:23",3,"N","mm/dd/yyyy hh:nn")
    %XMP_TimeAdd("12.10.2004 19:04:23","-3")
    Ausgabe:
    15.10.2004 19:04:23
    12.10.2004 22:04:23
    10/12/2004 19:07
    09.10.2004 19:04:23
    %XMP_TimeBeats([Zeit]) Ermittelt die aktuelle Internetzeit, bzw. die Internetzeit basierend auf der angegebenen "Zeit".
    Die "Zeit" muss in einem gültigen Zeitformat, z.B. "hh:nn", "hh:nn:ss", oder "dd.mm.yyyy hh:nn:ss", angegeben werden und muss in UTC (GMT) Zeit vorliegen!
    Beispiel:
    %XMP_TimeBeats
    %XMP_TimeBeats("20:15")
    %XMP_TimeBeats("12.10.2004 11:00:00")
    %XMP_TimeBeats("24.12.2004 11:00:00")
    Ausgabe:
    040
    885
    500
    500
    %XMP_TimeBias Ermittelt den Unterschied zwischen der eingestellten Zeitzone und der UTC-Zeit und gibt diesen in einem für E-Mails üblichen Format (+/-hhnn) zurück.
    Beispiel:
    %XMP_TimeBias
    Ausgabe:
    +0200
    %XMP_TimeCalc(Zeit, Bias, [LokalVonNach],
    [Ausgabeformat])
    Errechnet eine neue Zeit auf Grund des angegebenen "Bias" aus der angegebenen "Zeit".
    Der "Bias" kann entweder im Format "+/-hhnn" angegeben werden, oder als Abkürzung des Zeitzonennamens, z.B. "CEST" oder "MEZ". Eine Liste mit den unterstützten Zeitzonen ist auf der Seite "Zeitzonen" angeführt.
    Das Argument "LokalVonNach" gibt an, ob die neue Zeit von der lokalen Zeit oder in die lokale Zeit errechnet werden soll. Der Standard ist von der lokalen Zeit in eine andere Zeit.
    Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".
    Beispiel:
    %XMP_TimeCalc("19:45:00","+0200",0,"hh:nn:ss")
    %XMP_TimeCalc("19:45:00","+0200",1,"hh:nn:ss")
    %XMP_TimeCalc("19:45:00","CEST",1,"hh:nn:ss")
    Ausgabe:
    17:45:00
    21:45:00
    21:45:00
    %XMP_TimeDiff(Zeit1, [Zeit2], [Art], [Format]) Ermittelt eine Zeitspanne zwischen der "Zeit1" und der "Zeit2".
    Die "Zeit" muss im Format "dd.mm.yyyy hh:nn:ss", "dd.mm.yyyy" oder "hh:nn:ss" angegeben werden!
    Ist die "Zeit2" kleiner als die "Zeit1" wird der Zeitunterschied ebenfalls in positiven Zahlen dargestellt! Wird die "Zeit2" weggelassen, wird die aktuelle Zeit verwendet verwendet.
    Ist "Art" nicht angegeben, wird die Anzahl der Tage ermittelt.
    Hat das Argument "Art" den Wert "X", werden die verstrichenen Tage, Stunden, Minuten und Sekunden berechnet und mit den unter "Format" angegebenen Zeichenfolgen dargestellt.
    Das Argument "Format" beinhaltet die Bezeichnungen für die einzelnen Angaben in der Einzahl und in der Mehrzahl. Zusätzlich muss ein Trennzeichen angegeben werden. Die einzelnen Bezeichnungen müssen mit einem Pipe-Zeichen "|" voneinander getrennt werden. Aus dem Beispiel ist der Aufbau und die Funktionsweise leicht ersichtlich.
    Das Argument "Y" ist nicht zur Altersberechnung geeignet, da hier Schaltjahre mit Nachkommastellen zur Berechnung verwendet, aber nur ganze Jahreszahlen zurückgegeben werden. Zur Altersberechnung sollte die Funktion %XMP_Age verwendet werden.
    Das Argument "Art" kann eines der folgenden Werte haben:
    D -> Tage (Standard)
    W -> Wochen
    M -> Monate
    Y -> Jahre
    H -> Stunden
    N -> Minuten
    S -> Sekunden
    X -> Tage, Stunden, Minuten, Sekunden
    Beispiel:
    %XMP_TimeDiff("19:45:00","21:53:00","H")
    %XMP_TimeDiff("12.10.2004","24.12.2004")
    %XMP_TimeDiff("01.01.2004","12.10.2004")
    ---
    %XMP_TimeDiff("01.01.2004 12:00:00","08.01.2004 11:21:32","X")
    %XMP_TimeDiff("01.01.2004","12.10.2004 23:07:11","X",%-
    " Tag| Tage| Std.| Std.| Min.| Min.| Sec.| Sec.|, ")
    %XMP_TimeDiff("01.01.2004","19.08.2004 10:30:01","X",%-
    " Tag | Tage |h|h|m|m|s|s|")
    %XMP_TimeDiff("01.01.2004 12:00:00","08.01.2004 12:21:00","X")
    Ausgabe:
    1
    2
    73
    285
    ---
    6 Tage, 23 Stunden, 21 Minuten, 32 Sekunden
    285 Tage, 23 Std., 7 Min., 11 Sec.
    231 Tage 10h30m1s
    7 Tage, 21 Minuten
    %XMP_TimeParse(ZeitString, [UTC],
    [Ausgabeformat])
    Ermittelt aus einem "ZeitString", wie dieser in den Headerzeilen einer Mail angegeben ist, eine formatierbare Zeit.
    Hat "UTC" den Wert "1", wird vom enthaltenen Bias die UTC-Zeit errechnet, sonst wird die Lokalzeit, wie diese im "ZeitString" enthalten ist, ausgegeben. Eine Liste mit den unterstützten Zeitzonen ist auf der Seite "Zeitzonen" angeführt.
    Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".
    Beispiel:
    %XMP_TimeParse("Tue, 5 Oct 2024 13:44:26 +0200 (CEST)")
    %XMP_TimeParse("Tue, 5 Oct 2024 13:44:26 +0200 (CEST)",1)
    Originalstring:
    Tue, 5 Oct 2024 13:44:26 +0200 (CEST)
    Ausgabe:
    05.10.2024 13:44:26
    05.10.2024 11:44:26
    %XMP_TimeQuart([Datum], [Ausgabe]) Ermittelt aus einer "Datum", je nach dem Wert von "Ausgabe" entweder das Quartal oder die Jahreszeit.
    Wird kein "Datum" angegeben oder ist der Wert ungültig, wird das aktuelle Datum verwendet.
    Hat "Ausgabe" den Wert "1", wird die Jahreszeit als Text zurückgegeben, hat "Ausgabe" den Wert "0" oder wird es nicht angegeben, wird das Quartal zurückgegeben.
    Beispiel:
    %XMP_TimeQuart("20.3.2004"). Quartal
    %XMP_TimeQuart("5.4.2004"). Quartal
    %XMP_TimeQuart("20.3.2004",1)
    %XMP_TimeQuart("21.3.2004",1)
    Ausgabe:
    1. Quartal
    2. Quartal
    Winter
    Frühling

    0  

    Dialoge und Meldungen

                                                   
    Makro Beschreibung
    %XMP_DlgFolder([Text], [Erweitert], [Auswahl]) Zeigt den Dialog zum Auswählen eines Ordners an und gibt den ausgewählten Pfandnamen zurück.
    Mit "Text" kein ein Text angegeben werden, der im Dialog angezeigt wird.
    Der Parameter "Erweitert" legt fest, welche Form der Dialog haben soll. Hat der Parameter den Wert 1, wird die neue Dialogform verwendet und es kann unter anderem ein neues Verzeichnis erstellt werden. Der Stadardwert ist "0", welcher die einfache Dialogform bestimmt.
    Mit dem Parameter "Auswahl" kann ein Verzeichnis angegeben werden, welches im Dialog standardmäßig ausgewählt wird.
    Während der Dialog angezeigt wird, blockiert The Bat! NICHT! Der Text kann bearbeitet werden und der Cursor kann neu positioniert werden.
    Beispiel:
    Verzeichnis: %XMP_DlgFolder("Wählen Sie ein Verzeichnis aus...",1)
    Verzeichnis: %XMP_DlgFolder("Wählen Sie den Windows-Ordner aus...",0,"C:\Windows")
    %XMP_DlgInput([Beschreibung], [Vorgabetext]) Öffnet eine Dialogbox, die eine Texteingabe anzeigt und den eingegebenen Text zurückgibt.
    Das Argument "Beschreibung" legt den Text fest, der als Eingabeaufforderung angezeigt werden soll. Es können maximal 3 Zeilen angezeigt werden. Damit auch Zeilenumbrüche und sonstige Sonderzeichen eingegeben werden können, muss die "Beschreibung" im selben Format angegeben werden, wie im Makro "%XMP_StrC".
    Das Argument "Vorgabetext" legt den Wert fest, der im Textfeld bereits vorgegeben ist.
    Es können maximal 1024 Zeichen eingegeben werden.
    Nach der Texteingabe kann an Stelle der "Ok"-Schaltfläche auch die Eingebetaste gredrückt werden. Achtung: Die ESC-Taste bricht den Dialog nicht ab, sondern hat den selben Effekt, wie die Eingabetaste!
    Wird auf die Schaltfläche "Cancel" gedrückt, wird eine Leere Zeichenfolge zurückgegeben.
    Während der Dialog angezeigt wird, blockiert The Bat! NICHT! Der Text kann bearbeitet werden und der Cursor kann neu positioniert werden. Der Dialog bleibt allerdings das oberste Fenster.
    Beispiel:
    Name: %XMP_DlgInput("Name:\w(Zeile2)")
    Tel.: %XMP_DlgInput("Telefonnummer:","555-123456789")
    Bei der Eingabe von "Karl Huber" im ersten Dialog, und Bestätigen der Textvorgabe im zweiten Dialog, ergibt sich folgende Ausgabe:
    Beispiel-Ausgabe:
    Name: Karl Huber
    Tel.: 555-123456789
    %XMP_DlgOpen([Mehrfachauswahl], [Titel],
    [Verzeichnis], [Filter], [Optionen])
    Zeigt den Datei-Öffnen Dialog von Windows an und gibt die ausgewählten Dateinamen zurück.
    Alle Argumente für dieses Makro sind optional. Ein Aufruf ohne Prameter bewirkt die Anzeige eines Dialoges mit den Standard-Parametern und ermöglicht die Auswahl einer Datei.
    Hat das Argument "Mehrfachauswahl" den Wert "1", können mehrere Dateien ausgewählt werden. Die einzelnen Dateinamen (samt Pfadangabe) werden durch Pipe-Zeichen (|) voneinander getrennt.
    "Titel" gibt den Fenstertitel an, der Standardwert ist "Open file...".
    Das Argument "Verzeichnis" bestimmt das aktuelle Verzeichnis im Dialog.
    Mit "Filter" können eigene Filter vorgegeben werden. Standardmäßig werden alle Dateien (*.*) angezeigt. Der Filter hat das Format "Beschreibung|Maske". Nach dem Pipe-Zeichen wird die Maske für die Dateie, so wie unter Windows üblich, angegeben, z.B.: "*.txt" für alle Textdateien.
    Das Argument "Optionen" bestimmt das Verhalten des Dialogs. Folgende Optionen sind möglich:
    F-> Die Datei muss existieren.
    P -> Das Verzeichnis muss existieren.
    C -> Beim Erstellen einer neuen Datei nachfragen.
    Die Vorgabe ist "FP", falls dieser Parameter nicht angegeben wird.
    %XMP_FrmDlg(Dateiname, [Titel], [Breite],
    [Höhe], [GrößeÄnderbar], [Maximierbar])
    Mit diesem Makro kann ein benutzerdefiniertes Eingabeformular realisiert werden. Dabei können Vorgabedaten per Makro ("%XMP_FrmDlgDef") übergeben werden. Nach dem Ausfüllen und der Bestätigung können die eingetragenen Daten oder ausgewählten Einträge wieder per Makro ("%XMP_FrmDlgRet") abgefragt und in der Schnellvorlage weiterverarbeitet werden.
    Als erster Parameter muss der "Dateiname" zur Forumlardatei (HTML-Datei) angegeben werden, die das anzuzeigende Formular enthält. Der Parameter "Titel" legt den Titel für das Formularfenster fest. Mit den Parametern "Breite" und "Höhe" können die Dimensionen des Formularfensters bestimmt werden. Wird unter "GrößeÄnderbar" der Wert "1" übergeben, kann die Größe des Formulars geändert werden. Mit "Maximierbar" kann das Maximieren des Formularfensters erlaubt werden. Dazu muss der Wert "1" angegeben werden. Dieser Parameter erfordert, dass auch "GrößeÄnderbar" aktiv ist.
    Der Rückgabewert dieses Makros ist entweder "1", wenn der Benutzer die Eingabe bestätigt hat, oder "0", wenn das Formular auf andere Weise geschlossen wurde, z.B. mit der Schaltfläche für das Abbrechen, mit Alt+F4 oder mit dem Schließen-Button in der Titelleiste.
    Ab diesen Zeitpunkt können mit dem Makro "%XMP_FrmDlgRet" die eingegebenen oder ausgewählten Daten angefordert werden.
    %XMP_FrmDlgDef

    %XMP_FrmDlgDef(Name, Wert, [Name], [Wert], ...)
    [Höhe], [GrößeÄnderbar], [Maximierbar])
    Im Formular können Platzhalter verwendet werden, die gegen die Werte ersetzt werden, welche mit diesem Makro übergeben werden können. Diese Platzhalter beginnen mit "%XMP_DEF:", gefolgt vom Namen des Platzhalters, und enden mit einem Prozentzeichen ("%").
    Um Daten an das Formular zu senden, etwa als Vorgabewerte, können mit diesem Makro beliebig viele Namen-Werte-Paare angegeben werden. Der Parameter "Name" muss einem im Formular verwendeten Platzhalter entsprechen. So ist z.B. für den Platzhalter "%XMP_DEF:vorname%" der Name "vorname".
    Wird das Makro ohne Parameter aufgerufen, werden alle zuvor definierten Vorgabewerte gelöscht. Da die Vorgabewerte während der gesamten Programmlaufzeit von XMP bzw. The Bat! verfügbar bleiben, sollte dieses Makro entweder vor der Definition von Platzhaltern für ein neues Formular, oder nach dem Aufruf eines Formulars angegeben werden.
    %XMP_FrmDlgRet([Name], [Standard]) Mit diesem Makro kann der Wert eines Formularfeldes abgefragt werden. Dabei entspricht der "Name" dem HTML-Attribut "name" des jeweiligen Formularfeldes. Wurden keine Daten in das Formularfeld eingetragen oder eine Checkbox nicht ausgewählt, werden keine Daten zurückgegeben. Um eine Auswertung der Rückgabe einfacher zu machen, kann mit dem Parameter "Standard" ein Rückgabewert festgelegt werden, der an Stelle einer leeren Rückgabe zurückgegeben wird.
    Wird dem Makro kein Parameter übergeben, werden alle Formulardaten in kodierter Form zurückgegeben. Die Kodierung entspricht jener für HTML POST-Daten (URL-kodiert).
    %XMP_MsgBox(Text, [Titel], [Style], [OkReturn],
    [Button1], [Button2], [Button3])        
    Gibt ein Meldungsfenster mit dem angegebenen "Text" aus. Der Text kann die selben Steuerzeichen enthalten, wie im Makro "XMP_StrC".
    Wird "Titel" nicht angegeben, wird der Name des Plugins als Titel für das Meldungsfenster verwendet ("Extended Macro Plugin").
    "Style" bezeichnet die Darstellungsart des Fensters. Die einzelnen Angaben müssen mit einem Beistrich getrennt werden. Folgende Parameter können übergeben werden:
    Icon:
    ii > Information
    iw -> Warnung
    iq -> Frage
    is -> Stopp / Fehler
    Schaltflächen:
    o -> OK
    oc ->  OK, Abbrechen
    rc -> Wiederholen, Abbrechen
    ari -> Abbruch, Wiederholen, Ignorieren
    yn -> Ja, Nein
    ync ->  Ja, Nein, Abbrechen
    Standard-Schaltfläche: b1 -> 1. Schaltfläche
    b2 -> 2. Schaltfläche
    b3 -> 3. Schaltfläche
    b4 -> 4. Schaltfläche
    Darstellungsart:
    ma -> An die Anwendung gebunden
    ms -> An das System gebunden
    mt -> An den Task gebunden
    tm -> Fenster immer oben halten
    Rückgabewerte:
    O -> OK
    C -> Abbrechen
    A -> Abbruch
    R -> Wiederholen
    I - Ignorieren
    Y -> Ja
    N -> Nein
    Nur wenn unter "OkReturn" der Wert "1" angegeben wurde, wird "O" zurückgegeben, sonst wird für "Ok" nichts zurückgegeben.
    Die optionalen Angaben "Button1", "Button2" und "Button3" legen die Beschriftung der Schaltflöchen fest. Werden alternative Beschriftungen angegeben, werden die Schaltflächenangaben (Ja, Nein, Ok, Abbrechen etc.) unter "Style" ignoriert. Die übrigen Angaben, wie z.B. die Darstellungsart und das Icon werden natürlich auch in diesem Fall beachtet. Je nach Anzahl der alternativen Beschriftungstexte werden unterschiedliche Werte zurückgegeben:
    Button1 ->  Wird nur eine Schaltflächenbeschriftung angegeben, entspricht dies der Schaltfläche "Ok". Dabei wird auch das Argument "OkReturn" beachtet.
    Button2 -> Werden zwei Schaltflächenbeschriftungen angegeben, entspricht dies den Schaltfläche "Ja" und "Nein" (Rückgabewerte Y/N).
    Button3 -> Wird nur eine Schaltflächenbeschriftung angegeben, entspricht dies den Schaltfläche "Ja", "Nein" und "Abbrechen" (Rückgabewerte Y/N/C).
    Beispiel: %XMP_MsgBox("Test\nTest")%-
    %XMP_MsgBox("Test\nTest","Titel","oc",1)%-
    %XMP_MsgBox("Fehlermeldung","Fehler","is,oc,b2,ms,tm",1)%-
    %XMP_MsgBox("Wie gefällt dir das XMP?","Bewertung","iq,b2,ms,tm",1,"Gut","Sehr gut")        
    %XMP_MultiDlg(Titel, Text, Typ, Einträge,
    Ergebnistyp, [OkButton], [CancelButton])        
    Dieses Makro zeigt einen modalen Dialog an, in dem eine Auswahlliste mit definierbaren Einträgen angezeigt wird. Wahlweise können mehrere oder auch nur eines dieser Elemente zurückgegeben werden.
    Der "Titel" und der "Text" kann frei gewählt werden. Optional kann auch die Beschriftung der Schaltflächen "Ok" und "Abbrechen" mit den Parametern "OkButton" und "CancelButton" geändert werden.
    Der "Typ" legt fest, ob nur ein Listenelement oder mehrere Elemente ausgewählt und zurückgegeben werden können. Hat "Typ" den Wert "1", kann nur ein Element gleichzeitig ausgewählt werden und die Liste funktioniert wie ein Liste mit Optionsfeldern. Ansonsten (Wert "0") können mehrere Listeneinträge ausgewählt werden.
    Im Argument "Einträge" wird die Liste der Einträge angegeben. Die einzelnen Listeneinträge werden mit einem Pipe-Zeichen ("|") voneinander getrennt. Jeder Listeneintrag kann am Beginn eine eindeutige Bezeichnung oder Nummer enthalten, sowie eine Angabe, ob dieser Listeneintrag markiert werden soll. Diese Angaben müssen mit einem Dollar-Zeichen ("$") voneinander getrennt werden. Somit ergibt sich folgendes Format:
    ID1$$Zeile1|ID2$X$Zeile2|ID3$$Zeile3
    Der erste Eintrag hat die ID "ID1" und ist nicht vorausgewählt. In der Liste wird der Text "Zeile1" angezeigt. Der zweite Eintrag hat die ID "ID2" und wird ausgewählt dargestellt. Fehlt die ID oder die Angabe über die Auswahl, muss dennoch das Dollar-Zeichen eingetragen werden. Bei Optionslisten (Typ "1") sollte auf jeden Fall ein Eintrag vorausgewählt sein.
    Unter "Ergebnistyp" wird die Art der Rückgabe angegeben. Das Ergebnis der Auswahl kann auf 3 verschiedene Arten zurückgegeben werden:
    0 -> Es wird der Name des Eintrages zurückegegeben. Im obigen Beispiel wäre dies etwa "Zeile1" oder "Zeile2".
    1 -> Es wird die Nummer des Eintrages, mit 1 beginnend zurückgegeben. Wurde beispielsweise der 2. und 3. Eintrag ausgewählt, wird "2|3" zurückgegeben.
    2 -> Es wird die ID des Eintrages zurückgegeben.
    Bei einer Liste mit Mehrfachauswahl werden die ausgewählten Einträge mit einem Pipe-Zeichen voneinander getrennt.        
    %XMP_TextDlg(Titel, Text, Vorgabe, [Länge],
    [OkButton], [CancelButton])        
    Dieses Makro zeigt einen modalen Dialog an, in dem ein Textfeld angezeigt wird.
    Der "Titel", "Text" und die "Vorgabe" kann frei gewählt werden. Optional kann auch die Beschriftung der Schaltflächen "Ok" und "Abbrechen" mit den Parametern "OkButton" und "CancelButton" geändert werden.
    Die "Länge" legt die maximal zulässige Anzahl von Zeichen fest, wobei Zeilenumbrüche als 2 Zeichen gewertet werden.
    Zwischen den Schaltflächen wird ein Counter angezeigt, der die eingegebenen, maximalen und noch verbleibenden Zeichen im Format "eingegeben / maximal (verbleibend)" anzeigt.        

    0  

    IDN Internationale Domains

    Makro Beschreibung
    %XMP_AddrToACE(Mailadresse) Konvertiert eine oder mehrere nationale E-Mail Adressen, falls erforderlich, in das internationalisierte Format.
    Beispiel:
    %_A=#%XMP_AddrToACE("karl@müller.at")#%-
    %_A
    %XMP_AddrToIDN("%_A")

    %XMP_AddrToACE("franz@huber.de")
    %XMP_AddrToIDN("franz@huber.de")
    Ausgabe:
    karl@xn--mller-kva.at
    karl@müller.at

    franz@huber.de
    franz@huber.de
    %XMP_AddrToIDN(Mailadresse) Konvertiert eine oder mehrere internationalisierte E-Mail Adressen, falls erforderlich, in das nationale Format.
    Beispiel:
    %_A=#%XMP_AddrToACE("karl@müller.at")#%-
    %_A
    %XMP_AddrToIDN("%_A")

    %XMP_AddrToACE("franz@huber.de")
    %XMP_AddrToIDN("franz@huber.de")
    Ausgabe:
    karl@xn--mller-kva.at
    karl@müller.at

    franz@huber.de
    franz@huber.de
    %XMP_DomToACE(Domain) Konvertiert eine Domain, falls erforderlich, in einen Punycode-String. Dieses Format wird für internationalisierte Domainnamen benötigt.
    Beispiel:
    %_A=#%XMP_DomToACE("www.müller.de")#%-
    %_A
    %XMP_DomToIDN("%_A")

    %XMP_DomToACE("www.huber.de")
    %XMP_DomToIDN("www.huber.de")
    Ausgabe:
    www.xn--mller-kva.de
    www.müller.de

    www.huber.de
    www.huber.de
    %XMP_DomToIDN(Domain) Konvertiert eine kodierte internationalisierte Domain, falls erforderlich, in einen normalen Domainnamen.
    Beispiel:
    %_A=#%XMP_DomToACE("www.müller.de")#%-
    %_A
    %XMP_DomToIDN("%_A")

    %XMP_DomToACE("www.huber.de")
    %XMP_DomToIDN("www.huber.de")
    Ausgabe:
    www.xn--mller-kva.de
    www.müller.de

    www.huber.de
    www.huber.de
    %XMP_IDNList(Adressliste) Formatiert eine "Adressliste", so wie diese z.B. von den Makros "%TO", "%FROM" oder "%BCC" zurückgegeben weird und konvertiert dabei erforderlichenfalls IDN-Adressen.
    Beispiel:
    %_TMP="%XMP_IDNList('%TO')"%-
    %TO=""%-%TO="%_TMP"

    0  

    Nachrichten und Header

    Makro Beschreibung
    %XMP_ClearLines(Text, [Max], [Min],
    [QuoteSpace])
    Entfernt aus einem "Text" alle unnötigen Leerzeilen.
    Das Argument "Max" legt die Anzahl der Leerzeilen fest, die maximal im Text vorkommen dürfen. Wird diese Zahl überschritten, werden die betreffenden Leerzeilen gegen die in "Min" angegebenen Leerzeilen ersetzt.
    Der Standardwert für "Max" ist "3" und für "Min" "2".
    Hat das Argument "QuoteSpace" den Wert "1", wird jede leere Zeile mit einem Leerzeichen gefüllt, damit die Zitier-Zeichen nicht durch leere Zeilen unterbrochen werden.
    Beispiel:
    %XMP_ClearLines("%TEXT",3,2)
    Originaltext:
    Zeile 1

    Zeile 4


    Zeile 10
    Ausgabe:
    Zeile 1

    Zeile 4

    Zeile 10
    %XMP_Gender([Vorname]) Versucht aus dem angegebenen "Vornamen" das Geschlecht zu ermitteln.
    Wird "Vorname" nicht angegeben, wird zuerst aus dem Adressbuch das Geschlecht des Empfängers ("To"-Feld des Nachrichteneditors) ermittelt. Ist dieses nicht angegeben oder der Empfänger nicht im Adressbuch eingetragen, wird versucht, aus dem Vornamen des Empfängers das Geschlecht auf Grund seines Vornamens zu ermitteln.
    Das Makro gibt "0" für eine Organistation (falls im Adressbuch angegeben), "1" für einen Mann und "2" für eine Frau zurück. Ist das Geschlecht im Adressbuch nicht angegeben, wird grundsätzlich "1" für einen Mann zurückgegeben. In wenigen Fällen wird "0" für eine Organisation der eine "Familie..." zurückgegeben.
    %XMP_GetLang Dieses Makro ermittelt die Sprache der Originalnachricht.
    Folgende Informationen werden für die Spracherkennung verwendet:
    • "X-Language:"-Header
    • "Content-Language:"-Header
    • "X-Accept-Language:"-Header
    • Land des Empfängers aus dem Adressbuch von TB!
    • Ein regulärer Ausdruck
    Der Rückgabewert, der reguläre Ausdruck und die Werte für den Vergleich mit den Headerzeilen bzw. dem Adressbuch-Eintrag können individuell angepasst werden. Die dazu notwendigen Einstellungen sind in der Datei "XMP.ini" in der Sektion "[CountryLanguage]" enthalten.
    "Item"-Eintrag in dieser Sektion enhält, jeweils mit einem Raute-Zeichen (#) getrennt, den Rückgabewert, die Ländernamen welche im Adressbuch eingetragen sein können, die Abkürzungen für die Sprache und schließlich einen regulären Ausdruck.
    Die Ländernamen und Abkürzungen für die Sprache müssen durch Pipe-Zeichen (|) von einander getrennt sein.
    Der reguläre Ausdruck darf kein Raute-Zeichen enthalten!
    Beispiel:
    %XMP_GetLang
    Ausgabe:
    GE
    %XMP_HdrMailer([Standard]) Ermittelt das Mailprogramm des Absenders einer Mail aus dem Nachrichten-Header.
    Wird der Name des Mailprogramms nicht gefunden, wird der unter "Standard" angeführte Wert zurückgegeben. Ist das Argument "Standard" nicht vorhanden, wird eine leere Zeichenkette zurückgegeben.
    Beispiel:
    %XMP_HdrMailer
    Beispiel-Ausgaben:
    Microsoft Outlook Express 5.00.2615.200
    The Bat! v11.4.2 Professional
    %XMP_HdrRcvTime([Eintrag], [Lokalzeit],
    [Ausgabeformat])
    Ermittelt aus den Received-Zeilen des Headers die mit "Eintrag" angegebene Zeit. "Eintrag" kann die Werte "0" und "1" haben, wobei "0" die Zeit der ersten Received-Zeile (Versendezeit) und "1" die Zeit der letzten Received-Zeile (Eingangszeit beim eigenen Provider) darstellt. Wird "Eintrag" nicht angegeben, wird "0" (Versendezeit) angenommen.
    Hat "Lokalzeit" den Wert "1", wird die Lokalzeit zurückgegeben. Hat "Lokalzeit" den Wert "0" (Standard), wird vom enthaltenen Bias die UTC-Zeit errechnet. Eine Liste mit den unterstützten Zeitzonen ist auf der Seite "Zeitzonen" angeführt.
    Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".
    Beispiel:
    %XMP_HdrRcvTime
    %XMP_HdrRcvTime(0)
    %XMP_HdrRcvTime(1)
    %XMP_HdrRcvTime(1,1)
    Ausgabe:
    27.02.2025 14:56:31
    27.02.2025 14:56:31
    27.02.2025 14:56:28
    27.02.2025 15:56:28
    %XMP_ListAddr(Addressliste, Eintrag) Ermittelt aus einer Liste mit E-Mail Adressen, wie diese z.B. in "%OTO" gespeichert ist, eine bestimmte Adresse ("Eintrag").
    Um einen Namen aus der Adressliste zu extrahieren, kann das Makro "XMP_ListName" verwendet werden. Das Makro "XMP_ListCount" ermittelt die Anzahl der verfügbaren Einträge.Wird "Eintrag" nicht angegeben, wird "0" (Versendezeit) angenommen.
    Beispiel:
    %XMP_ListAddr("%OTO",1)
    %XMP_ListCount(Addressliste) Ermittelt aus einer Liste mit E-Mail Adressen, wie diese z.B. in "%OTO" gespeichert ist, die Anzahl der Adressen.
    Um einen Namen aus der Adressliste zu extrahieren, kann das Makro "XMP_ListName" verwendet werden, oder nur für die E-Mail Adresse "XMP_ListAddr".
    Beispiel:
    %XMP_ListAddr("%OTO","%XMP_ListCount('%OTO')")
    %XMP_ListName(Addressliste, Eintrag) Ermittelt aus einer Liste mit E-Mail Adressen, wie diese z.B. in "%OTO" gespeichert ist, einen bestimmten Namen ("Eintrag").
    Wird kein Name gefunden, wird die E-Mail Adresse zurückgegeben.
    Um eine Adresse aus der Liste zu extrahieren, kann das Makro "XMP_ListAddr" verwendet werden. Das Makro "XMP_ListCount" ermittelt die Anzahl der verfügbaren Einträge.
    Beispiel:
    %XMP_ListName("%OTO",1)
    %XMP_MsgID([MID]) Gibt die Message-ID der Originalnachricht aus.
    Hat "MID" den Wert "1" wird der Text "mid:" vor der Message-ID weggelassen.
    Wenn "MID" gleich "2" ist, wird an Stelle der MID der Inhalt der Headerzeile "References" ausgegeben.
    Ist "MID" gleich "3", wird die neue Referenz, also "References" + "Message-ID" ausgegeben.
    Beispiel:
    <%XMP_MsgID>
    %XMP_MsgID(0)
    %XMP_MsgID(1)
    %XMP_MsgID(2)
    %XMP_MsgID(3)
    Ausgabe:
    mid:779938887.20040931000449@gmx.de
    779938887.20040931000449@gmx.de
    <1501856080.20040930205831@gmx.de> <872297055.20040930235903@gaijin.at>
    <1501856080.20040930205831@gmx.de> <872297055.20040930235903@gaijin.at> <779938887.20040930235945@gaijin.at>
    %XMP_NoSubj([Betreff]) Wenn in der aktuellen Nachricht der Betreff leer ist, wird der unter "Betreff" angegebene Wert zurückgegeben. Sonst gibt das Makro den aktuellen Betreff zurück.
    Wird "Betreff" nicht angegeben, wird "(ohne Betreff)" ausgegeben.
    Beispiel:
    %XMP_NoSubj("LEER")%-
    %SUBJ="%XMP_NoSubj"
    In einer Antwort auf eine Nachricht mit leerem Betreff führt das Beispiel zur Ausgabe von "Re: LEER", als neuer Betref wird "Re: (ohne Betreff)" gesetzt.
    %XMP_NoTo([Empfänger]) Wenn in der aktuellen Nachricht das "TO" und das "CC" Feld leer sind, wird der unter "Empfänger" angegebene Wert zurückgegeben. Ansonsten wird der Inhalt des Feldes "TO" zurückgegeben.
    Wird "Empfänger" nicht angegeben, wird "(geheime Empfänger)" ausgegeben.
    Beispiel:
    %XMP_NoTo("GEHEIM")%-
    %TO="%XMP_NoTo"
    In einer Antwort auf eine Nachricht mit leeren Empfängerfeldern führt das Beispiel zur Ausgabe von "GEHEIM", als neuer Empfänger wird "(geheime Empfänger)" gesetzt.
    %XMP_QuoteAdd(Text, [Zeichen]) Stellt jeder Zeile in "Text" das angegebene Quote-"Zeichen" voran.
    Wird "Zeichen" nicht angegeben, wird > als Standard verwendet.
    Beispiel:
    %XMP_QuoteAdd("%TEXT")
    Ausgabe:
    > Zeile 1
    > Zeile 2
    > Zeile 3
    %XMP_QuoteDel(Text, [MaxLänge], [Zeichen]) Entfernt alle Quote-Zeichen aus dem "Text".
    "MaxLänge" gibt die maximale Länge eines Quote-Zeichens an. Ist "MaxLänge" niht angegeben, werden 6 Zeichen angenommen.
    "Zeichen" legt das zu entfernende Quote-Zeichen fest. Der Standardwert ist ">". Folgt auf das Quotezeichen ein Leerzeichen, wird auch dieses entfernt.
    Beispiel:
    %XMP_QuoteDel("%TEXT",3)
    Text:
    >>> Zeile 1
    A> AB> ABC> AB> Zeile 2
    > > > > > Zeile 3
    >> >> Zeile 4
    Ausgabe:
    Zeile 1
    ABC> AB> Zeile 2
       Zeile 3
    Zeile 4
    In der Zeile 2 wird ab "ABC>" nichts mehr entfernt, da die Länge (4 Zeichen) die maximale Länge von 3 Zeichen überschreitet.
    In Zeile 3 wird das erste Leerzeichen nach dem Quotezeichen entfernt, die restlichen beiden Leerzeichen bleiben erhalten, um Einrückungen nicht zu zerstören.
    %XMP_Sig Gibt einen Signaturtrenner (ohne anschließenden Zeilenumbruch) zurück. Ein korrekter Signaturtrenner besteht aus den Zeichen "-- " (Minus, Minus, Leerzeichen).
    Beispiel:
    %XMP_Sig
    Mit freundlichen Grüßen
    Ausgabe:
    --
    Mit freundlichen Grüßen
    %XMP_SubjClean([Betreff], [Alternativ]) Entfernt alle Antwort- und Weiterleitungsvermerke vor dem Betreff.
    Folgende Vermerke werden erkannt und entfernt:
    • antw
    • antwort
    • aw
    • betr
    • betrifft
    • betreff
    • forw
    • fw
    • fwd
    • ha
    • rcpt
    • re
    • ref
    • war
    • was
    • wg
    • wtr
    Zusätzlich können im Parameter "Alternativ" weitere Vermerke angegeben werden. Die einzelnen Vermerke müssen mit einem Pipe-Zeichen (|) voneinander getrennt werden.
    Ist "Betreff" nicht angegeben oder leer, wird der Betreff der aktuellen Nachricht verwendet.
    Beispiel:
    %XMP_SubjClean("Re: Fwd[3]: Re[5]: Odp: Wtr: Betr: DP: Originalbetreff","dp|odp")
    Ausgabe:
    Originalbetreff
    %XMP_SubjCount([NoFwds], [Betreff],
    [AltRe], [AltFwd])
    Zählt die Antwort- bzw. Weiterleitungsvermerke am Beginn eines Betreffs und gibt die Anzahl zurück.
    Folgende Vermerke werden erkannt und entfernt:
    • antw
    • antwort
    • aw
    • betr
    • betrifft
    • betreff
    • forw
    • fw
    • fwd
    • ha
    • rcpt
    • re
    • ref
    • war
    • was
    • wg
    • wtr

    Zusätzlich können weitere Antwort-Vermerkung mit dem Parameter "AltRe" und zusätzliche Weiterleitungsvermerke mit dem Parameter "AltFwd" angegeben werden. In beiden Parametern müssen die einzelnen Angaben mit einem Pipe-Zeichen ("|") voneinander getrennt werden.
    Wird für den Parameter "NoFwds" der Wert "1" angegeben, werden Weiterleitungen nicht mitgerechnet.
    Ist "Betreff" nicht angegeben, wird der Betreff der aktuellen Nachricht verwendet.
    Beispiel:
    %XMP_SubjCount(0,"Re: Fwd[3]: Re[5]: Wtr: Betr: Originalbetreff")
    %XMP_SubjCount(1,"Re: Fwd[3]: Re[5]: Wtr: Betr: Originalbetreff")
    Ausgabe:
    11
    7
    %XMP_UrlAttach(URL, Dateiname) Dieses Makro erstellt einen Internet-Shortcut von der angegebenen "URL" und fügt ihn mit dem angegebenen "Dateinamen" als Anlage der aktuellen Nachricht an. Dem Dateinamen wird automatisch die Erweiterung ".url" angefügt.
    Beispiel:
    %XMP_UrlAttach("https://www.ritlabs.com/","Meine Webseite")

    0  

    Zeichenketten

    Makro Beschreibung
    %XMP_ArgCount(Text, [Trennzeichen],
    [Anführungszeichen])
    Ermittelt die Anzahl der Einträge in einem "Text", die mit einem der angegebenen "Trennzeichen" voneinander getrennt sind. Trennzeichen, die sich innerhalb eines der "Anführungszeichen" befinden, werden ignoriert.
    Ist "Trennzeichen" nicht angegeben, wird ein Leerzeichen angenommen. Wird kein "Anführungszeichen" angegeben, wird ein normales Anführungszeichen (") verwendet.
    Beispiel:
    %XMP_ArgCount(|"ABC 123 XYZ"789 test1 test2|)
    %XMP_ArgCount(|"ABC,123,XYZ" 789,test1,test2|,|,|)
    %XMP_ArgCount(|'ABC#123#XYZ" 789#test1:test2|,|#:|,|'"|)
    Ausgabe:
    3
    3
    3
    %XMP_ArgItem(Text, Eintrag [Trennzeichen],
    [Anführungszeichen])
    Gibt einen bestimmten "Eintrag" aus einem "Text" zurück, der mit einem der angegebenen "Trennzeichen" von anderen Einträgen getrennt ist. Trennzeichen, die sich innerhalb eines der "Anführungszeichen" befinden, werden ignoriert.
    Ist "Trennzeichen" nicht angegeben, wird ein Leerzeichen angenommen. Wird kein "Anführungszeichen" angegeben, wird ein normales Anführungszeichen (") verwendet.
    Beispiel:
    %XMP_ArgItem(|"ABC 123 XYZ"789 test1 test2|,|2|)
    %XMP_ArgItem(|"ABC,123,XYZ" 789,test1,test2|,|3|,|,|)
    %XMP_ArgItem(|'ABC:123#XYZ" 789#test1:test2|,|1|,|#:|,|'"|)
    Ausgabe:
    test1
    test2
    'ABC:123#XYZ" 789
    %XMP_Decode(Text, Methode) Dekodiert einen "Text", der im MIME-Format (Base64) oder im Quoted-Printable-Format vorliegt.
    Das Argument "Methode" gibt an, ob der Text im Base64-Format ist (Argument "B") oder im Quoted-Printable-Format (Argument "Q").
    Beispiel:
    %XMP_Decode("RGV1dHNjaGxhbmQgaXN0IHNjaPZu","B")
    %XMP_Decode("est une soci=E9t=E9 Suisse","Q")
    Ausgabe:
    Deutschland ist schön
    est une société Suisse
    %XMP_Encode(Text, Methode) Kodiert einen "Text" als MIME (Base64) oder als Quoted-Printable.
    Das Argument "Methode" gibt an, ob der Text als Base64 (Argument "B") oder als Quoted-Printable (Argument "Q") kodiert werden soll.
    Beispiel:
    %XMP_Encode("Deutschland ist schön","B")
    %XMP_Encode("est une société Suisse","Q")
    Ausgabe:
    RGV1dHNjaGxhbmQgaXN0IHNjaPZu
    est une soci=E9t=E9 Suisse
    %XMP_Grep(Text, RegExp, [Ausgabe]) Durchsucht einen "Text" zeilenweise mit dem reguläre Ausdruck "RegExp". "Ausgabe" gibt an, welche Zeilen ausgegeben werden sollen:
    M -> Gibt alle Zeilen aus, auf die der reguläre Ausdruck zutrifft. (Standard, falls nicht angegeben)
    N -> Gibt alle Zeilen aus, auf die der reguläre Ausdruck nicht zutrifft.
    B -> Gibt alle Zeilen aus, die vor dem ersten gefundenen regulären Ausdruck stehen.
    A - > Gibt alle Zeilen aus, die nach dem ersten gefundenen regulären Ausdruck stehen.
    I -> Kann zusätzlich zu "A" oder "B" angegeben werden und bewirkt, dass die Zeile, auf die der reguläre Ausdruck zutrifft, ebenfalls mit ausgegeben wird.
    Achtung: Da es zu Problemen kommen kann, wenn im "Text" Anführungszeichen enthalten sind, werden diese durch den Hexadezimalcode 0x02 ersetzt. Darum muss in den regulären Ausdrücken für ein Anführungszeichen der Hexadezimalcode 0x02, also "\x02" (an Stelle von "\x22") verwendet werden.
    Beispiel:
    Alle Zeilen mit "http://www.":
    %XMP_Grep("%TEXT","http:\/\/www\.")
    Beispiel-Ausgabe:
    Alle Zeilen mit "http://www.":
    > Unsere URL lautet https://www.ritlabs.com/
    Auf https://www.ritlabs.com/ finden Sie auch das Extended Macro Plugin
    https://www.ritlabs.com/
    %XMP_HtmlDec(Text, [Optionen]) Dieses Makro dekodiert HTML-Entitäten in einem "Text" in die entsprechenden Sonderzeichen.
    Das optionale Argument "Optionen" bestimmt die Art der Kodierung:
    E -> Es werden HTML-Entitäten (außer kodierte HTML-Steuerzeichen) in nationale Sonderzeichen dekodiert. Diese Methode wird verwendet, wenn der Parameter "Optionen" nicht angegeben wurde.
    H -> Es werden HTML-Steuerzeichen dekodiert (Größer-Zeichen, Kleiner-Zeichen, doppelte Anführungszeichen und das kaufmännische Und).
    Beispiel:
    %XMP_HtmlDec('&lt;b&gt;&quot;àéî€ &amp; &auml;&ouml;&uuml;&szlig;
    &quot;&lt;/b&gt;')
    %XMP_HtmlDec('&lt;b&gt;&quot;àéî€ &amp; &auml;&ouml;&uuml;&szlig;
    &quot;&lt;/b&gt;','H')
    %XMP_HtmlDec('&lt;b&gt;&quot;àéî€ &amp; &auml;&ouml;&uuml;&szlig;
    &quot;&lt;/b&gt;','EH')
    Ausgabe:
    &lt;b&gt;&quot;àéî€ &amp; äöüß&quot;&lt;/b&gt;
    <b>"&#224;&#233;&#238;&#8364; & &auml;&ouml;&uuml;&szlig;&quot;</b>
    <b>"àéî€ &amp; äöüß"</b>
    %XMP_HtmlEnc(Text, [Optionen]) Dieses Makro kodiert Sonderzeichen in einem "Text" in HTML-Entitäten.
    Das optionale Argument "Optionen" bestimmt die Art der Kodierung:
    E -> Es werden nationale Sonderzeichen, z.B. deutsche Umlaute, in benannte Entitäten kodiert. Diese Methode wird verwendet, wenn der Parameter "Optionen" nicht angegeben wurde.
    U -> Es werden nationale Sonderzeichen, z.B. deutsche Umlaute, mit ihrenen Zeichen-Codes kodiert.
    H -> Es werden HTML-Steuerzeichen kodiert (Größer-Zeichen, Kleiner-Zeichen, doppelte Anführungszeichen und das kaufmännische Und).
    Beispiel:
    %XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>')
    %XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','U')
    %XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','H')
    %XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','EH')
    %XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','UH')
    Ausgabe:
    <b>&quot;&agrave;&eacute;&icirc;&euro; &amp; &auml;&ouml;&uuml;
    &szlig;&quot;</b>
    <b>&quot;&#224;&#233;&#238;&#8364; &amp; &#228;&#246;&#252;&#223;
    &quot;</b>
    &lt;b&gt;&quot;àéî€ &amp; äöüß&quot;&lt;/b&gt;
    &lt;b&gt;&quot;&agrave;&eacute;&icirc;&euro; &amp; &auml;&ouml;
    &uuml;&szlig;&quot;&lt;/b&gt;
    &lt;b&gt;&quot;&#224;&#233;&#238;&#8364; &amp; &#228;&#246;
    ü&#223;&quot;&lt;/b&gt;
    %XMP_LineBtw(Text, Start, Ende, [StartPos,
    EndePos])
    Gibt jenen Teil einer Zeile aus "Text" zurück, der zwischen "Start" und "Ende" angegeben wurde. Bei der Suche wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    "StartPos" bzw. "EndePos" gibt jeweils für "Start" und "Ende" an, ob die Suchbegriffe am Beginn oder am Ende der Zeile stehen. Dabei steht 1 für den Beginn bzw. dem Ende der Zeile. Wird für "StartPos" oder "EndePos" der Wert "0" angegeben oder werden diese Angaben weggelassen, wird die gesamte Zeile nach "Start" und "Ende" durchsucht.
    Beispiel-Text:
    Name: Huber, Karl
    Ort: 1234 Stadt S/N: 173993783892.TEST
    Beispiel:
    %XMP_LineBtw("%TEXT","Name:",", ",0,1)
    %XMP_LineBtw("%TEXT","Ort:","",0,0)
    %XMP_LineBtw("%TEXT","S/N:",".test",0,0)
    Beispiel-Ausgabe:
    Huber
    1234 Stadt
    173993783892
    %XMP_REIsMatch(Text, Suche, [StartPos],
    [GroßKlein])
    Sucht im "Text" nach "Suche" mit einem regulären Ausdruck (PCRE). Wird der Suchbegriff gefunden, wird "1" zurückgegeben, ansonsten "0".
    Mit dem optionalen Parameter "StartPos" kann die Startposition für die Suche angegeben werden. "0" entspricht dem Anfang des Textes.
    Ist unter "GroßKlein" der Wert "1" eingetragen, wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    Beispiel:
    %XMP_REIsMatch("abc","b")
    %XMP_REIsMatch("abc","b",2)
    %XMP_REIsMatch("abc","B",0,1)
    Ausgabe:
    1
    0
    1
    %XMP_RERepl(Text, Suche, Neu, [GroßKlein]) Sucht im "Text" nach "Suche" mit einem regulären Ausdruck (PCRE). Wird der Suchbegriff gefunden, wird "1" zurückgegeben, ansonsten "0".
    Mit dem optionalen Parameter "StartPos" kann die Startposition für die Suche angegeben werden. "0" entspricht dem Anfang des Textes.
    Ist unter "GroßKlein" der Wert "1" eingetragen, wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    Beispiel:
    %XMP_RERepl("AbC AbC AbC","(b)","[$1]")
    Ausgabe:
    A[b]C A[b]C A[b]C
    %XMP_ReX(Text, Ausdruck,[SubPatt]) Dieses Makro ist eine Vereinfachung der RegExp-Makros von The Bat!. Das Argument "Text" legt den Text fest, der durchsucht werden soll. "Ausdruck" steht für den regulären Ausdruck, nach den gesucht werden soll. Wird "SubPatt" angegeben, wird das entsprechende Sub-Pattern zurückgegeben, sonst wird das erste Sub-Pattern zurückgegeben.
    Wird "SubPatt" angegeben, entspricht die Arbeitsweise der von "%REGEXPBLINDMATCH". Wird "SubPatt" nicht angegeben, wie der von "%REGEXPMATCH".
    Achtung: Da es zu Problemen kommen kann, wenn im "Text" Anführungszeichen enthalten sind, werden diese durch den Hexadezimalcode 0x02 ersetzt. Darum muss in den regulären Ausdrücken für ein Anführungszeichen der Hexadezimalcode 2, also "\x02" verwendet werden.
    Beispiel:
    %XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*")
    %XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*","0")
    %XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*",3)
    Ausgabe:
    test
    abc test TEXT abc
    TEXT
    %XMP_StrAttach(Text, Dateiname) Speichert den "Text" in einer temporären Datei mit dem angegebenen "Dateienen" und fügt diese Datei anschließend als Anlage zur aktuellen Nachricht hinzu.
    Tritt ein Fehler auf, wird "0" zurückgegeben, sonst ist die Rückgabe "1".
    Die temporäre Datei wird danach NICHT gelöscht, da The Bat! diese sonst nicht findet und nicht als Anlage hinzufügen kann. Erst beim Entladen des Plugins (Beenden von The Bat!) werden alle durch dieses Makro erstellten Dateien gelöscht.
    Beispiel:
    %XMP_StrAttach("%TEXT","Originaltext.txt")
    %XMP_StrC(Text) Gibt den angegebenen "Text" aus und ersetzt dabei maskierte Sonderzeichen.
    Folgende Sonderzeichen können verwendet werden:
    \\ -> Backslash
    \n ->Zeilenvorschub
    \r ->Wagenrücklauf
    \t ->Tabulator
    \w ->Wagenrücklauf + Zeilenvorschub (entspricht "\r\n")
    \cCHR ->CHR ist der Zeichencode von 000 bis 255 und MUSS dreistellig sein!
    \xHH ->HH ist der Hexadezimalcode von 00 bis FF und MUSS zweistellig sein! (Die Groß- und Kleinschreibung wird nicht beachtet.)
    Beispiel:
    %XMP_StrC("\c034Zeile1\c034\nZeile2\tTabulator\n\nZeile4")
    --
    %XMP_StrC("\x55\x56\x57\x0A\c034XYZ\c034")
    Ausgabe:
    "Zeile1"
    Zeile2     Tabulator

    Zeile4
    --
    UVW
    "XYZ"
    %XMP_StrChar(Zeichencode,
    [Zeichencode], ...)
    Wandelt die angegebenen Zeichencodes (von 0 bis 255) in einen Text um und gib diesen zurück.
    Beispiel:
    %XMP_StrChar(65,66,67,13,10,49,50,51)
    Ausgabe:
    ABC
    123
    %XMP_StrCheck(Text, Prüfung,
    [alternative Zeichen])
    Überprüft, ob der angegebenenen "Text" aus bestimmten Zeichen besteht.
    Der Parameter "Prüfung" kann folgende Werte haben:
    U -> (Upper) Prüft, ob nur Großbuchstaben im "Text" enthalten sind.
    L -> (Lower) Prüft, ob nur Kleinbuchstaben im "Text" enthalten sind.
    N -> (Numeric) Prüft, ob nur Zahlen im "Text" enthalten sind.
    Im Parameter "alternative Zeichen" können zusätzliche Zeichen eingegeben werden, die im "Text" enthalten sein dürfen.
    Wenn der "Text" dem Muster entspricht, wird "1" zurück gegeben, anderenfalls "0".
    Beispiel:
    %XMP_StrCheck('Hallo','L')
    %XMP_StrCheck('Hallo','UL')
    %XMP_StrCheck('Hallo, das ist ein Test','UL',' ,')
    %XMP_StrCheck('123-456.789','N','-.')
    Ausgabe:
    0
    1
    1
    1
    %XMP_StrCount(Text, Suchtext, [GroßKlein]) Gibt die Anzahlder Fundstellen von "Suchtext" in "Text" zurück.
    Ist "GroßKlein" angegeben und hat das Argument den Wert "1", dann wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    Beispiel:
    %XMP_StrCount("Abc ABC abC abc","abc")
    %XMP_StrCount("Abc ABC abC abc","abc",1)
    Ausgabe:
    1
    5
    %XMP_StrDup(Text, Anzahl) Fügt den "Text" mehrmals aneinander. Das Argument "Anzahl" bestimmt, wie oft der Text angehängt werden soll.
    Beispiel:
    %XMP_StrDup("=-",20)=
    Ausgabe:
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    %XMP_StrIns(Originaltext, Text,
    Start/Ausrichtung], [Länge])
    Fügt den "Text" in den "Originaltext" ein.
    Mit "Start" wird die Startposition des Textes angegeben, "Länge" bezeichnet die Anzahl der Zeichen, die im Originaltext überschrieben werden sollen.
    Der Standardwert von "Start" ist "1" und von "Länge" "0".
    An Stelle einer Startposition ("Start"), kann auch eine Ausrichtungsangabe verwendet werden, die den "Text" innerhalb des "Originaltextes" ausrichtet und diesen dabei überschreibt. Folgende Ausrichtungen sind möglich:
    L -> Linksbündig
    R -> Rechtsbündig
    M -> Mittige Ausrichtung, wobei bei einer ungeraden Zeichenanzahl der Text mehr links ausgerichtet wird.
    N -> Mittige Ausrichtung, wobei bei einer ungeraden Zeichenanzahl der Text mehr rechts ausgerichtet wird.
    Beispiel:
    %XMP_StrIns("123456789","ABC")
    %XMP_StrIns("123456789","ABC","R")
    %XMP_StrIns("123456789","ABC","L")
    %XMP_StrIns("123456789","ABC",4)
    %XMP_StrIns("123456789","ABC",4,1)
    %XMP_StrIns("123456789","ABC",4,999)
    Ausgabe:
    ABC123456789
    123456ABC
    ABC456789
    123ABC456789
    123ABC56789
    123ABC
    %XMP_StrItem(Text, Trennzeichen, Eintrag) Liest einen "Eintrag" aus einem "Text" aus, der mit einem bestimmten "Trennzeichen" getrennt ist.
    Beispiel:
    %XMP_StrItem("123#ABC#XYZ","#",2)
    Ausgabe:
    ABC
    %XMP_StrItem(Text, Trennzeichen) Ermittelt die Anzahl der Einträge in einem "Text", die mit "Trennzeichen" voneinander getrennt sind.
    Beispiel:
    %XMP_StrItemCnt("123#ABC#XYZ","#")
    Ausgabe:
    3
    %XMP_StrLeft(Text, Anzahl) Gibt eine bestimmte "Anzahl" von Zeichen aus dem "Text" zurück, beginnend beim ersten Zeichen.
    Beispiel:
    %XMP_StrLeft("123456789",3)
    Ausgabe:
    123
    %XMP_StrLen(Text) Ermittelt die Länge des angegebenen Textes.
    Beispiel:
    %XMP_StrLen("ABCEDEF")
    Ausgabe:
    7
    %XMP_StrLines(Text, [Start], [Anzahl]) Liest aus dem "Text" ab der Zeile "Start" eine bestimmte "Anzahl" von Zeilen aus und gibt diese als Ergebnis zurück.
    Wird "Start" oder "Anzahl" weggelassen, wird in beiden Fällen eine Zeile angenommen. Der Aufruf des Makros nur mit einem Text gibt somit die erste Zeile des Textes aus.
    Beispiel:
    %XMP_StrLines("%TEXT",2,2)
    Ausgabe:
    Zeile2
    Zeile3
    %XMP_StrLnCnt([Text]) Ermittelt die Anzahl der Zeilen im angegebenen "Text".
    Wird "Text" nicht angegeben, wird der Nachrichtentext der Originalnachricht verwendet.
    Beispiel:
    %XMP_StrLnCnt
    %XMP_StrLnCnt("")
    %XMP_StrLnCnt("%_VAR"
    Ausgabe:
    25
    0
    3
    %XMP_StrMid(Text, Start, [Anzahl]) Gibt eine bestimmte "Anzahl" von Zeichen aus dem "Text" zurück, beginnend beim Zeichen "Start".
    Wird "Anzahl" nicht angegeben, werden alle Zeichen nach "Start" zurückgegeben.
    Beispiel:
    %XMP_StrMid("123456789",3,4)
    %XMP_StrMid("123456789",3)
    Ausgabe:
    3456
    3456789
    %XMP_StrPos(Text, Suchtext, [GroßKlein]) Ermittelt die Position des ersten Vorkommens des "Suchtextes" im "Text".
    Ist unter "GroßKlein" der Wert "1" eingetragen, wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    Beispiel:
    %XMP_StrPos("AbcABCabc","ABC")
    %XMP_StrPos("AbcABCabc","ABC",1)
    Ausgabe:
    4
    1
    %XMP_StrRepl(Text, Suche, Neu,
    GroßKlein], [Alle])
    Ersetzt alle Vorkommen von "Suche" im "Text" gegen "Neu".
    Ist unter "GroßKlein" der Wert "1" eingetragen, wird nicht zwischen Groß- und Kleinschreibung unterschieden.
    Ist "Alle" auf den Wert "1" gestellt, wird nach dem Ersetzen nochmals geprüft, ob durch den voran gegangenen Ersetzungsvorgang neue Fundstellen entstanden sind. Auch hier wird die Angaben "GrossKlein" beachtet.
    Achtung: Bei der Verwendung von "Alle" muss darauf geachtet werden, dass keine "Endlos-Schleifen" entstehen, z.B. durch:
    "%XMP_StrRepl("XxXxXxXxXxXxXx","X","x",1,1)"!
    Beispiel:
    %XMP_StrRepl("AbcABCabc","ABC","Xyz")
    %XMP_StrRepl("AbcABCabc","ABC","Xyz",1)
    %XMP_StrRepl("XxXxXxXxXxXxXx","XX","x",1,1)
    Ausgabe:
    AbcXyzabc
    XyzXyzXyz
    x
    %XMP_StrRev(Text) Gibt den "Text" in umgekehrter Reihenfolge zurück.
    Beispiel:
    %XMP_StrRev("Hallo")
    Ausgabe:
    ollaH
    %XMP_StrRight(Text, Anzahl) Gibt eine bestimmte "Anzahl" an Zeichen aus dem "Text" zurück, beginnen beim letzten Zeichen.
    Beispiel:
    %XMP_StrRight("123456789",4)
    Ausgabe:
    6789
    %XMP_StrTr(Text, Suche, [Ersetze],
    [Optionen])
    Ersetzt im angegebenenen "Text" alle Zeichen, die in der Zeichenfolge "Suche" angegeben sind gegen jene Zeichen in "Ersetze", die sich an der selben Position befinden. Das bedeuted, dass das erste Zeichen in "Suche" gegen das erste Zeichen in "Ersetze" ausgetaucht wird, das zweite Zeichen gegen das zweite Zeichen usw.
    Wird "Ersetze" nicht angegeben oder ist "Ersetze" eine leere Zeichenfolge, werden alle Zeichen in "Suche" aus dem "Text" gelöscht. (Entspricht auch der Option "D".)
    Die Angaben im Parameter "Suche" und "Ersetze" müssen denen von %XMP_StrC entsprechen. Somit ist auch die Angabe von Sonderzeichen möglich.
    Als "Optionen" können folgende Werte verwendet werden:
    D -> Entfernt alle Zeichen in "Suche" aus dem "Text". Die Zeichenfolge in "Ersetze" wird dabei nicht beachtet.
    L - > Es wird bei der Suche nicht zwischen Groß- und Kleinschreibung unterschieden.
    Beispiel:
    %XMP_StrTr("HALLO","loh","104")
    %XMP_StrTr("HALLO","loh","104","L")
    %XMP_StrTr("Hallo","HL")
    %XMP_StrTr("HALLO","Hl","XXX","DL")
    Ausgabe:
    HALLO
    4A110
    allo
    AO
    %XMP_StrTrim(Text, [LinksRechts],
    [Zeichentypen])
    Entfernt alle Leer- und Steuerzeichen am Beginn bzw. am Ende eines "Textes". Zusätzlich wird auch das Zeichen 160 (0xA0) entfernt, das in HTML-Mails manchmal an Stelle eines Leerzeichens verwendet wird.
    Um nur links oder rechts Leerzeichen zu entfernen, kann unter "LinksRechts" der Wert "L" für links oder "R" für rechts angegeben werden.
    Mit dem Parameter "Zeichentypen" können die Zeichentypen angegeben werden, die entfernt werden sollen. Folgende Zeichentypen können angegeben werden:
    (Leerzeichen) -> Entfernt alle Leer- und Steuerzeichen, sowie das Zeichen 160 (0xA0). Dies ist der Standard, wenn der Parameter "Zeichentypen" nicht angegeben wurde.
    A -> Entfernt alle Großbuchstaben
    a -> Entfernt alle Kleinbuchstaben
    1 -> Entfernt alle Zahlen
    ! (Rufzeichen) -> Entfernt alle Satz- und druckbaren Sonderzeichen
    8 -> Entfernt alle 8-Bit-Zeichen
    S -> Entfernt alle nationalen Sonderzeichen (ab 0xBF)
    Es können auch Kombinationen verwendet werden, z.B. "Aa 1", für Buchstaben, Leerzeichen und Zahlen.
    Beispiel:
    |%XMP_StrTrim("   ABC   ")|
    |%XMP_StrTrim("   ABC   ","L")|
    |%XMP_StrTrim("   ABC   ","R")|
    %XMP_StrTrim("Betrag: 129,- Euro",""," Aa!")
    %XMP_StrTrim("Betrag: 9,90 Euro",""," Aa!")
    Ausgabe:
    |ABC|
    |ABC   |
    |   ABC|
    129
    9,90
    %XMP_StrWordCnt(Text) Dieses Makro gibt die Anzahl der Wörter im angegebenen "Text" zurück.
    Als Trennzeichen werden diverse Steuer- und Satzzeichen verwendet. Darunter Punkt, Beistrich, Strichpunkt, Rufzeichen, Fragezeichen und diverse Klammern.
    Beispiel:
    %XMP_StrWordCnt("Wort1, Wort-2!Wort3.Wort4 Wort_5")
    Beispiel-Ausgabe:
    5
    %XMP_StrWrap(Text, [Breite], [Ausrichtung]) Bricht den angegebenen "Text" nach 70 Zeichen um. Wird "Breite" angegeben, erfolgt der Umbruch nach dieser Breite.
    Als Umbruchszeichen werden Leerzeichen, Tabulatoren und Trennungsstriche erkannt. Innerhalb von doppelten und einfachen Anführungszeichen wird nicht umgebrochen!
    Das interne Makro %WRAPPED bricht nur den ersten Absatz eines Textes um. Die Funktion %XMP_StrWrap formatiert den gesamten Text neu.
    Als dritter Parameter kann optional die Ausrichtung des Textes angegeben werden. Zur Verfügung stehen folgende Optionen:
    L -> Richtet den Text links aus (Vorgabe, falls nicht angegeben).
    R -> Richtet den Text rechts aus.
    C -> Richtet den Text mittig aus (zentriert).
    J -> Richtet den Text so aus, dass er die gesamte Breite ausfüllt.
    Beispiel:
    %XMP_StrWrap("%CLIPBOARD",35)
    Beispiel-Ausgabe:
    Am Beginn jeder Makro-Beschreibung
    ist die Syntax des Makros
    angeführt. Jene Argumente, die in
    eckigen Klammern stehen können
    weggelassen werden. In diesem Fall
    werden die Standardwerte
    verwendet. Es dürfen aber immer
    nur die hintersten Argumente
    entfallen.
    %XMP_UrlDec(URL) Demaskiert in der "URL" Sonderzeichen, die vorher mit %XMP_UrlEnc maskiert wurden.
    Beispiel:
    %_TMP=#%XMP_UrlEnc("mailto:test@tester.com?subject=Test Subjekt")#%-
    %_TMP
    %XMP_UrlDec("%_TMP")%-
    Ausgabe:
    mailto%3Atest%40tester%2Ecom%3Fsubject%3DTest%20Subjekt
    mailto:test@tester.com?subject=Test Subjekt
    %XMP_UrlEnc(URL, [Art]) Maskiert in der "URL" bestimmte Zeichen, die nicht in einer URL vorkommen dürfen. Dieses Makro kann auch für "mailto:"-Links verwendet werden.
    Während der Link "mailto:test@tester.com?subject=Das ist ein Test" nur zum Betreff "Das" führt, wird durch den maskierten Link "mailto:test@tester.com?subject=Das%20ist%20ein%20Test" der Betreff "Das ist ein Test" richtig angezeigt.
    Das optionale Argument "Art" bestimmt die Art der Maskierung:
    & -> Ersetzt alle & gegen "&", sonst wird der Hexadezimalwert verwendet.
    < oder > -> Ersetzt alle "<" und ">"-Zeichen gegen "<" bzw. ">", sonst gegen den Hexadezimalwert.
    + -> Ersetzt alle Leerzeichen gegen ein Plus-Zeichen, sonst werden Leerzeichen mit "%20" maskiert.
    Beispiel:
    %XMP_UrlEnc("Test & Test")
    %XMP_UrlEnc("Test & Test","&")
    %XMP_UrlEnc("Test & Test","&<")
    %XMP_UrlEnc("Test & Test",">&")
    %XMP_UrlEnc("Test & Test","+&<")
    Ausgabe:
    Test%20%3Caaa%40bbb%2Ecom%3E%20%26%20Test
    Test%20%3Caaa%40bbb%2Ecom%3E%20&amp;%20Test
    Test%20&lt;aaa%40bbb%2Ecom&gt;%20&amp;%20Test
    Test%20&lt;aaa%40bbb%2Ecom&gt;%20&amp;%20Test
    Test+&lt;aaa%40bbb%2Ecom&gt;+&amp;+Test
    %XMP_XtrEMLs([Text], [Trennzeichen]) Liest alle E-Mail Adressen aus dem "Text" aus und gibt sie, getrennt mit dem angegebenen "Trennzeichen" zurück.
    Ist "Text" nicht angegeben oder leer, wird der Nachrichtentext verwendet. Wurde kein "Trennzeichen" festgelegt, wird ein Windows-Zeilenumbruch (0x0D + 0x0A) verwendet.
    %XMP_XtrURLs([Text], [Trennzeichen],
    [Suchtext])
    Liest alle URLs aus dem "Text" aus und gibt sie, getrennt mit dem angegebenen "Trennzeichen" zurück.
    Ist "Text" nicht angegeben oder leer, wird der Nachrichtentext verwendet. Wurde kein "Trennzeichen" festgelegt, wird ein Windows-Zeilenumbruch (0x0D + 0x0A) verwendet.
    Das Argument "Suchtext" gibt einen Text innerhalb der URL an, von dem aus die Länge der URL ermittelt wird. Wird "Suchtext" gefunden, sucht das Makro nach dem ersten Zeichen links und rechts von "Suchtext", das nicht in einer URL vorkommen darf. "Suchtext" ist standardmäßig auf "https://" eingestellt. Andere Angaben, wie etwa "www." oder "ritlabs.com" sind ebenfalls möglich.

    0  

    Sonstige

    Makro Beschreibung
    %XMP_Accounts([Globale Ordner],
    [Trennzeichen])
    Gibt die Kontennamen bzw. globalen Ordner von The Bat! zurück. Als Trennzeichen wird standardmäßig ein Windows-Zeilenumbruch (0x0D0A) verwendet.
    Damit dieses Makro die Konten richtig ermitteln kann, muss im Arbeitsverzeichnis von The Bat! die Datei "AccOrder.CFG" vorhanden sein. Diese Datei wird von The Bat! automatisch erstellt, sobald ein Konto oder ein globaler Ordner mit und den Cursor-Tasten neu angeordnet wurde.
    Hat das Attribut "Globale Ordner" den Wert "1", werden nur die globalen Ordner ausgegeben, bei einem Wert von "2" werden sowohl die Kontennamen, als auch die Namen der globalen Ordner ausgegeben. Bei einem anderen Wert, werden nur die Kontennamen zurückgegeben.
    Beispiel:
    Konten:
    %XMP_Accounts

    Globale Ordner:
    %XMP_Accounts(1)
    Beispiel-Ausgabe:
    Konten:
    private@myisp.com
    info@ritlabs.com
    webmaster@ritlabs.com
    Test
    Test-IMAP

    Globale Ordner:
    Service
    Trash
    $JUNK$
    %XMP_Const(Konstante, [StrC], [Standard]) Liest aus der Datei "XMP.ini" aus der Sektion "Const" den Wert "Konstante" aus und gibt ihn zurück. Die Datei "XMP.ini" muss sich im selben Verzeichnis befinden, wie das Plugin.
    Damit können längere oder oft benötigte Text, gespeichert werden. Beispielsweise bei Pfadangaben, die in vielen Vorlagen vorkommen kann mit diesem Makro das Editieren von allen Vorlagen vermieden werden, falls sich der Pfad ändert.
    Es können Texte bis zu 10 KB gespeichert werden. Um auch Sonderzeichen, wie etwa Zeilenumbrüche zu speichern, können Sonderzeichen, so wie im Makro "%XMP_StrC" angegeben, verendet werden. Mit dem optionalen Argument "StrC" werden diese Sonderzeichen vor der Ausgabe umgewandelt.
    Das Argument "Standard" bezeichnet die Standard-Ausgabe, falls die Konstante nicht gefunden wurde, oder ein anderer Fehler aufgetreten ist. Ist "Standard" nicht angegeben, wird eine leere Zeichenkette zurückgegeben.
    Beispiel:
    %XMP_Const('Path_QT_Pack')
    %XMP_Const('Test',1)
    Inhalt der Datei "XMP.ini":
    [Const]
    Path_QT_Pack=C:\WINDOWS\Anwendungsdaten\The Bat!\Vorlagen\QT_Pack
    Test=123\wABC
    Ausgabe:
    C:\WINDOWS\Anwendungsdaten\The Bat!\Vorlagen\QT_Pack
    123
    ABC
    %XMP_CRC32(Einstellungen, Text)

    %XMP_CRC32(Einstellungen, Dateien,
    [Vorlage])
    Ermittelt eine CRC-32 Prüfsumme aus einem "Text" oder einer oder mehrerer "Dateien".
    Das Argument "Einstellung" kann folgende Werte haben:
    S -> Zeichenkette (Standard). Es wird die CRC-32 Prüfsumme vom angegebenen "Text" errechnet und zurückgegeben.
    F -> Dateien. Die CRC-32 Prüfnumme wird aus dem Inhalt der angegebenen "Dateien" errechnet. Diese Dateien werden automatisch als Attachment der aktuellen Nachricht angehängt. Die Dateien müssen mit einem Pipe-Zeichen (|) voneinander getrennt werden. Die Ausgabe des Makros %XMP_DlgOpen kann somit direkt übernommen werden.
    N -> Verhindert das automatische Hinzufügen von Attachments.
    A -> Fügt das Ergebnis mit dem Namen "Attachments.sfv" als Attachment hinzu. Das Format der SFV Datei ist kompatibel zu Total Commander 7.56a (sofern keine eigene Vorlage verwendet wird).
    Ist als Einstellung "S" angegeben, werden alle anderen Einstellungen ignoriert.
    Mit dem Parameter "Vorlage" kann die Ausgabe der Dateinamen und Prüfsummen festgelegt werden. Dabei wird im Vorlagentext "{F}" gegen den Dateinamen und "{H}" gegen die CRC32-Prüfsumme ersetzt. Wird dieser Parameter nicht angegeben, wird die Vorlage "{F} {H}" verwendet.
    Die CRC-32 Prüfsumme ist kompatibel mit Total Commander, WinZip, WinRAR, PKZIP, ARJ und ZMODEM.
    Beispiel:
    %XMP_CRC32("S","Hallo")
    %_Files="%XMP_DlgOpen(1,'Open')"%-
    %XMP_CRC32("FA","%_Files")%-
    %XMP_CRC32("FN","%_Files","{F} (CRC32: {H})")
    Beispiel-Ausgabe:
    78B31ED5
    Granit.bmp (CRC32: 610F207B)
    Angler.bmp (CRC32: 3B433134)
    Feder.bmp (CRC32: C3571AF8)
    %XMP_For(Variable, Von, Bis, Vorlage) Führt die "Vorlage" mehrmals hintereinander aus. Beginnend bei der Zahl "Von" wird die "Variable" so lange erhöht, bis sie den Wert "Bis" erreicht. In der "Vorlage" kann die Variable mit "%%_Variable" abgefragt werden.
    Beispiel:
    %XMP_For("x",1,3,"Zeile %%_x
    ")%-
    %XMP_For("y",4,8,"%%_y. Zeile%XMP_StrChar(10)")
    Ausgabe:
    Zeile 1
    Zeile 2
    Zeile 3
    4. Zeile
    5. Zeile
    6. Zeile
    7. Zeile
    8. Zeile
    %XMP_MD5(Einstellungen, Text)

    %XMP_MD5(Einstellungen, Dateien,
    [Vorlage])
    Ermittelt den MD5-Hashwert aus einem "Text" oder aus einer oder mehrerer "Dateien".
    Das Argument "Einstellung" kann folgende Werte haben:
    S -> Zeichenkette (Standard). Es wird der MD5-Hash vom angegebenen "Text" errechnet und zurückgegeben.
    F -> Dateien. Der MD5-Hash wird aus dem Inhalt der angegebenen "Dateien" errechnet. Diese Dateien werden automatisch als Attachment der aktuellen Nachricht angehängt. Die Dateien müssen mit einem Pipe-Zeichen (|) voneinander getrennt werden. Die Ausgabe des Makros %XMP_DlgOpen kann somit direkt übernommen werden.
    N -> Verhindert das automatische Hinzufügen von Attachments.
    A -> Fügt das Ergebnis mit dem Namen "Attachments.md5" als Attachment hinzu. Das Format der MD5-Datei ist kompatibel zu Total Commander 7.56a (sofern keine eigene Vorlage verwendet wird).
    Ist als Einstellung "S" angegeben, werden alle anderen Einstellungen ignoriert.
    Mit dem Parameter "Vorlage" kann die Ausgabe der Dateinamen und Prüfsummen festgelegt werden. Dabei wird im Vorlagentext "{F}" gegen den Dateinamen und "{H}" gegen den MD5-Hashwert ersetzt. Wird dieser Parameter nicht angegeben, wird die Vorlage "{H} *{F}" verwendet.
    Beispiel-Ausgabe:
    D1BF93299DE1B68E6D382C893BF1215F
    Granit.bmp (MD5: 1AC5E83598D4F2143B59A2D893C3279A)
    Angler.bmp (MD5: 203EF178BF8B0A8EC34E27E4DEDB6349)
    Feder.bmp (MD5: 3A8B85AB7B415BF3F8AFE285DFE0CE29)
    %XMP_Progress(Füllung, Balken, Länge,
    Gesamt, Wert)
    Zeichnet eine Vortschrittsleiste in der angegebenen "Länge". Die "Länge" gibt die Gesamtlänge der Leiste an, die mit dem Zeichen "Füllung" ausgefüllt wird. Für die Darstellung des Vortschrittes wird das unter "Balken" angegebene Zeichen verwendet. Der Wert "Gesamt" bezieht sich auf den Maximalwert von "Wert", der den Fortschritt angibt.
    Beispiel:
    [%XMP_Progress("-","#",25,7,6)]
    [%XMP_Progress(".","X",25,100,50)]
    Ausgabe:
    [#####################----]
    [XXXXXXXXXXXX.............]
    %XMP_Random([Max])

    %XMP_Random([Min], [Max])
    Generiert eine Zufallszahl zwischen "Min" und "Max".
    Wird "XMP_Random" ohne Parameter aufgerufen, wird eine Zwahl im Bereich von 1 bis 100 zurückgegeben.
    Wird nur ein Argument angegeben, wird eine Zahl zwischen 1 und "Max" zurückgegeben.
    Beispiel:
    %XMP_Random
    %XMP_Random(10)
    %XMP_Random(100,999)
    Ausgabe:
    78
    3
    732
    %XMP_Rot13(Text) Kodiert den "Text" in und von ROT-13.
    Beispiel:
    %XMP_Rot13("ROT13 Test-Text")
    %XMP_Rot13("EBG13 Grfg-Grkg")
    Ausgabe:
    EBG13 Grfg-Grkg
    ROT13 Test-Text
    %XMP_Select(Wert, Standard, Wert1,
    Ausgabe1, [Wert2], [Ausgabe2], ...)
    Überprüft, ob der "Wert" einem der unter "Wert1", "Wert2"... angebebenen Werte entspicht und gibt die entsprechende "Ausgabe" zurück. Trifft kein Wert zu, wird "Standard" zurückgegeben.
    Beispiel:
    %_Farbe="G"%-
    %_Zahl="3"%-
    %XMP_Select(%_Farbe,"keine Farbe","R","Rot","G","Grün","B","Blau")
    %XMP_Select(%_Zahl,"keine gültige Zahl","1","eins","2","zwei")
    Ausgabe:
    Grün
    keine gültige Zahl
    %XMP_SHA1(Einstellungen, Text)

    %XMP_SHA1(Einstellungen, Dateien,
    [Vorlage])
    Ermittelt den SHA1-Hashwert aus einem "Text" oder aus einer oder mehrerer "Dateien".
    Das Argument "Einstellung" kann folgende Werte haben:
    S -> Zeichenkette (Standard). Es wird der SHA1-Hash vom angegebenen "Text" errechnet und zurückgegeben.
    F -> Dateien. Der SHA1-Hash wird aus dem Inhalt der angegebenen "Dateien" errechnet. Diese Dateien werden automatisch als Attachment der aktuellen Nachricht angehängt. Die Dateien müssen mit einem Pipe-Zeichen (|) voneinander getrennt werden. Die Ausgabe des Makros %XMP_DlgOpen kann somit direkt übernommen werden.
    N -> Verhindert das automatische Hinzufügen von Attachments.
    A -> Fügt das Ergebnis mit dem Namen "Attachments.sha" als Attachment hinzu. Das Format der SHA-Datei ist kompatibel zu Total Commander 7.56a (sofern keine eigene Vorlage verwendet wird).
    Ist als Einstellung "S" angegeben, werden alle anderen Einstellungen ignoriert.
    Mit dem Parameter "Vorlage" kann die Ausgabe der Dateinamen und Prüfsummen festgelegt werden. Dabei wird im Vorlagentext "{F}" gegen den Dateinamen und "{H}" gegen den SHA1-Hashwert ersetzt. Wird dieser Parameter nicht angegeben, wird die Vorlage "{H} *{F}" verwendet.
    Beispiel:
    %XMP_SHA1("S","Hallo")
    %_Files="%XMP_DlgOpen(1,'Open')"%-
    %XMP_SHA1("FA","%_Files")%-
    %XMP_SHA1("FN","%_Files","{F} (SHA1: {H})")
    Ausgabe:
    59D9A6DF06B9F610F7DB8E036896ED03662D168F
    Granit.bmp (SHA1: DB8FBCE9655C2503FE543E1140B6CD82245D2535)
    Angler.bmp (SHA1: 243B1AA7E2D2613FF3859BEE5022AA09DD48CBC0)
    Feder.bmp (SHA1: 34C9F1B45C5EE190A969823FF455197748CFD3AB)
    %XMP_Until(Variable, Bis, Vorlage) Führt die "Vorlage" solange aus, bis "Variable" den Wert von "Bis" erreicht. In der "Vorlage" kann die Variable mit "%%_Variable" gesetzt bzw. abgefragt werden.
    Beispiel:
    %XMP_Until("x","3","%%_x=#%%CALC('%%_x + 1')#%%-
    %%_x. Zeile%%XMP_StrChar(10)")
    Ausgabe:
    1. Zeile
    2. Zeile
    3. Zeile
    %XMP_UrlDldFile(URL, Dateiname) Startet den Download einer Datei von der "URL" und speichert diese Datei unter "Dateiname" ab.
    Die "URL" und der "Dateiname" müssen den kompletten Pfad zur Datei beinhalten.
    Das Makro gibt "1" für einen erfolgreichen Download und "0" für einen fehlgeschlagenen Download zurück.
    Achtung: Die herunter zu ladende Datei sollte nicht all zu groß sein, da das Makro für die Dauer des Downloads stoppt und keine Möglichkeit zum Abbrechen bietet.

    0