我想在我的 Windows 安装上创建一个个人 bin 目录,用于存储指向我经常使用的命令行实用程序的指针,就像/usr/local/bin
在 Linux 上一样。我希望这个文件夹包含指向实际实用程序的指针,因为我更喜欢将每个实用程序保存在自己的文件夹中,尤其是当它们可能需要自己的 DLL 或其他可执行文件时。
在 Linux 上,如果我的工具是~/tools/mytool/mytool
并且它打印Hello World!
,那么这将很简单:
$ mkdir -p /usr/local/bin
$ ln -s ~/tools/mytool/mytool /usr/local/bin/mytool
$ mytool
Hello World!
在 Windows 上,假设我希望/usr/local/bin
调用我的类比C:\bin
,并且我希望它包含指向C:\PortablePrograms\AndroidSDKPlatformTools\adb.exe
. (我不想添加C:\PortablePrograms\AndroidSDKPlatformTools\
到我的PATH
,因为它有一堆我不想直接调用的其他可执行文件。)我尝试了以下所有方法:
- 创建指向的快捷
adb.lnk
方式,并添加到我的C:\bin
C:\PortablePrograms\AndroidSDKPlatformTools\adb.exe
.LNK
PATHEXT
new-item -itemtype symboliclink -path C:\bin\adb.exe -target C:\PortablePrograms\AndroidSDKPlatformTools\adb.exe
new-item -itemtype hardlink -path C:\bin\adb.exe -target C:\PortablePrograms\AndroidSDKPlatformTools\adb.exe
在每一个之后,我尝试运行adb
. Powershell 永远不会让命令失败,但它永远不会做任何事情。充其量,它可能会弹出adb
帮助输出到一个立即关闭的终端。使用该hardlink
版本,它确实启动了一个adb
实例,但我只知道因为我无法删除硬链接,因为它正在打开adb.exe
(可能是adb
守护进程正在运行,但同样,我从来没有得到任何帮助输出。)
有没有办法像我上面描述的那样在 Windows 上创建个人 bin 目录,并用指向可执行文件(而不是可执行文件的副本?)的指针填充它?如果是这样,我该如何完成?
如果一切都失败了,请尝试使用批处理文件:
C:\bin
如果它不存在则创建。添加
C:\bin
到您的 Windows 系统路径变量。重新启动
Explorer.exe
以刷新您的系统环境变量。这通常通过注销然后重新登录或重新启动 PC 来完成。在
C:\bin
创建一个名为adb.bat
. 请注意,批处理 (.bat
) 文件的标题应与您要在控制台中使用的任何命令匹配。在
adb.bat
给出可执行文件的完整路径,后跟一个空格,然后%*
:打开一个新的命令窗口。用于
adb
调用adb.bat
,并且通过扩展,adb.exe
.对您希望将来添加的任何新可执行文件重复步骤 4、5 和 6。
请注意,根据您的脚本偏好,创建脚本以半自动方式创建这些文件可能非常容易。
如果您关心从调用中闪烁的命令窗口
adb.bat
,可能有办法解决这个问题。顺便说一句,符号链接对我来说从来没有出现过问题。也就是说,我没有直接使用mklink或 PowerShell,而是使用名为Link Shell Extension的实用程序来创建软链接。它使选择链接源 (
adb.exe
) 变得非常容易,然后将其放到另一个文件夹 (C:\bin
)。