## Kommando ausführen

Das Feld Ausführen eines Eintrages enthält ein Kommando. Dieses Kommando wird ausgeführt, wenn der Menüpunkt Ausführen ausgewählt wird. Das Kommando kann alles das enthalten was nach Start->Ausführen am Computer auch eingegeben werden kann.

Zusätzlich kann Password Safe Parameter zum Kommando übergeben, wie da sind: Benutzername, Passwort, usw. So können einigermaßen komplizierte Aktionen programmiert werden, wie z.B. Aufrufen eines Programms über Fernzugriff mit Übergabe von Benutzername und Passwort.

In der Regel werden 'Variablen' ersetzt durch die dazugehörigen Werte, bevor das Kommando dem Computer übergeben wird. Ein Dollarzeichen ('$') kennzeichnet die Variablen.

- Variablen sind spezifiziert mit '$name' und sie sind case sensitive. Namen von Variablen beginnen immer mit einem alphabetischen Zeichen, gefolgt von alphanumerischen Zeichen. Der Variablenname endet beim nächsten nicht-alphanumerischen Zeichen, oder am Ende des Kommandostrings.
  - Wenn direkt an einem Variablenname ein alphanumerisches Zeichen anschließt, sollte der Variablenname in geschweifte Klammer gesetzt werden. Z.B. '${varname}blabla'.
  - Um das Zeichen '$' in einem normalen Text nicht als Variablenindikator zu verwenden, muss ein umgekehrter Schrägstrich ('\') vorangestellt werden, z.B. '\$text' wird als Text '$text' und nicht als Variable 'text' interpretiert.
  - Um vor dem Zeichen '$' ein umgekehrter Schrägstrich einzusetzen, setzt man ein doppelter ('\\') ein, z.B. aus '\\$name' wird '\$name', und '$name' wird als Variable interpretiert. Ein umgekehrter Schrägstrich ('\'), der nicht zum Zeichen '$' verwendet wird, kann als einzelnes Zeichen dargestellt werden.
  - Eine Variable die von einem numerischen Wert in eckigen Klammern gefolgt wird, wird als Indexwert bezeichnet. Der Indexwert 'n' kann einem '+' oder '-' vorangestellt sein. Es kann z.B. [-2] oder [2] oder [+2] sein. Password Safe behandelt ein Indexwert von Null als das komplette Feld.
- Folgende Variablen werden momentan erkannt:
  - Bezogen auf die Applikation:

    appdir | Verzeichnis des Programms Password Safe. Siehe Noten 1 und 2 unten.

  - Bezogen auf die aktuelle Datenbank:

    dbdir | Verzeichnis der aktuell geöffneten Datenbank. Siehe Noten 1 und 2 unten.
    fulldb | Pfad, Dateiname und Erweiterung der aktuell geöffneten Datenbank. Siehe Note 2 unten.
    dbname | Dateiname der aktuell geöffneten Datenbank.
    dbextn | Erweiterung der aktuell geöffneten Datenbank.

  - Bezogen auf den aktuellen Eintrag:

    g oder group | Gruppe (komplette Struktur von der Wurzel weg, die Gruppen mit Punkte getrennt).
    G oder GROUP | Nur die Gruppe die diesen Eintrag enthält.
    t oder title | Titel
    u oder user | Benutzername
    p oder password | Passwort
    e or email | Email
    a oder autotype | Autom. Eingabe. Siehe Note 5 unten.
    url | URL
    n oder n[0] | Das komplette Feld Notizen (auch: notes oder notes[0]). Siehe Note 3 unten.
    n[i] oder notes[i] | ith Zeile im Feld Notizen, beginnend am Anfang. Z.B. i=1 ist die erste Zeile, i=2 ist die zweite Zeile, usw. Siehe Note 4 unten.
    n[-i] oder notes[-i] | ith Zeile im Feld Notizen, beginnend am Ende. z.B. i=1 ist die letzte Zeile, i=2 ist die vorletzte Zeile, usw. Siehe Note 4 unten.

    Noten |
    --- | ---
    1 | Verzeichnisse (appdir oder dbdir) haben kein '\' am Ende. Achten sie darauf wenn sie dies im auszuführenden Kommando brauchen.
    2 | Der Inhalt einer Variablen (sowohl Verzeichnisse als auch ganze Pfade) kann Leerzeichen enthalten. Unter Umständen muss dieser Inhalt in Gänsefüßchen eingeschlossen werden um das auszuführende Kommando auch richtig auszuführen.
    3 | Wenn im Feld Notizen mehr als eine Zeile vorhanden ist, sind auch die Zeichen Wagenrücklauf (CR) und Zeilenvorschub (LF) vorhanden. Dies kann zu Schwierigkeiten führen, wenn CR und/oder LF als 'Enter' interpretiert werden.
    4 | In Einzelzeilen werden sämtliche CR und/oder LF aus dem Feld Notizen entfernt.
    5 | Wenn die Variable für Autom..Eingabe vorhanden ist, wird die Autom..Eingabe ausgeführt im Moment wo das Windows Fenster aktiv ist. Die Variable und der Wert (soweit vorhanden) werden entfernt aus dem auszuführenden Kommando. Diese Variable kann beliebig im auszuführenden Kommando stehen, weil es nur definiert was Password Safe tut nach der Ausführung des Kommandos. Im Unterschied zu den anderen Variablen, kann es dadurch den aktuellen Wert im Eintrag übergehen. Das Format ist ($autotype könnte $a ersetzen in den folgenden Beispiele):
    $a | Verwende den Wert des aktuellen Eintrages.
    ${a} | Verwende den Wert des aktuellen Eintrages (wenn Text direkt an der Variable '$a' anschließt).
    $a(Wert) | Verwende den Wert in runden Klammern als Autom..Eingabe.
    ${a}(Wert) | Verwende den Wert in runden Klammern als Autom..Eingabe.

    Hinweis: Stellen sie sicher das das Kommando gegebenenfalls in Gänsefüßchen eingeschlossen ist. Z.B. wenn das Datenbankverzeichnis Leerzeichen enthält, ist für den Zugriff auf eine Textdatei mit dem Namen der aktuellen Datenbank folgendes notwendig (inkl. Hochkomma):

        '$dbdir\\$dbname.txt'

    Bemerken sie dass der umgekehrter Schrägstrich ('\\') zweimal eingesetzt ist, um '$dbname' als Variable zu erkennen.

    Für Windows werden Umgebungsvariable (definiert als %Variablenname%) normal ersetzt. Z.B., '%windir%\notepad.exe' wird (abhängig von der Installation) in 'C:\Windows\notepad.exe' umgewandelt. Die aktuellen Werte der Umgebungsvariablen können ermittelt werden durch Ausführen von 'cmd.exe' und Absetzen des Befehles 'set' ohne Parameter. Sämtliche unbekannte Umgebungsvariablen bleiben unverändert im auszuführenden Kommando, z.B. %xyz%\notepad.exe bleibt %xyz%\notepad.exe wenn die Variable 'xyz' nicht besteht. Hinweis: Windows Umgebungsvariablen sind nicht case sensitive.

### Beispiele

- Das folgende ausführbare Kommando wird das Program Putty veranlassen eine Verbindung zu myHost zu machen, mit Benutzername und Passwort:

      "C:\Program Files\PuTTY\putty.exe" -ssh ${u}@myHost 22 -pw $p

- Dies wird eine neue Instanz von Password Safe öffnen mit der angegebenen datenbank (Dank an Dave dafür)

       ${autotype}(\p\n)"${appdir}\pwsafe.exe" \UNC\path\to\database.psafe3

- Stellen sie sicher dass in Verwalten → Optionen → System "Mehrere Instanzen erlauben" eingeschaltet ist, um dies funktionieren zu lassen
- Sie könnten eventuell auch die Doppelklick Aktion für diesen Eintrag auf "Ausführen" stellen