[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 의 답변을 일부 수정하여 결합 하십시오 .
.reg
현재 디렉토리로 내보내기- 날짜 표시 추가
암호:
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
답변
명령 줄 또는 레지스트리에서 환경 변수에 액세스 할 수 있습니다.
명령 줄
특정 환경 변수를 원하면 이름 (예 :)과 PATH
a >
, 쓸 파일 이름을 입력하십시오. 다음은 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')"}
그것이하는 일
- 모든 환경 변수를 파악합니다.
- 그들을 필터링
- 다른 컴퓨터에서 다시 만드는 데 필요한 형식화 된 PowerShell을 내 보냅니다 (모두 컴퓨터 수준에서 설정되었다고 가정).
따라서 소스 컴퓨터에서 실행 한 후 출력을 대상 컴퓨터로 전송하고 실행하기 만하면됩니다 (컴퓨터 수준에서 설정하는 경우 프롬프트 상승).