【发布时间】:2019-02-11 07:03:08
【问题描述】:
在任何命令外壳中工作时,通常必须输入特定路径才能运行可执行程序。比如
start c:/ProgramFiles/Steam.exe
我知道那不是 steam 的真正目录,但无论如何。
但是,有些可执行文件我不必为 chrome.exe 输入整个目录。我所要做的就是在我的 shell 中输入 start chrome.exe,然后砰的一声,弹出一个窗口。我只是想知道为什么会这样,如果 chrome 在任何情况下都是“特殊的”。
我有一个可能的解释是在运行可执行文件时,shell 通常会在当前工作目录中查找并查看可执行文件是否存在。如果没有,它会在环境变量中搜索并查看一个名为PATH 的变量。由于 path 变量是一堆随机路径组合在一行中,因此它会在每个路径中搜索与 run 调用匹配的可执行文件。然而,当我查看我的 PATH 变量时,我得到了这个:
%SystemRoot%\system32\WindowsPowerShell\v1.0\;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk-9\bin;C:\Program Files (x86)\QuickTime\QTSystem\
我没有在其中找到指向chrome.exe 位置的路径,即C:/Program Files (x86)/Google/Chrome/Application
有人能解释一下这个PATH 变量实际用于什么吗?
我知道当程序需要知道在哪里安装某些东西、启动某些东西等时使用它的通用定义,但是那里只有 5 条路径,我安装了数百个程序,所以我不明白这是怎么回事会起作用,为什么chrome.exe 会这样?
【问题讨论】:
-
我可能试图回答这个问题并发现您的问题设计得很好,但是第二次阅读它,我认为它可能离题并且更适合超级用户。这只是我的想法。让我们看看其他人对此是怎么说的。
标签: powershell google-chrome environment-variables