获取批处理文件的快捷方式目录

Oul*_*bba 2 cmd batch-file

我有一个批处理脚本文件C:\scripts\MyScript.bat,我在许多其他目录中为此文件创建了快捷方式:

  • 文件夹A\shortcut1.lnk

  • 文件夹B\shortcut2.lnk

  • ....

我希望能够在脚本中获取快捷方式的文件夹,这意味着如果使用快捷方式1调用的脚本我得到folderA,如果使用快捷方式2我得到folderB,...

请注意,我可以在没有快捷方式的情况下执行此操作,通过创建另一个脚本快捷方式.bat并在其中%~dp0作为参数传递给MyScript.bat,但我想使用快捷方式来完成,因为它更易于管理。

任何想法将不胜感激。

PS:这与从快捷链接中提取路径不同- Windows 批处理 问题。

正如下面的用户评论的那样,我想要一个批处理文件,它可以以编程方式确定调用它的快捷方式的位置

Com*_*mpo 5

我刚刚测试了我评论的方法,它似乎按我的假设工作。

创建以下批处理文件:

@Echo Off
Set "InvokedFrom=%__CD__:~,-1%"
CD /D "%~dp0"
Echo Your current directory is %__CD__:~,-1%
Echo=
Echo This file was invoked from %InvokedFrom%
Echo=
Pause
Run Code Online (Sandbox Code Playgroud)

现在创建该批处理文件的快捷方式。

右键单击新的快捷方式并将Start in:字段更改为%V

现在将快捷方式复制到新位置并双击它!

批处理文件应该打开并报告快捷方式所在的路径。