Windows에서 환경 변수를 내보내고 가져 오는 방법은 무엇입니까?


95

내 환경 변수를 다른 컴퓨터에서 동기화하는 것이 어렵다는 것을 알았습니다. 한 컴퓨터에서 설정을 내보내고 다른 컴퓨터로 가져오고 싶습니다.

가능해야한다고 생각하지만 어떻게해야할지 모르겠습니다. 누구든지 나를 도울 수 있습니까? 감사.

답변:


121

RegEdit를 사용하여 다음 두 키를 내보낼 수 있습니다.

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

HKEY_CURRENT_USER\Environment

첫 번째 세트는 시스템 / 전역 환경 변수입니다. 두 번째 세트는 사용자 수준 변수입니다. 필요에 따라 편집 한 다음 새 컴퓨터에서 .reg 파일을 가져옵니다.


2
문제의 키를 강조, 프로그램 regedit를 실행 한 후 "파일 -> 내보내기"를 사용하여 파일로 저장하므로 옵션
Silvertiger

가져 오기는 관리자 권한이있는 상태에서 .reg 파일을 두 번 클릭하기 만하면됩니다.
thanos.a

참고 : 모든 EV (Environment Variables)를 얻는 것은 아닙니다! 방금 명령 세트 경로를 수행하고 모든 EV를 엉망으로 만들었습니다. 나는이 레지스트리에 갔고 원래 EV 만 거기에 있었다. 시스템 복원을 수행하고 누락 된 모든 EV를 PATH var로 되돌 렸습니다. 이 레지스트리는 몇 가지 필수 EV 만 보유하지만 프로그램의 EV 나 수동으로 설정 한 경로는 포함하지 않습니다. 조심하세요! 명령 줄에서 : echo path> mybackup.txt 또는 모든 vars / paths 및 ALL sys vars / paths의 전체 백업에 대해 설정> mybackup.txt.
ejbytes

@ejbytes 설정 한 전역 변수를 복사하지만 레지스트리 대신 CLI를 사용하여 내보내는 것이 좋습니다.
Alexander는

88

위에서 권장 한대로 PATH뿐만 아니라 모든 변수를 내보내려면 명령 프롬프트에서 SET 명령을 사용합니다.

C:\> SET >> allvariables.txt

변수를 가져 오려면 간단한 루프를 사용할 수 있습니다.

C:\> for /F %A in (allvariables.txt) do SET %A

11
내 보낸 모든 Env를 어떻게 다시 가져 오나요? Vars. allvariables.txt에서
Ash

아주 좋아. 잘못된 경로 설정을 수행하는 모든 경로 변수를 잃어 버리고 시스템 복원을 수행해야했습니다. 다행히도 오늘부터 최근 업데이트가있었습니다. 이 명령으로 백업을 수행했습니다. 좋은. 이 레지스트리 솔루션은 원본 변수 만 보유하지만 "사용자"(프로그래머가 새 빌드에 대해 말한 것처럼)가 생성하거나 새로 만든 설치는 없습니다.
ejbytes

1
Windows 7 64 비트에서 사용자 수준과 시스템 수준에 동일한 이름의 변수가 두 개있는 경우이 명령은 사용자 수준 변수에 우선 순위를 부여하고 시스템 수준 변수를 생략합니다. 이 동작은 말이되지만, 누군가가 각 변수 유형에서 전체 세트를 기대하는 경우에 대해 언급 할 가치가 있다고 생각했습니다.
GoldDragonTSU

1
이 명령은 작동했습니다.set > "C:\Users\xx\Desktop\envir variable.txt"
JinSnow

1
Ash에 응답하려면 cmd 프롬프트에서 간단한 for 루프를 사용하여 모든 변수를 다시 가져올 수 있습니다.for /F %A in (allvariables.txt) do SET %A
Gabriel

17

사용자 변수를 내보내려면 명령 프롬프트를 열고 / e와 함께 regedit를 사용하십시오.

예 :

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

13

@vincsilver@jdigital 의 답변을 일부 수정하여 결합 하십시오 .

  1. .reg현재 디렉토리로 내보내기
  2. 날짜 표시 추가

암호:

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"

출력은 다음과 같습니다.

global_env_variables[2017-02-14].reg
user_env_variables[2017-02-14].reg

3
오늘의 변수에 따라 달라 %의 날짜 % 방법 윈도우 로케일 환경 설정에 따라 달라집니다. 위의 명령은 인도에서 작동하지 않습니다. 이것은 작동합니다-> set TODAY = % DATE : ~ 4,2 %-% DATE : ~ 7,2 %-% DATE : ~ 10,4 %
Rakesh N

5

명령 줄 또는 레지스트리에서 환경 변수에 액세스 할 수 있습니다.

명령 줄

특정 환경 변수를 원하면 이름 (예 :)과 PATHa >, 쓸 파일 이름을 입력하십시오. 다음은 PATH 환경 변수를 path.txt라는 파일로 덤프합니다.

C:\> PATH > path.txt

등록 방법

Windows 레지스트리는 이후에 어떤 세트에 따라 다른 위치에 모든 환경 변수를 보유합니다. 레지스트리 가져 오기 / 내보내기 명령을 사용하여 다른 PC로 이동할 수 있습니다.

시스템 변수의 경우 :

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

사용자 변수의 경우 :

HKEY_CURRENT_USER\Environment

1
내 컴퓨터에서 PATH> (또는 PATH >>)는 빈 텍스트 파일을 반환했지만 SET >>는 작동했습니다. Windows 7 x64 비트.
PatrickT 2013

Win7x64에서 나를 위해 일했습니다. 요구 사항이 무엇인지 확실하지 않습니다.
Kissaki

이 명령을 어떤 폴더에서 실행합니까? 내 길을 찾을 수 없다고 말했다.
Azurespot

2

이 작업을 수행하는 가장 좋아하는 방법은 사용자 변수와 시스템 변수를 모두 단일 백업 파일로 결합하는 배치 스크립트로 작성하고 environment-backup.bat파일을 생성하여 넣는 것입니다.

@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"

이렇게하면 environment-backup.reg기존 환경 변수를 다시 가져 오는 데 사용할 수 있습니다. 이렇게하면 새 변수 가 추가 및 무시 되지만 기존 변수는 삭제 되지 않습니다. :)


2

내 PowerShell 방법은 다음과 같습니다.

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

그것이하는 일

  1. 모든 환경 변수를 파악합니다.
  2. 그들을 필터링
  3. 다른 컴퓨터에서 다시 만드는 데 필요한 형식화 된 PowerShell을 내 보냅니다 (모두 컴퓨터 수준에서 설정되었다고 가정).

따라서 소스 컴퓨터에서 실행 한 후 출력을 대상 컴퓨터로 전송하고 실행하기 만하면됩니다 (컴퓨터 수준에서 설정하는 경우 프롬프트 상승).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.