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).
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. ;)
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.
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.
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
)
Tags und Links windows environment-variables batch-file