如何让我的 Windows7 符号链接从命令行执行?

How do I get my Windows7 symlink to execute from command line?

我有几个要经常使用的批处理文件,所以我决定将它们作为符号链接放入路径中的二进制文件文件夹中。我的想法是我会像使用任何其他命令一样使用它们,而不必更改目录。例如。

> odbimport -u User -f filename 

其中 odbimport 是我指向批处理文件的符号链接 odbimport.bat。

我制作符号链接的过程如下:

C:\Users\user>mklink C:\utils\odbimport C:\util-files\odbimport.bat
symbolic link created for C:\utils\odbimport <<===>> C:\util-files\odbimport.bat

C:\Users\user>path
Path=C:\....;C:\utils\

C:\Users\user>where odbimport
C:\utils\odbimport

据我所见,我似乎已经创建了符号链接,并且路径知道在哪里可以找到它。

但是,在创建符号链接并尝试执行后,我得到:

C:\Users\user> odbimport -u me -f somefile
'odbimport' is not recognized as an internal or external command,
operable program or batch file. "

我一直在寻找这个问题的答案,但没有成功。我发现的所有内容似乎更多地涉及如何创建有效的符号链接,而不是解决我的问题。我找到的最接近的是 this. This is essentially my question, except kinda backwards because I don't really want to run the symlinks from Windows Explorer. I have also tried adding .LNK to my PATHEXT variable as in this question.

向您创建的符号链接添加 .bat 扩展名,因为在 Windows 上,需要 .bat 扩展名来告诉系统它实际上是一个可执行的批处理文件。您仍然可以 运行 只输入文件名即可。

mklink C:\utils\odbimport.bat C:\util-files\odbimport.bat

当源和目标位于同一卷上时,可以使用 NTSF 硬链接,优点是此类克隆可以从 Windows Explorer 执行,不像符号链接:

  • mklink /h C:\utils\odbimport.bat C:\util-files\odbimport.bat
  • fsutil hardlink create C:\utils\odbimport.bat C:\util-files\odbimport.bat