为什么有些程序需要 Path 值,而有些程序在 Windows 中不需要?

7 windows linux environment-variables cross-platform

为什么当我在 Windows 7/8/10 或一些适合 UNIX 的程序(如GNU Tar )上安装Composer时,我需要设置它们的 Path 值,如果不设置,其他程序将无法使用它们?

TOO*_*GAM 2

我针对 Microsoft Windows 回答了这个问题。我看到这里还有一个 Linux 标签。嗯,同样的概念也适用。(最后一段提到了更多的 Linux 注释。)

如果程序不在 PATH 环境变量指定的目录中,则可以使用它们。然而,它有点不太方便。

例如,我经常运行 7-Zip,即使它不在路径中。因此,我没有使用“7z”来启动命令行,而是使用以下命令来启动命令行:
"C:\Program Files\7-Zip\7z.exe"

这并不像看起来那么糟糕,因为我实际输入的内容通常更像是:
C:\ tabPro tab7 tab7tab

(我会聆听如果有拼写错误可能会发生的蜂鸣声,并且在使用密钥进行最终扩展之后tab,我还会检查命令行的准确性,以确保它按照我想要的方式运行。)

程序可以检查您如何在命令行上引用该程序,并且可以检查您的当前目录。因此,程序可能会根据它是否在 PATH 中而采取不同的行为。然而,这不太可能。

替代解决方案:调整 PATH 环境变量以包含程序安装的目录。

另一种替代解决方案:只需将可执行文件放入路径中已有的目录中即可。(但是,有些程序更复杂,因为它们可能还需要将其他文件(例如DLL文件)复制到这样的目录中;因此,对于需要“安装”的程序,通常不建议通过运行“安装”来使用此方法程序”。但是,对于无需大量支持文件即可运行的简单可执行文件,这通常是可行的。)

在 Linux 中,有一些细微的差别:您只需使用“ echo ${PATH}”而不是“ echo %PATH%”,使用正斜杠而不是反斜杠,使用7za7-Zip 而不是7z.exe。如果您想调整路径,您可以使用不同的命令,例如export,但实际上取决于您使用的 shell。)