Umgebungsvariablen



  • Hallo,
    ich habe keine Ahnung ob es hier richtig ist aber da ich kein anderes Forum kenne schreibe ich es hier rein, da es unter Betriebssysteme am besten passt.

    Es geht um Umgebungsvariablen.
    Ich will die Systemvariable Path erweitern mit dem Ordner einer Entwicklungsumgebung.
    Die Entwicklungsumgebung an sich hat selber eine Benutzervariable. Wenn eine neue Version installiert wird, wird automatisch diese Benutzervariable verändert, so dass alle Programm-Codes die neu kompiliert werden sofort mit der neuesten Version arbeiten.

    Jetzt würde ich gerne den Pfad in Path von der Benutzervariable von der Entwicklungsumgebung abhängig machen, so dass auch immer automatisch im neuesten Ordner nach den dlls gesucht wird.

    Ich habe bei Benutzervariablen rum gespielt und folgendes raus gefunden:
    Variable1: BENUTZERVAR1 Wert: C:\Programme\Entwicklungsumgebung
    Variable2: BENUTZERVAR2 Wert: %Variable1%\bin

    Wenn ich nun im Explorer %BENUTZERVAR2% eingebe komme ich dort hin, wo ich hin will. Ändere ich BENUTZERVAR1 ab, und gebe noch mals %BENUTZERVAR2% ein, komme ich zum neuen Ordner, genau das was ich will.

    Wenn ich nun %Variable1%\bin bei Path hinzufüge, findet er die dlls leider nicht. nur wenn ich C:\Programme\Entwicklungsumgebung\bin stattdessen eintrage.

    Kann ich Path irgend wie mit der anderen Umgebungsvariable so anpassen, dass es klappt?

    Danke


  • Mod

    Also bei mir funktioniert das.
    In meinem PATH steht z.B. %BPADIR% drin.
    Dieser wird auch berücksichtigt.

    Dir muss nur klar sein, dass bei Session/Prozess Start dieser PATH festgelegt wird und die Variablen in diesem Moment expandiert werden.



  • Das heißt, wenn ich es im Klartext in die Systemvariable schreibe, geht es sofort, wenn ich eine Umgebungsvariable in der Systemvariable hernehme, erst nach neustart. Richtig verstanden?


  • Mod

    Xenya schrieb:

    Das heißt, wenn ich es im Klartext in die Systemvariable schreibe, geht es sofort, wenn ich eine Umgebungsvariable in der Systemvariable hernehme, erst nach neustart. Richtig verstanden?

    Richtig, evtl. langt auch Neustart des Prozesses, der diese Infos nutzen will.
    Probiere es doch mit CMD.EXE aus.



  • so habs getestet
    also:
    Konsole aufgemacht, echo %Path%
    Ausgabe:
    C:\Programme\Entwicklungsumgebung\bin;andereDinge;...

    Systemvariable abgeändert, echo %Path% gemacht
    Ausgabe:
    C:\Programme\Entwicklungsumgebung\bin;andereDinge;...

    Konsole neu gestartet, echo %Path%
    Ausgabe:
    %Variable1%\bin;andereDinge;...

    Abgemeldet und wieder Angemeldet, wieder
    %Variable1%\bin;andereDinge;...
    Neustart, abermals:
    %Variable1%\bin;andereDinge;...

    Hm, muss ich ein "" rum drum machen dass er es da kapiert?
    Oder (meine Vermutung):
    Man kann zwar Umgebunsvariablen hernehmen aber bei Systemvariablen darf keine Benutzervarable drin stehen. Kann dies der Fall sein?
    Da wir auf der Firma normal keine Admin-Rechte haben schreibt die Entwicklungsumgebung in die Benutzervariable des Accounts, bei dem es gerade installiert wird.


  • Mod

    Wie schreibt Ihr das in die Registry?
    Als REG_EXPAND_SZ oder als REG_SZ, letzteres wäre ein dann der Fehler.



  • Ich weiß nicht genau, was du meinst.

    Ich verwende die Umgebungsvariablen über Start->Systemsteuerung->System->Erweitert->Umgebungsvariablen
    dort die Benutzervariablen
    und die Systemvariablen.

    Ich habe im Moment Adminrechte beantragt um den Path in Systemvariablen anzupassen.

    An der Registry mach ich gar nichts.


  • Mod

    OK. In HKCU ist PATH als REG_SZ hinterlegt
    In HKLM ist es ein REG_EXPAND_SZ.

    Die entsprechenden Typen sorgen für das Expandieren oder eben nicht...
    Entsprechend scheint das Verhalten eben durch das OS vorgegeben sein!



  • Martin Richter schrieb:

    OK. In HKCU ist PATH als REG_SZ hinterlegt
    In HKLM ist es ein REG_EXPAND_SZ.

    Die entsprechenden Typen sorgen für das Expandieren oder eben nicht...
    Entsprechend scheint das Verhalten eben durch das OS vorgegeben sein!

    das heißt bei mir gehts nicht?


  • Mod

    Bei mir würde es auch nicht gehen.
    Denn bei mir ist nur im HKLM PATH die Variable drin.



  • gut dann muss ich mich wohl damit abfinden, dass ich es ändern muss.

    Danke


Anmelden zum Antworten