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

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

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



답변

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

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

HKEY_CURRENT_USER\Environment

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


답변

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

C:\> SET >> allvariables.txt

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

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


답변

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

예 :

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


답변

@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


답변

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

명령 줄

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

C:\> PATH > path.txt

등록 방법

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

시스템 변수의 경우 :

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

사용자 변수의 경우 :

HKEY_CURRENT_USER\Environment


답변

이 작업을 수행하는 가장 좋아하는 방법은 사용자 변수와 시스템 변수를 모두 단일 백업 파일로 결합하는 배치 스크립트로 작성하고 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기존 환경 변수를 다시 가져 오는 데 사용할 수 있습니다. 이렇게하면 새 변수 가 추가 및 무시 되지만 기존 변수는 삭제 되지 않습니다. 🙂


답변

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

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

그것이하는 일

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

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