有人能解释一下这个结果吗?
设置路径后,它没有改变。这在管理员命令行中运行:
C:\Windows\system32>setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin"
SUCCESS: Specified value was saved.
C:\Windows\system32>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;D:\Program Files (x86)\metapad36;D:\Program Files (x86)\metapad36" /M我已经阅读了% PATH % =用于机器的路径变量+用户的路径变量。我看到机器路径+管理员路径了吗?
看过其他关于这个话题的文章,但还是很困惑。
我应该清除用户路径,这样就没有重复了吗?
update:关于“由该工具创建或修改的变量将在未来的命令窗口中可用”的提示:我打开了一个非管理窗口并输入:
>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin这条路重复了两次。好的,那么在相同的提示符下,我setx路径没有重复,也没有/M
>setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin"
SUCCESS: Specified value was saved.显然保存在当前的用户环境中。
然后打开一个新的非管理命令窗口,并且:
>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin`它并没有改变。为什么?
发布于 2016-02-11 23:18:30
在Windows中,每个进程都获得环境的副本,该副本本质上是进程启动时全局环境的快照。进程运行时对全局环境的更改不会传播回进程自身的环境副本。
为了回答实际问题,setx确实修改了用户环境(如果使用/M运行的话,也可以修改系统环境),但是在执行setx的过程中,这些更改并不是立即可见的,在本例中是cmd.exe。如果在运行setx之后打开一个新的命令提示符,您将看到cmd.exe实例中的更改。
setx /?帮助中明确指出了这一点:
在本地系统上,由该工具创建或修改的变量将在未来的命令窗口中可用,但在当前的CMD.exe命令窗口中不可用。
要在全局环境和当前进程中进行相同的更改,您需要同时运行setx和set。
发布于 2022-04-08 19:15:44
任何找到这个旧职位的人..。
SETX (以及通过PowerShell、.Net、C#等的大多数其他编程方法)只对运行SETX的用户运行的新进程立即生效。如果SETX由不同的用户或系统帐户运行(就像大多数corp部署产品一样),任何其他用户仍需要重新启动才能接收更新。即使关闭Explorer.exe并在受影响的用户下重新运行,也不会刷新。
当您通过标准的Windows修改环境变量时,Microsoft正在对shell环境执行一些编程魔术。
发布于 2022-10-12 11:34:25
首先,以管理员用户身份打开cmd,然后运行setx命令。
https://stackoverflow.com/questions/35347451
复制相似问题