Wie exportiere und importiere ich Umgebungsvariablen in Windows?

92

Ich fand es schwierig, meine Umgebungsvariablen auf verschiedenen Computern synchron zu halten. Ich möchte nur die Einstellungen von einem Computer exportieren und auf andere importieren.

Ich denke, es sollte möglich sein, weiß aber nicht, wie es geht. Kann mir jemand helfen? Vielen Dank.

max_y
quelle

Antworten:

119

Mit RegEdit können Sie die folgenden zwei Schlüssel exportieren:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

HKEY_CURRENT_USER\Environment

Der erste Satz sind System- / globale Umgebungsvariablen; Der zweite Satz sind Variablen auf Benutzerebene. Bearbeiten Sie nach Bedarf und importieren Sie dann die REG-Dateien auf den neuen Computer.

jdigital
quelle
2
Führen Sie das Programm regedit aus, markieren Sie die betreffenden Schlüssel und verwenden Sie dann die Option "Datei -> Exportieren", um sie als Datei zu speichern
Silvertiger
Der Import erfolgt einfach durch Doppelklicken auf die REG-Datei, während Sie über Administratorrechte verfügen.
thanos.a
HINWEIS: Dies erhält nicht alle Umgebungsvariablen (EV)! Ich habe gerade einen Befehlssatzpfad erstellt und mein gesamtes Elektrofahrzeug durcheinander gebracht. Ich ging zu dieser Registrierung und nur der ursprüngliche EV war dort. Ich habe eine Systemwiederherstellung durchgeführt und alle meine fehlenden EVs auf den PATH var zurückgesetzt. Diese Registrierung enthält nur einige notwendige EVs, aber weder EVs Ihres Programms noch manuell festgelegte Pfade. IN ACHT NEHMEN! In einer Befehlszeile: echo path> mybackup.txt oder set> mybackup.txt für die gesamte Sicherung auf ALL vars / path und ALL sys vars / path.
Ejbytes
@ejbytes Hiermit werden Ihre von Ihnen festgelegten globalen Variablen kopiert. Es ist jedoch wahrscheinlich besser, sie mit der CLI zu exportieren, als über die Registrierung.
Alexander
86

Ich würde den SET-Befehl an der Eingabeaufforderung verwenden, um alle Variablen zu exportieren, und nicht nur PATH, wie oben empfohlen.

C:\> SET >> allvariables.txt
Kushal Paudyal
quelle
10
Wie importieren Sie alle exportierten Env zurück? Vars. von allvariables.txt
Ash
Sehr schön. Ich habe gerade alle meine Pfadvariablen verloren, weil ich einen schlechten Pfad festgelegt habe, und musste eine Systemwiederherstellung durchführen. Zum Glück hatte ich heute ein aktuelles Update. Ich habe gerade ein Backup mit diesem Befehl erstellt. Nett. Diese Registrierungslösung enthält nur die ursprünglichen Variablen, aber nichts, was "Sie" (wie ein Programmierer für neue Builds sagt) erstellt oder eine neue Installation erstellt hat.
Ejbytes
1
Wenn unter Windows 7 64-Bit auf Benutzerebene und auf Systemebene zwei gleichnamige Variablen vorhanden sind, hat dieser Befehl Vorrang vor der Variablen auf Benutzerebene und lässt die erste auf Systemebene aus. Dieses Verhalten ist sinnvoll, aber es könnte eine Erwähnung wert sein, falls jemand von jedem Variablentyp den vollständigen Satz erwartet.
GoldDragonTSU
1
Dieser Befehl hat funktioniert:set > "C:\Users\xx\Desktop\envir variable.txt"
JinSnow
Danke @JinSnow das hat bei mir funktioniert. Der Befehl von Kushal gab mir einen Fehler "Zugriff verweigert".
Azurespot
17

Öffnen Sie zum Exportieren von Benutzervariablen eine Eingabeaufforderung und verwenden Sie regedit mit / e

Beispiel:

regedit /e "%userprofile%\Desktop\my_user_env_variables.reg" "HKEY_CURRENT_USER\Environment"
vincsilver
quelle
13

