Windows下VSCode终端无法解析$env:PATH中的环境变量求助
VSCode终端无法解析PATH中的环境变量占位符
在装有PowerShell 7的其他终端中,$env:PATH输出的是已解析的绝对路径:
C:\Program Files\PowerShell\7;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;...; C:\Users\myusername\example
但在VSCode终端中执行echo $env:PATH,结果里的环境变量占位符未被解析:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;...; %UserProfile%\example
这种未解析的情况导致%UserProfile%\example(即C:\Users\myusername\example)下的test.ps1脚本无法直接通过文件名调用,但使用绝对路径C:\Users\myusername\example\test.ps1可以正常运行。另外单独执行echo $env:UserProfile能得到正确的路径:
C:\Users\myusername
更新内容
分别在Windows Terminal和VSCode Terminal中执行命令cmd /c "echo ^[%path:;=^]&echo.^[%^]",结果对比如下:
| Windows Terminal | VSCode Terminal |
|---|---|
| [C:\WINDOWS\system32] [C:\WINDOWS] [C:\WINDOWS\System32\Wbem] [C:\WINDOWS\System32\WindowsPowerShell\v1.0] [C:\WINDOWS\System32\OpenSSH] [c:\Program Files\PowerShell\7] [C:\WINDOWS\system32] [C:\WINDOWS] [C:\WINDOWS\System32\Wbem] [C:\WINDOWS\System32\WindowsPowerShell\v1.0] [C:\WINDOWS\System32\OpenSSH] [c:\Program Files\PowerShell\7] ... [C:\Users\myusername\example] | [C:\WINDOWS\system32] [C:\WINDOWS] [C:\WINDOWS\System32\Wbem] [C:\WINDOWS\System32\WindowsPowerShell\v1.0] [C:\WINDOWS\System32\OpenSSH] [c:\Program Files\PowerShell\7] [%SystemRoot%\system32] [%SystemRoot%] [%SystemRoot%\System32\Wbem] [%SystemRoot%\System32\WindowsPowerShell\v1.0] [%SystemRoot%\System32\OpenSSH] [c:\Program Files\PowerShell\7] ... [%UserProfile%\example] |
这只是全局访问问题的一个例子:VSCode终端能访问固定路径下的内容,但无法识别路径中包含%Variable%格式的占位符。比如winget.exe在Windows Terminal的PowerShell和CMD中都能正常使用,但VSCode终端里不行——尽管%UserProfile%\AppData\Local\Microsoft\WindowsApps已经在PATH中,且该程序确实存在于这个文件夹里。
请问如何让VSCode正确处理$env:PATH中的环境变量占位符?
内容的提问来源于stack exchange,提问作者rozsazoltan
相关产品推荐
相关产品推荐

