我有一个批处理脚本文件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不同 问题
作为下面评论的用户,我想要一个批处理文件,可以通过编程方式确定调用它的快捷方式的位置。
答案 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 。
现在将快捷方式复制到新位置并双击它!
批处理文件应该打开并报告快捷方式所在的路径。