Dav*_*err 5 windows symbolic-link command-line
作为开发人员,我安装并运行了许多应用程序。要从命令行访问这些,这是将应用程序添加到 PATH 环境变量的常用机制。没关系,但会导致混乱、大且难以穿透的 PATH。
我想通过拥有一个目录来整理它,例如c:\dev,它包含指向所有应用程序的符号链接。我可以使用 mklink 创建符号链接,例如mklink eclipse.exe c:\dev\eclipse\eclipse.exe.
对于 Eclipse 示例,当我尝试新的符号链接时,我收到关于配套库的错误。对于其他应用程序(例如 Notepad++),我收到了不同的错误。
但是,当我直接在命令行中键入相同的路径时,例如c:\dev\eclipse\eclipse.exe一切正常。
因此,符号链接eclipse.exe => c:\dev\eclipse.exe不同于普通的c:\dev\eclipse.exe。我希望(叹气)并假设(doh!)符号链接的工作方式与直接输入完整路径相同。
IOW,为什么symlink => c:\dev\eclipse.exe不等于打字c:\dev\eclipse.exe?
有没有办法解决?我知道我可以编写小的批处理文件,但我希望避免这种情况(符号链接看起来更干净)。
这是 Windows 的特性还是 Linux 的特性?
让我用一个例子来说明这个问题。我创建了一个简单的单行批处理文件Test.bat,C:\Program Files其中包含以下内容:
@echo Batch dir = "%~dp0"
Run Code Online (Sandbox Code Playgroud)
现在,D:\如果我用 调用批处理文件C:\Program Files\Test,它会说:
Batch dir = "C:\Program Files\"
Run Code Online (Sandbox Code Playgroud)
如果我使用set path=%path%;C:\Program Filessimple修改 PATH并调用批处理文件Test,它会说:
Batch dir = "C:\Program Files\"
Run Code Online (Sandbox Code Playgroud)
最后,如果我使用创建符号链接mklink Test.bat "C:\Program Files\Test.bat"并使用 simple 调用它Test,它会说:
Batch dir = "D:\"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在这种情况下当前工作目录是不同的。难怪您的应用程序会抱怨可执行文件目录中的文件丢失。
如果您不想向 PATH 添加大量目录,只需添加一个包含每个应用程序批处理文件的目录。
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |