Die Umgebungsvariable% PATH% eines Benutzers wird permanent über Batch oder Python geändert

8

Ich habe Schwierigkeiten, meine Benutzer dazu zu bringen, die PATH-Umgebungsvariable manuell einzustellen. Ich suche nach einer Möglichkeit, dies automatisch zu tun. Eine Batch-Datei wäre vorzuziehen, da dies erfordern würde, dass sie es selbst ausführen (mit einer Warnung, was sie tun), aber ein Zusatz zum setup.py ist auch akzeptabel.

Weitere Informationen: SET betrifft nur die aktuellen und abgeleiteten Shells; die permanenten Werte scheinen irgendwo im Register gespeichert zu sein (ein Ort, an dem ich nicht trete).

    
Xiong Chiamiov 21.07.2009, 00:31
quelle

4 Antworten

5

Wie David sagte, gibt es das SETX-Tool, das Sie aus dem Windows Resource Kit erhalten können.

Ich habe jedoch festgestellt, dass SETX manchmal Probleme (wie Absturz) hat. Ich habe nicht genau herausgefunden, was das Problem ist, aber ich vermute, dass es ein Größenproblem ist (zum Beispiel, wenn Sie versuchen, eine Variable - in meinem Fall war es PATH - auf einen zu großen Wert zu setzen, zB & gt; 1024 etwas ungerade Zeichen).

Ich habe zwei andere ausführbare Dateien gefunden, die dasselbe tun können. Mein Favorit ist insbesondere SetEnv von Jonathan "Darka" Wilkes bei CodeProject. Er hat es sehr nützlich gemacht, mit guter Funktionalität und es ist mit allen Windows-Systemen kompatibel - ich habe auch einige Funktionen vorgeschlagen. :)

Eine weitere Option ist, wenn Sie es selbst machen, es manuell zu tun (das Element wird der Registrierung hinzugefügt und dann entweder ein WM_SETTINGCHANGE auf die oberste Ebene übertragen oder die Shell neu starten / Neustart). Ich denke jedoch, dass SetEnv in einer BATCH-Datei die beste Wahl ist. ;)

    
Synetech 21.07.2009, 02:44
quelle
5
  

Da ich Schwierigkeiten habe, meine Benutzer dazu zu bringen, den PFAD manuell einzustellen, suche ich nach einer Möglichkeit, dies automatisch zu tun.

Mit dem Registrierungsschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths (sowie HKEY_CURRENT_USER\... ) können Sie einen anwendungsspezifischen Pfad an den Namen Ihrer ausführbaren Datei anhängen.

Immer wenn eine ausführbare Datei mit dem angegebenen Namen gestartet wird, wird der anwendungsspezifische Pfad zur Umgebungsvariablen PATH der ausführbaren Datei hinzugefügt.

    
mrsheen 23.12.2010 03:30
quelle
2

Von dieser Website :

  

Verwenden des Add-On-Tools Setx.exe

     

Es gehört nicht zum Standard-Windows   XP-Setup, aber ein Befehlszeilentool   namens setx.exe ist in der   Unterstützung für Windows XP Service Pack 2   Werkzeuge. Dieses Tool erweitert das Set   befehlen, damit dauerhafte Änderungen in   die Umgebungsvariablen können erstellt werden.   Zum Beispiel, um einen Ordner C: \ New hinzuzufügen   Ordner auf den Pfad, der Befehl würde   sei

%Vor%

Das klingt, als ob es für das, was Sie tun möchten, funktioniert.

    
David Archer 21.07.2009 00:40
quelle
2

Ich bin gerade über diese Frage gestolpert und mochte keine der verfügbaren Optionen, also entschied ich mich, meine eigene Lösung zu schreiben.

(SetEnv wäre gut gewesen, aber ich mochte die Nicht-Libre-Lizenz nicht und ich bevorzuge es immer, keinen Subprozess aufrufen zu müssen ... Ich hätte nichts dagegen, SetEnv als Subprozess zu bezeichnen, aber laut Wikipedia , die Lizenz, die es verwendet, ist nicht-libre, weil es irgendeine Art von "Do no Evil" -Klausel hat und diese Art von rechtlich unklaren Beschränkungen ist meiner Meinung nach immer eine tickende Zeitbombe.)

Hier ist eine kleine MIT-lizenzierte Python-Klasse , um die Arbeit daran zu verschwenden, die Registrierung direkt zu ändern und das WM_SETTINGCHANGE zu senden. (Gut für den Einsatz in setup.py )

    
ssokolow 05.06.2011 22:49
quelle