Kombinieren Sie die Antworten von @vincsilver und @jdigital mit einigen Änderungen.

  1. .regin aktuelles Verzeichnis exportieren
  2. Datumsmarkierung hinzufügen

Code:

set TODAY=%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%

regedit /e "%CD%\user_env_variables[%TODAY%].reg" "HKEY_CURRENT_USER\Environment"
regedit /e "%CD%\global_env_variables[%TODAY%].reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

Ausgabe möchte:

global_env_variables[2017-02-14].reg
user_env_variables[2017-02-14].reg
Mithril
quelle
3
Die Variable TODAY hängt von % DATE% ab, was von den Einstellungen des Windows-Gebietsschemas abhängt . Der obige Befehl funktioniert nicht für Indien. Dies funktioniert -> setze HEUTE =% DATE: ~ 4,2% -% DATE: ~ 7,2% -% DATE: ~ 10,4%
Rakesh N
5

Sie können entweder in der Befehlszeile oder in der Registrierung auf die Umgebungsvariablen zugreifen.

Befehlszeile

Wenn Sie eine bestimmte Umgebungsvariable möchten, geben Sie einfach den Namen (z. B. PATH) gefolgt von a >und den Dateinamen ein, in den geschrieben werden soll. Im Folgenden wird die Umgebungsvariable PATH in einer Datei mit dem Namen path.txt gespeichert.

C:\> PATH > path.txt

Registrierungsmethode

Die Windows-Registrierung enthält alle Umgebungsvariablen an verschiedenen Stellen, je nachdem, nach welchem ​​Satz Sie suchen. Sie können die Registrierungsbefehle Import / Export verwenden, um sie auf den anderen PC zu verschieben.

Für Systemvariablen:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Für Benutzervariablen:

HKEY_CURRENT_USER\Environment
Gavin Bunney
quelle
1
Auf meinem Computer hat PATH> (oder PATH >>) eine leere Textdatei zurückgegeben, während SET >> funktioniert hat. Windows 7 x64 Bit.
PatrickT
Arbeitete für mich auf Win7x64. Ich bin mir nicht sicher, was die Anforderungen sind.
Kissaki
Aus welchem ​​Ordner führen Sie diesen Befehl aus? Meiner sagte, er könne keinen Weg finden.
Azurespot
2

Meine bevorzugte Methode hierfür ist es, es als Batch-Skript zu schreiben, um sowohl Benutzervariablen als auch Systemvariablen in einer einzigen Sicherungsdatei zu kombinieren. Erstellen Sie eine environment-backup.batDatei und fügen Sie sie ein:

@echo off
:: RegEdit can only export into a single file at a time, so create two temporary files.
regedit /e "%CD%\environment-backup1.reg" "HKEY_CURRENT_USER\Environment"
regedit /e "%CD%\environment-backup2.reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

:: Concatenate into a single file and remove temporary files.
type "%CD%\environment-backup1.reg" "%CD%\environment-backup2.reg" > environment-backup.reg
del "%CD%\environment-backup1.reg"
del "%CD%\environment-backup2.reg"

Dadurch werden erstellt, mit environment-backup.regdenen Sie vorhandene Umgebungsvariablen erneut importieren können. Dadurch werden neue Variablen hinzugefügt und überschrieben , vorhandene jedoch nicht gelöscht :)

chunk_split
quelle
2

Hier ist meine PowerShell-Methode

gci env:* | sort-object name | Where-Object {$_.Name -like "MyApp*"} | Foreach {"[System.Environment]::SetEnvironmentVariable('$($_.Name)', '$($_.Value)', 'Machine')"}

Was es macht

  1. Schöpft alle Umgebungsvariablen aus
  2. Filtert sie
  3. Gibt die formatierte PowerShell aus, die zum erneuten Erstellen auf einem anderen Computer erforderlich ist (vorausgesetzt, alle sind auf Computerebene festgelegt).

Nachdem Sie dies auf dem Quellcomputer ausgeführt haben, übertragen Sie die Ausgabe einfach auf den Zielcomputer und führen Sie sie aus (erhöhte Eingabeaufforderung, wenn auf Maschinenebene eingestellt).

Fiat
quelle