【发布时间】:2020-02-09 01:41:19
【问题描述】:
我一直在为以下问题摸不着头脑:
通过 Chocolatey(在我的情况下,gnuplot)安装软件包后 - 我收到通知,环境变量已被修改。
我可以通过输入gnuplot 在Powershell 中调用它,所以我希望通过输入Get-ChildItem Env:gnuplot 来查看gnuplot 的值,但它声称它不存在...
我在哪里可以看到这些包的“价值”? (某种意义上的exe路径)
【问题讨论】:
-
CreateProcessW使用的搜索路径由应用程序目录、当前目录(可禁用)、“System32”目录、旧版“System”目录、Windows目录组成;以及PATH环境变量中列出的目录。在新环境中,后一个变量作为注册表中的系统值和用户值的联合加载。 -
也就是说,我认为,像 CMD 一样,PowerShell 实现了自己的
PATH搜索,而不是依赖CreateProcessW,以支持PATHEXT环境变量。请注意,如果您在 CMD 中使用start或在 PowerShell 中使用start-process,即使其内部搜索未能在PATH中找到命令,shell 也会尝试使用ShellExecuteExW。这支持在“[HKCU|HKLM]\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths”的子项中注册的应用程序路径。
标签: windows powershell environment-variables chocolatey