【问题标题】:Set Win XP environment variable using script [duplicate]使用脚本设置 Win XP 环境变量 [重复]
【发布时间】:2023-06-01 20:23:01
【问题描述】:

我有一个脚本,它通过在注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 下创建一个值来设置 Windows XP 中的环境变量。当我在“控制面板”下查看 env var GUI 时会显示该变量,但如果我在命令窗口中键入 SET,它不会被列出。如果我尝试在命令窗口中回显它,它不会得到任何值。如何从脚本中正确设置环境变量,最好使用注册表?

【问题讨论】:

    标签: registry environment-variables


    【解决方案1】:

    在脚本中,您只能使用 SET 命令设置变量:

    SET my_var=42

    但这不会“全局”更改/定义此变量。关闭运行该脚本的命令行窗口后,该变量就消失了。

    因此,如果您想永久定义变量,则必须将您的注册表解决方案与 SET 命令结合起来。

    【讨论】:

    • 所以除了我在注册表中所做的之外,我还必须打开命令行并使用 SET 在那里设置我的环境变量以使其保持不变?
    • 不,只需在脚本中使用 SET 命令(我假设我们正在谈论批处理脚本?)
    • 实际上是一个 InstallScript 文件。我需要永久设置环境变量。
    • 好的,那就无视我的回答。我假设一个批处理脚本
    【解决方案2】:

    实际上,您可以使用 DOS 命令“setx”来永久设置变量(无需手动 - 或以编程方式 - 破解注册表)。

    我从未使用过“InstallScript”本身,但大多数安装程序产品(如 InstallShield 或 InnoSetup)都有“设置系统变量”和“设置用户变量”命令,您也可以在脚本中使用。

    这是关于 Windows“setx”命令的 MSDN 参考: http://technet.microsoft.com/en-us/library/cc755104%28WS.10%29.aspx

    【讨论】:

    • +1 这适用于我在 Win 7 上,但不确定它是否适用于 XP