![将给定目录中的单个 exe 添加到 PATH 环境变量中](https://linux22.com/image/1341180/%E5%B0%86%E7%BB%99%E5%AE%9A%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%8D%95%E4%B8%AA%20exe%20%E6%B7%BB%E5%8A%A0%E5%88%B0%20PATH%20%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%B8%AD.png)
是否可以将目录中的多个程序中的一个程序添加到 PATH 环境变量中?
假设我在 中有一堆程序。我不想添加到D:\utils
而是想添加。但这行不通。D:\utils\
PATH
D:\utils\utility-5.exe
有没有办法单独添加它,还是我需要将它移动到它自己的目录中?
答案1
(注:我知道这已经是 3 年前的事了,但我是通过搜索类似的问题来到这个页面的,所以我在这里写下正确的答案,以便其他人可以参考)
是的,这是可能的,甚至更愿意这样做,而不是弄乱 PATH 变量。您需要在注册表项下添加一个项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
(对于机器)或HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
(对于用户 - 首选)。
两种情况下的格式相同,项名称应为utility-5.exe
,注册表默认值应为D:\utils\utility-5.exe
。
还有更多信息(包括你可以做的更多事情)在 MSDN 上以及陈瑞文
编辑:(几年后):
这(根据设计)不适用于命令提示符 (cmd) 或 PowerShell。对于 PowerShell,您需要在 中添加一个新别名$PROFILE
,如下所示:
Set-Alias -Name vlc -Value 'C:\Program Files\VideoLAN\VLC\vlc.exe'
对于命令提示符(cmd.exe),它具有与 DOSKEY 类似的功能:
DOSKEY vlc="C:\Program Files\VideoLAN\VLC\vlc.exe"
PATH
这样您根本不需要处理变量。
答案2
您无法将单个可执行文件添加到路径中。不过,除了将其移动到另一个目录之外,可能还有另一种选择 - 假设它位于 NTFS 分区上,您可以使用 mklink 命令在路径中的目录中创建指向可执行文件的符号链接。
答案3
您必须将其放入目录中。
变量中的所有条目都PATH
必须是目录才有用。 cmd.exe
任何其他使用 的 shell 或应用程序PATH
都会尝试通过PATH
依次将命令名称粘贴到每个目录的末尾来查找与您键入的任何命令相对应的可执行文件,直到找到您要求的命令或用尽目录中的目录PATH
。任何不存在或不是真正目录的条目都不会匹配任何内容。
答案4
一个可能的解决方案是创建一个单独的目录,将其添加到 %PATH%,然后使用符号链接将 .exe 文件包含在该目录中。
但是如果 .exe 需要外部文件(如 .dll)才能运行,您也需要将其包含在目录中。
如果您选择这样做,我推荐使用 Windows 的 Link Shell Extension 工具,这样您不必在命令提示符中创建符号链接。