如何以编程方式在Windows上解析其最终目标的快捷方式?
<子>
我在上面指定“终极”以包括一般情况
快捷方式→shortcut_1→...→shortcut_n→target,其中shortcut
和target
之间的参考链中可能有一个或多个“介入”快捷方式。
另外,我指定“以编程方式“排除需要交互使用MATLAB GUI的某些功能的解决方案。
子>
(在Unix系统上,解决快捷方式的一种方法是使用system(['readlink ' shortcut])
之类的东西,或者更好的,如果可用,system(['readlink -f ' shortcut])
。但是我在Windows上找不到这样的东西。 。)
答案 0 :(得分:1)
如果您打开快捷方式文件并阅读第一行,您应该会看到它。
>>fID=fopen(shortcutpath);
>>C=fgetl(fID);
C =
*some weird string* *filepath* *some other weird string*
然后使用正则表达式,您可以轻松找到它。
答案 1 :(得分:0)
假设您的目标只是打开目的地的快捷方式,它似乎就像在unix上一样简单。只需使用此代码在当前目录中打开名为sc的快捷方式:
!sc.lnk % Equivalent to system('sc.lnk')
如果文件不在当前目录中,则需要添加路径。如果快捷方式指的是快捷方式,则它会自动结束最终结果。
答案 2 :(得分:0)
你可以用COM来做。
示例:
server = actxserver('WScript.Shell');
path = server.CreateShortcut('D:\temp.lnk').TargetPath;
server.delete;
作为Windows doesn't allow快捷方式的快捷方式,您将获得“终极”目标。 :)