防止 Windows 系统 %PATH% 被预先添加到用户 %PATH?

Mar*_*tin 23 windows windows-7 path environment-variables

我知道如何设置系统或用户特定的环境变量:

Windows 环境变量

现在,问题是PATH变量的处理方式是,您为用户 PATH 输入的值将自动附加到系统 PATH 中,这将是有效的 PATH 变量。

也就是说,说我有

(系统) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...

和 (USER) PATH=C:\Program Files\Bar\bin(注意%PATH%这个值中没有)

那么此用户的结果环境变量将是:

(有效的) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin

但是,我希望对于非常特定的操作系统用户帐户,PATH 环境变量应该bar\bin在 PATH 的开头而不是结尾处包含目录。

有没有一种正确的方法可以告诉 WindowsPATH使用该用户的值完全覆盖用户的变量,而不是将其附加到系统PATH变量?

注意:显然,从批处理文件中,所有这些都无关紧要,因为您可以根据需要设置和调整 env.vars。

G-W*_*Wiz 5

如果您只需要它用于命令提示符会话,请根据/sf/ask/1218291581/创建一个配置文件/初始化批处理文件并在注册表中配置它-command-prompt-startup-in-windows。例如,

reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun ^
  /t REG_EXPAND_SZ /d "%"USERPROFILE"%\init.cmd" /f
Run Code Online (Sandbox Code Playgroud)

然后只需对该批处理文件中的 PATH 进行修改。例如,

SET USER_PATH=c:\whatever
SET PATH=%USER_PATH%;%PATH%
Run Code Online (Sandbox Code Playgroud)