Einfachere Möglichkeit zum Ändern von Umgebungsvariablen in Windows 8? [Duplikat]

27

Mögliche Duplikate:
Was sind PATH- und andere Umgebungsvariablen und wie kann ich sie festlegen oder verwenden?

Ich weiß, dass ich meine Umgebungsvariablen in Windows 8 bearbeiten kann, indem ich gehe zu

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

Aber ehrlich gesagt ist das lächerlich komplex.

Gibt es eine einfachere Möglichkeit, Umgebungsvariablen in Windows 8 zu ändern?

Wenn ich zum Beispiel nur einen neuen Ordner an PATH anhängen möchte, ist es wirklich ärgerlich, all diese Schritte durchzugehen. Die Benutzeroberfläche ist auch scheiße, weil es sehr schmerzhaft ist, lange variable Werte mit der kleinen Texteingabe zu bearbeiten.

Anforderung 1: Ich muss die Änderungen beibehalten (z. B. wenn ich setin der Konsole verwende, gehen die Änderungen verloren, wenn ich die Konsole schließe)

Anforderung 2: Ich würde eine Lösung vorziehen, bei der keine zusätzlichen Softwareteile installiert werden, da dies das Problem ist, auf das ich bei jeder Konfiguration einer neuen Windows-Box stoße.

jsalonen
quelle
Schöner Beitrag zum Thema: windows-commandline.com/set-path-command-line
Royi

Antworten:

32

Haben Sie den Befehl set und setx untersucht ? Mit ihnen können Sie eine persistente Variable setzen. Darüber hinaus wird der Wert sofort angewendet, nicht nach der nächsten Anmeldung.

Beispiel eines Windows- SETBefehls :

Drucken Sie die Umgebungsvariable PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Verwenden Sie den Befehl set, um die Variable PATH festzulegen

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

Der obige Befehl gilt nur für das aktuelle Fenster und die Änderung geht verloren, wenn das cmd-Fenster geschlossen wird.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Beispiel eines Windows- SETXBefehls :

Drucken Sie die Umgebungsvariable PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Verwenden Sie setx, um die Umgebungsvariable festzulegen:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Schließen Sie das cmd-Terminal und öffnen Sie es erneut. Führen Sie dann Folgendes aus:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

Sie müssen mit doppelten Anführungszeichen vorsichtig sein. Wenn Sie Anführungszeichen in Ihre Pfadvariable aufnehmen lassen, kann dies zu Problemen führen. Sie sind jedoch erforderlich, um Ergänzungen zum ursprünglichen% PATH% anzugeben.

Yury
quelle
1
Danke für den Tipp! Ich habe versucht, setx PATH=%PATH%;;C:\testaber ich bekomme Syntaxfehler :(
jsalonen
2
Bei Verwendung von setx gibt es kein = -Zeichen. Do setx /?
EBGreen
4
Keine Argumente "setx" setzen die Variable nur im Benutzerkontext. Verwenden Sie zum Einstellen im Systemkontext "setx / M". Wenn Sie sich dessen nicht bewusst sind, werden Sie möglicherweise verwirrt, da "echo% PATH%" die System- und Benutzerwerte verkettet anzeigt.
Vituel
Beachten Sie, dass Sie die Shell neu starten müssen, nachdem Sie diese Änderung vorgenommen haben, damit sie wirksam wird.
Doug
kleine Anmerkung: set path= ~ echo %PATH% [ set pathzeigt auch den Wert von PATHEXT]
gerryLowry
10

Umgebungsvariable in Windows 8 einstellen.

Sie können auf die erweiterten Systemeinstellungen zugreifen, indem Sie mit der rechten Maustaste Computerauf a klicken file-explorerund zu gehen properties.

Dies ist dasselbe wie bei älteren Windows-Versionen. Sie können Umgebungsvariablen auch über die Befehlszeile festlegen, wie hier angegeben:

Was sind PATH- und andere Umgebungsvariablen und wie kann ich sie festlegen oder verwenden?

vishesh
quelle
4

Ich ändere sie in Powershell. Um beispielsweise einen Ordner zur PATH-Variablen hinzuzufügen, öffnen Sie Powershell wie folgt:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

Das würde es für alle Benutzer ändern. Ändern Sie diesen letzten Parameter in "Benutzer", um ihn nur für den Benutzer zu ändern, der den Befehl ausführt. Oder ändern Sie es einfach vorübergehend in dieser Sitzung:

$env:Path += ';C:\temp'
EBGreen
quelle
toll! Wie machen Sie die Verkettung von $ env: Path + '; C: \ Temp' an der Eingabeaufforderung? In den hier aufgeführten Set & Setx-Lösungen wird erläutert, wie der gesamte Pfad an der Eingabeaufforderung festgelegt wird, in keiner wird jedoch erläutert, wie dem vorhandenen Pfad etwas angehängt wird.
Johny, warum
Hier erfahren Sie, wie Sie an einer Eingabeaufforderung etwas an den vorhandenen Pfad anhängen. / M wird verwandt, um die SYSTEM-Variable lieber als die USER-Variable zu ändern. Anführungszeichen werden verwendet, da "My Folder" Leerzeichen enthält: setx PATH "% PATH%; C: \ My Folder" / M
johny why
Das einzige Problem bei der Verwendung der Eingabeaufforderung ist die Beschränkung auf 255 Zeichen, und der System-PFAD wird diesen Wert wahrscheinlich überschreiten (insbesondere, wenn Sie mehr Verzeichnisse anhängen). Daher ist Powershell der richtige Weg (ich könnte mich irren, aber ich glaube, dass es bei Powershell keine Beschränkung der Anzahl der Charaktere gibt).
Johny, warum
3

In der Befehlszeile ist es ziemlich einfach:

set MyVar=HelloWorld

(Um zur Befehlszeile zu gelangen, geben Sie cmdvom Startbildschirm aus> ein.)

So zeigen Sie eine Variable an:

echo %MyVar%

Dient setxzum dauerhaften Festlegen einer Variablen. Die Syntax ist etwas anders. Versuchen Sie es hier , oder es gibt viele andere Websites, auf denen Sie erfahren, wie Sie es verwenden.

ACarter
quelle
Ja, danke Mann, ich weiß das schon, aber das Problem ist, dass wenn Sie Änderungen auf diese Weise vornehmen, diese nicht bestehen bleiben - dh wenn ich die Befehlszeile schließe und wieder öffne, werden die Variablen auf die Standardeinstellungen zurückgesetzt. Meine Frage wurde aktualisiert, um dies widerzuspiegeln. Entschuldigung.
jsalonen
Weißt du, ob ich etwas tun kann set, das bestehen bleibt?
jsalonen
1
setx ist für dauerhafte Änderungen
EBGreen
Gibt es eine Möglichkeit, die Variable nur bis zum nächsten Neustart festzulegen? Andernfalls, wenn ich set aus einem anderen Programm verwende (sagen wir OS-Befehl aus Python oder MATLAB), wird es so lange anhalten, wie die Sitzung des Programms geöffnet ist?
Royi