Windows 11中通过右键菜单打开Windows Terminal时环境变量无法解析的问题咨询
大家好,我遇到了一个奇怪的环境变量解析问题,想请教下各位:
我通过sysdm.cpl设置了两个系统级的环境变量:
JAVA_HOME=%ProgramFiles%\Java\jdk-8 M2_HOME=%ProgramFiles%\Apache\maven
但我发现打开Windows Terminal的方式不同,这两个变量的解析结果不一样:
情况1:通过Windows资源管理器右键菜单打开(任意目录)
此时变量没有被正确解析,执行set命令后看到的是:
Windows PowerShell
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
Installieren Sie die neueste PowerShell für neue Funktionen und Verbesserungen!
PS C:[...]> cmd
Microsoft Windows [Version 10.0.22621.2134]
(c) Microsoft Corporation. Alle Rechte vorbehalten.
C:[...]>set
[...]
HOMEDRIVE=C:
HOMEPATH=\Users\THS
JAVA_HOME=%ProgramFiles%\Java\jdk-8
LOCALAPPDATA=C:\Users\THS\AppData\Local
M2_HOME=%ProgramFiles%\Apache\maven
NVM_HOME=C:\Users\THS\AppData\Roaming\nvm
NVM_SYMLINK=C:\Program Files\nodejs
情况2:通过Windows搜索打开Windows Terminal
这时候变量就正常解析了,同样执行set命令的结果是:
Windows PowerShell
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
Installieren Sie die neueste PowerShell für neue Funktionen und Verbesserungen!
PS C:\Users\THS> cmd
Microsoft Windows [Version 10.0.22621.2134]
(c) Microsoft Corporation. Alle Rechte vorbehalten.
C:\Users\THS>set
[...]
HOMEDRIVE=C:
HOMEPATH=\Users\THS
JAVA_HOME=C:\Program Files\Java\jdk-8
LOCALAPPDATA=C:\Users\THS\AppData\Local
M2_HOME=C:\Program Files\Apache\maven
NVM_HOME=C:\Users\THS\AppData\Roaming\nvm
NVM_SYMLINK=C:\Program Files\nodejs
更奇怪的是,同样是通过sysdm.cpl设置的PSModulePath:
PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules
不管用哪种方式打开Terminal,它都能被正确解析,两种场景下的输出都是:
PSModulePath=C:\Users\THS\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
有没有大佬能解释下这是为什么呀?感谢各位!
备注:内容来源于stack exchange,提问作者Thorsten Schöning

