如何在Windows中导出和导入环境变量?

时间:2009-02-18 04:14:58

标签: windows environment-variables windows-xp

我发现很难让我的环境变量在不同的机器上保持同步。我只想从一台计算机导出设置并导入到其他计算机。

我认为它应该是可能的,但不知道该怎么做。谁能帮我?谢谢。

8 个答案:

答案 0 :(得分:102)

您可以使用RegEdit导出以下两个键:

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

HKEY_CURRENT_USER\Environment

第一组是系统/全局环境变量;第二组是用户级变量。根据需要进行编辑,然后在新计算机上导入.reg文件。

答案 1 :(得分:71)

我会使用命令提示符中的SET命令导出所有变量,而不是上面推荐的PATH。

C:\> SET >> allvariables.txt

答案 2 :(得分:15)

要导出用户变量,请打开命令提示符并使用/ st

使用regedit

示例:

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

答案 3 :(得分:9)

将@vincsilver和@jdigital的答案与一些修改相结合,

  1. .reg导出到当前目录
  2. 添加日期标记
  3. 代码:

    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
    

答案 4 :(得分:5)

您可以在命令行或注册表中访问环境变量。

命令行

如果你想要一个特定的环境变量,那么只需输入它的名称(例如PATH),然后输入'>'和要写入的文件名。以下内容将PATH环境变量转储到名为path.txt的文件中。

C:\> PATH > path.txt

注册表方法

Windows注册表包含所有环境变量,位于不同的位置,具体取决于您所使用的集合。您可以使用注册表导入/导出命令将它们转移到另一台PC。

对于系统变量:

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

对于用户变量:

HKEY_CURRENT_USER\Environment

答案 5 :(得分:2)

这是我的PowerShell方法

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

它做什么

  1. 掩盖所有环境变量
  2. 过滤它们
  3. 发出在另一台计算机上重新创建它们所需的格式化PowerShell(假设所有设置都在计算机级别设置)

因此,在源计算机上运行此命令后,只需将输出传输到目标计算机上并执行(如果在计算机级别进行设置,则提示升高)

答案 6 :(得分:0)

我最喜欢的方法是将其写为批处理脚本,以将用户变量和系统变量组合到一个备份文件中,如下所示,创建一个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,可用于重新导入现有的环境变量。这将添加并覆盖新变量,但删除现有变量:)

答案 7 :(得分:0)

基于@Mithrl的answer

的PowerShell脚本
# export_env.ps1
$Date = Get-Date
$DateStr = '{0:dd-MM-yyyy}' -f $Date

mkdir -Force $PWD\env_exports | Out-Null

regedit /e "$PWD\env_exports\user_env_variables[$DateStr].reg" "HKEY_CURRENT_USER\Environment"
regedit /e "$PWD\env_exports\global_env_variables[$DateStr].reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"