Es ist einfach, eine Umgebungsvariable mit der Eingabeaufforderung (CMD) hinzuzufügen oder zu ändern, aber das Entfernen ist viel komplizierter. Hier sind ein paar verschiedene Möglichkeiten, wie Sie dies tun können.
So fügen Sie eine Umgebungsvariable hinzu oder ändern sie
Notiz: Jede Benutzerumgebungsvariable kann in einem normalen Eingabeaufforderungsfenster festgelegt oder geändert werden, aber das Ändern von systemweiten Umgebungsvariablen erfordert eine Eingabeaufforderung mit erhöhten Rechten.
Es gibt zwei verschiedene Möglichkeiten, Umgebungsvariablen festzulegen.
Vorübergehendes Setzen einer Umgebungsvariable
Die erste verwendet den set-Befehl. Set definiert eine Umgebungsvariable ausschließlich innerhalb des Prozesses, in dem sie definiert wurde – mit anderen Worten, die Variable funktioniert nur in dem Fenster, das Sie geöffnet haben, oder dem Skript, das sie enthält.
Hier ist ein Beispiel: Angenommen, Sie möchten eine Umgebungsvariable mit dem Namen LifeAnswerVar erstellen und den Wert auf 42 setzen. Der Befehl wäre set LifeAnswerVar=42
.
Während dieses Fenster geöffnet ist, hat LifeAnswerVar den Wert 42.
Beim Schließen werden die Umgebungsvariable und ihr Wert gelöscht.
Die exakt gleiche Methode funktioniert, wenn Sie eine vorhandene Windows-Systemvariable vorübergehend ändern möchten. Sie müssen lediglich die Systemvariable, die Sie ändern möchten, anstelle von LifeAnswerVar und den Wert, den Sie zuweisen möchten, anstelle von 42 ersetzen.
Wenn Sie beispielsweise den TMP-Ordner nach C:\Example Folder verschieben möchten, geben Sie den Befehl ein set TMP=C:\"Example Folder"
.
Die erste Zeile, set TMP
, zeigt den aktuellen Wert von TMP. Die zweite Zeile weist TMP einen neuen Wert zu. Die dritte Zeile bestätigt die Änderung.
Eine Umgebungsvariable dauerhaft setzen
Der zweite Weg verwendet setx. Setx definiert Windows-Umgebungsvariablen dauerhaft. Sie bleiben zwischen Windows und zwischen Neustarts bestehen und werden in die geschrieben Windows-Registrierung. Diese Umgebungsvariablen können für einen bestimmten Benutzer oder für die systemweite Verwendung definiert werden.
Der Befehl setx ExVar1 Tomato /m
erstellt eine neue Umgebungsvariable namens ExVar1 und weist ihr den Wert „Tomato“ zu. Das Argument /m gibt an, dass die neue Variable systemweit gelten soll, nicht nur für den aktuellen Benutzer.
Verwenden Sie genau denselben Befehl, um eine vorhandene Umgebungsvariable zu ändern, und ersetzen Sie ExVar1 durch den Namen der Variablen, die Sie ändern möchten.
Notiz: Wenn Sie setx verwenden, um eine Variable zu ändern, und set, um den Wert der Variablen anzuzeigen, zeigt set nicht den richtigen Wert an, bis ein neues Eingabeaufforderungsfenster geöffnet wird.
Wenn Sie eine Benutzerumgebungsvariable hinzufügen oder ändern möchten, lassen Sie einfach das Argument /m aus dem Befehl weg.
So entfernen Sie eine Umgebungsvariable
Eine Umgebungsvariable zu entfernen ist etwas schwieriger als eine hinzuzufügen oder zu ändern.
Notiz: Wie beim Hinzufügen einer Variablen kann jede Benutzerumgebungsvariable in einem normalen Eingabeaufforderungsfenster gelöscht werden, aber das Löschen einer systemweiten Umgebungsvariablen erfordert eine Eingabeaufforderung mit erhöhten Rechten.
Vorübergehendes Entfernen einer Umgebungsvariablen
Wenn Sie eine Umgebungsvariable für den aktuellen Prozess vorübergehend entfernen möchten, z. B. ein Skript, ein PowerShell-Fenster oder ein Eingabeaufforderungsfenster, können Sie den Befehl set verwenden. Sie müssen der Variablen lediglich keinen Wert zuweisen.
Was ist zum Beispiel, wenn Sie die Variablendefinition haben ExVar1=Tomato
in den systemweiten Umgebungsvariablen, wollten sie aber für einen bestimmten Prozess ignorieren? Du kannst Tippen set ExVar1=
in die Eingabeaufforderung oder fügen Sie diese Zeile in Ihr Skript ein. Die Variable wird auf nichts gesetzt, während das Skript ausgeführt wird oder bis Sie ein neues Eingabeaufforderungsfenster öffnen.
Dauerhaftes Entfernen einer Umgebungsvariable
Das dauerhafte Entfernen einer Umgebungsvariablen ist etwas komplexer – Sie müssen verwenden reg
es zu tun.
Warnung: Reg ist die Befehlszeilenversion des Registrierungseditors. Sie sollten mit Vorsicht vorgehen – ein Tippfehler könnte dazu führen, dass Sie versehentlich etwas Wichtiges löschen. Es tut nie weh Sichern Sie auch den Teil der Registrierung, den Sie bearbeiten.
Die Umgebungsvariablen für einzelne Benutzer werden in gespeichert HKEY_CURRENT_USER\Environment
. Systemweite Umgebungsvariablen werden an anderer Stelle gespeichert, in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
.
Nutzen wir die ExVar1=Tomato
Beispiel. Die Umgebungsvariable ExVar1 wurde systemweit definiert, was bedeutet, dass sie sich im Verzeichnis HKEY_LOCAL_MACHINE und nicht im Verzeichnis HKEY_CURRENT_USER befindet. Insbesondere lautet der Pfad zum Unterschlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ExVar1
Notiz: Dieser Pfad enthält ein Leerzeichen. Jedes Mal, wenn ein Leerzeichen in einem Pfad enthalten ist, der in eine Befehlszeilenschnittstelle eingegeben wird, müssen Sie den Pfad in Anführungszeichen setzen, da es sonst sehr wahrscheinlich ist, dass er nicht korrekt ausgeführt wird.
Jetzt müssen wir die verwenden reg delete
Befehl, es zu entfernen. Denken Sie daran, dass Sie ExVar1 im folgenden Befehl durch Ihren Variablennamen ersetzen müssen.
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" /f /v ExVar1
Da gibt es eine Menge, also brechen wir es ein wenig auf.
- reg delete — definiert die Anwendung (reg) und den Befehl (delete), die wir verwenden
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\"
— Teilt reg delete mit, wo es nach dem Schlüssel suchen soll- /f — Weist reg delete an, den Schlüssel zu löschen, ohne zur Bestätigung aufzufordern
- /v — Teilt reg delete mit, dass ihm ein bestimmter Unterschlüssel zum Löschen gegeben wird
- ExVar1 — Der Name des Unterschlüssels, den wir löschen möchten
Das Löschen einer Umgebungsvariablen für einen einzelnen Benutzer ist genau dasselbe wie das Löschen einer systemweiten Variablen, außer dass der Pfad anders ist. Wenn ExVar1 eine Benutzerumgebungsvariable wäre, lautet der Befehl zum Löschen:
reg delete HKEY_CURRENT_USER\Environment /f /v ExVar1
Wenn der Befehl zum Löschen der Umgebungsvariable erfolgreich war, sollten Sie in der Eingabeaufforderung „Der Vorgang wurde erfolgreich abgeschlossen“ sehen.
Jedes Mal, wenn Sie eine solche Umgebungsvariable entfernen, müssen Sie explorer.exe neu starten. Sie können Explorer.exe manuell neu starten oder einfach Ihren gesamten Computer neu starten. Beides funktioniert, und die Änderungen sollten sofort nach dem Neustart wirksam werden.