【问题标题】:Where are the environment variable set when installing a package (Chocolatey)?安装包(Chocolatey)时环境变量设置在哪里?
【发布时间】: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


【解决方案1】:

chocolatey 最有可能告诉您的是,环境变量已更新(即 PATH-Variable)并且这些更改已在当前环境中“刷新”。根据 gnuplot 包中的安装脚本,甚至可能没有任何更改。 无论如何,gnuplot 可执行文件似乎在您的 PATH 中(因为您可以从 powershell 调用它)。

只需在 Powershell 中使用Get-Command gnuplot 即可找到路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 2017-11-25
    • 2018-11-12
    • 2017-06-16
    相关资源
    最近更新 更多