可执行文件和路径变量

时间:2018-09-06 05:11:02

标签: powershell google-chrome environment-variables

在任何命令外壳中工作时,通常都必须键入特定路径才能运行可执行程序。例如

start c:/ProgramFiles/Steam.exe

我知道那不是Steam的真实目录,而是任何东西。

但是,有些可执行文件不需要像chrome.exe那样键入整个目录。我要做的就是在外壳上输入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会这样?

1 个答案:

答案 0 :(得分:0)

您对%PATH%变量的大部分想法都是正确的。但是,请考虑存在系统环境变量用户环境变量

PATH变量中的路径不是您所说的随机。他们全都有一个目的。它们中的大多数是在软件安装过程中添加的,使您或系统可以轻松地找到可执行文件,这并不像听起来那样容易。例如。您有一个用于32位应用程序的程序文件夹,以及一个用于64位应用程序的文件夹。有%windir%/System32文件夹,您的用户文件夹和一些手动安装。

此外,操作系统不仅搜索.exe可执行文件。例如,.bat文件也由默认命令提示符(cmd)执行,另一方面,PowerShell具有所谓的配置文件,该配置文件可以记住.bashrc的一部分,并且可以定义 Aliases functions ,这可能是从bash领域了解的。

要了解为什么执行chrome.exe的原因,请在PowerShell中键入以下内容:

Get-Command chrome.exe

它将向您显示定义该命令的内容。是exe文件吗?是的,是。

相关问题