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

时间:2018-04-12 10:45:21

标签: batch-file cmd

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

  • folderA \ shortcut1.lnk

  • folderB \ shortcut2.lnk

  • ...

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

请注意,我可以通过创建另一个脚本 shortcut.bat 而无需快捷方式执行此操作,在此内部我将%~dp0作为参数传递给 MyScript.bat ,但我想用快捷方式来做,因为它更容易管理。

任何想法都将受到赞赏。

PS:这与Extract Path from shortcut link - windows batch不同 问题

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

1 个答案:

答案 0 :(得分:2)

我刚刚测试了我评论过的方法,它看起来像我假设的那样工作。

创建以下批处理文件:

@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

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

右键单击新快捷方式,然后将开始于:字段更改为%V

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

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