覆盖 Windows 中的系统环境变量路径(非管理员访问权限)
Posted
技术标签:
【中文标题】覆盖 Windows 中的系统环境变量路径(非管理员访问权限)【英文标题】:Override System Environment variable path in windows (not admin access) 【发布时间】:2017-08-04 21:00:49 【问题描述】:问题很特殊,我在 Windows 中安装了一个 NodeJS 版本(在 x86 程序文件中),并下载了更新版本的软件并提取了 exe。
安装的 NodeJS (node.exe) 的路径包含在系统路径变量中。我将提取的路径添加到用户环境路径变量。 在做了一些 RTFM 之后,我开始知道,如果路径变量结合了系统和用户环境变量并且系统获得了优先级。
有什么方法可以用用户变量的路径覆盖(或取消)系统变量的路径?还是可以改变读取变量的优先级?
【问题讨论】:
使用process.env可以得到你系统的环境 与用户相关的环境变量优先于与系统相关的变量,除非您明确告知其他内容... @aschipfl 不是%PATH%
。系统路径与用户路径连接,因此首先搜索系统路径。见Prevent Windows System %PATH% from being prepended to user %PATH%? - Super User。
【参考方案1】:
在 cmd 中输入
set PATH=D:\Path_To_Local_Folder;%PATH%
node
它将从您的本地文件夹启动节点。
【讨论】:
再次解析PATH,首先取自sys变量,然后取自用户变量,最后取自shell变量 不正确...在命令行中,您只有一个 PATH 变量可以修改,用于当前的 cmd 会话。 C:\Users\sij>node -v v4.4.3 C:\Users\sij>设置 PATH = C:\Users\sij\Downloads\git\bin;C:\Users\sij \ 下载\node-v6.10.0-win-x64\node-v6.10.0-win-x64;%PATH% C:\Users\sij>node -v v4.4.3【参考方案2】:使用 Powershell,您可以设置 Node 运行的文件夹,以便它为该 Powershell 实例选择新版本的 Node。
-
打开 Powershell
将路径变量设置为您的节点文件夹
$env:Path = "C:\yournodefolder";
运行 node --version 现在应该会显示新文件夹中节点的版本。
【讨论】:
以上是关于覆盖 Windows 中的系统环境变量路径(非管理员访问权限)的主要内容,如果未能解决你的问题,请参考以下文章