ingo: Win-Umgebungsvariable setzen

Hallo zusammen,

Ich suche ich eine möglichkeit eine Windows Umgebungsvariable aus einem Dos Fenster (Perl anwendung) dauerhaft zu ändern.
set name=wert  setzt sie zwar, aber nur innerhalb diesem Fenster. Gibt es einen anderen Befehl ?
Ich brauche die Variable auch nach dem schließen der Anwendung/des Fensers noch.

Ingo

  1. Halihallo ingo

    Ich suche ich eine möglichkeit eine Windows Umgebungsvariable aus einem Dos Fenster (Perl anwendung) dauerhaft zu ändern.

    Das ist per se nicht möglich.
    a) Perl's %ENV ist nichts anderes als eine Kopie der Environment-
       Variablen
    b) Jede DOS-Box erhält automatisch ihre eigene Kopie der Umgebungs-
       Variablen; wenn diese geändert werden, sind sie nach Beenden der
       Sitzung verloren.
    c) Auch ein Backend zu C's setenv ist wegen b) und deiner
       Aufgabenstellung unmöglich.

    set name=wert  setzt sie zwar, aber nur innerhalb diesem Fenster. Gibt es einen anderen Befehl ?

    Nicht direkt.

    Ich brauche die Variable auch nach dem schließen der Anwendung/des Fensers noch.

    Die einzige Möglichkeit besteht darin, direkt mit dem Betriebssystem
    zu "kommunizieren":

    perldoc Win32::Registry

    Die Environment-Variablen (vom System, nicht dem User, diese liegen
    in HKEY_CURRENT_USER) liegen unter:

    HKEY_LOCAL_MASCHINE//SYSTEM/CurrentControlSet/Control/Session Manager/Environment

    Vom User liegen sie in:

    HKEY_CURRENT_USER//Environment

    Viele Grüsse

    Philipp