Respostas:
Você pode usar o RegEdit para exportar as duas seguintes chaves:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
HKEY_CURRENT_USER\Environment
O primeiro conjunto são variáveis de sistema / ambiente global; o segundo conjunto são variáveis de nível de usuário. Edite conforme necessário e importe os arquivos .reg para a nova máquina.
Eu usaria o comando SET do prompt de comando para exportar todas as variáveis, em vez de apenas PATH, conforme recomendado acima.
C:\> SET >> allvariables.txt
Para importar as variáveis, pode-se usar um loop simples:
C:\> for /F %A in (allvariables.txt) do SET %A
set > "C:\Users\xx\Desktop\envir variable.txt"
for /F %A in (allvariables.txt) do SET %A
Para exportar variáveis de usuário, abra um prompt de comando e use regedit com / e
Exemplo:
regedit /e "%userprofile%\Desktop\my_user_env_variables.reg" "HKEY_CURRENT_USER\Environment"
Combine as respostas de @vincsilver e @jdigital com algumas modificações,
.reg
para o diretório atualcódigo:
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"
A saída gostaria de:
global_env_variables[2017-02-14].reg
user_env_variables[2017-02-14].reg
Você pode obter acesso às variáveis de ambiente na linha de comando ou no registro.
Linha de comando
Se você quiser uma variável de ambiente específica, basta digitar o nome dela (por exemplo PATH
), seguido por a >
, e o nome do arquivo para escrever. O seguinte irá despejar a variável de ambiente PATH em um arquivo chamado path.txt.
C:\> PATH > path.txt
Método de Registro
O Registro do Windows contém todas as variáveis de ambiente, em lugares diferentes, dependendo de qual conjunto você está procurando. Você pode usar os comandos Importar / Exportar do registro para transferi-los para o outro PC.
Para variáveis do sistema:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Para variáveis do usuário:
HKEY_CURRENT_USER\Environment
Meu método favorito para fazer isso é escrevê-lo como um script em lote para combinar variáveis de usuário e variáveis de sistema em um único arquivo de backup, como criar um environment-backup.bat
arquivo e colocá-lo nele:
@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"
Isso cria o environment-backup.reg
que você pode usar para reimportar variáveis de ambiente existentes. Isso adicionará e substituirá novas variáveis, mas não excluirá as existentes :)
Aqui está meu método PowerShell
gci env:* | sort-object name | Where-Object {$_.Name -like "MyApp*"} | Foreach {"[System.Environment]::SetEnvironmentVariable('$($_.Name)', '$($_.Value)', 'Machine')"}
O que faz
Então, depois de executar isso na máquina de origem, simplesmente transfira a saída para a máquina de destino e execute (prompt elevado se estiver definido no nível da máquina)