如何获得快捷方式的目标?

时间:2014-03-31 14:03:00

标签: matlab file

如何以编程方式在Windows上解析其最终目标的快捷方式?

<子> 我在上面指定“终极”以包括一般情况 快捷方式→shortcut_1→...→shortcut_n→target,其中shortcuttarget之间的参考链中可能有一个或多个“介入”快捷方式。
另外,我指定“以编程方式“排除需要交互使用MATLAB GUI的某些功能的解决方案。

(在Unix系统上,解决快捷方式的一种方法是使用system(['readlink ' shortcut])之类的东西,或者更好的,如果可用,system(['readlink -f ' shortcut])。但是我在Windows上找不到这样的东西。 。)

3 个答案:

答案 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快捷方式的快捷方式,您将获得“终极”目标。 :)