无论是SET还是SETX都无法设置%PATH%的值

3
我正在执行以下命令。
SETX PATH "very_very_long_list";

在关闭和重新打开命令行窗口之后,echo %path% 输出的是旧的值。我做错了什么吗?

提前感谢!


你如何打开一个新的命令行窗口?除非启动新的命令行窗口的进程正在监听环境变化事件,否则它将无法刷新其环境(以及新的子进程的环境)。资源管理器会进行监听。顺便说一句,这在这里可以工作。 - Richard
环境变量是每个进程独立的。setx设置的注册表变量可能要等到下次登录才会生效。 - asveikau
使用SETX设置的变量仅在未来的命令窗口中可用,而不是当前的命令窗口。它们不是按进程设置的,就像@asveikau所说的那样,也不需要注销并重新登录,只需启动一个新的命令窗口--尽管听起来你正在这样做,所以不清楚你做错了什么。也许是不必要的引号和分号。 - martineau
@martineau - 环境变量确实是每个进程独立的。我的意思是setx不会修改正在运行进程的环境变量 - 你必须启动一个新进程才能使其生效。 - asveikau
1个回答

4

不需要使用SETX PATH。如果您需要添加到当前的PATH,请使用

PATH=%PATH%;C:\another path\;C:\yet\another path\

如果您需要完全清除PATH并添加自己的参数,请使用以下命令:

PATH=C:\path\;C:\another path\;C:\yet\another path\

不需要用双引号括起来路径,因为PATH命令可以看到路径名中的空格。

在最后加上分号 ; 并不是必须的。 - martineau
5
据我所知,这个答案没有永久设置,这是提问者想要的。您需要使用SETX(以实现永久设置),并使用SET(立即查看更改)。请参考http://batcheero.blogspot.pt/2008/02/set-and-setx.html。 - Fábio Duque Silva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接