File Exchange

image thumbnail


version (1.79 KB) by Brett Shoelson
Extract the target of a Windows shell link shortcut (LNK)


Updated 01 Sep 2016

View License

target = getTargetFromLink(lnkFile)
Creates the requisite actxserver, extracts the target.
[target,aserver] = getTargetFromLink(lnkFile) also passes out a handle to the Activex server object

[target,...] = getTargetFromLink(lnkFile,aserver) allows optional passing in of Activex server object. (If you are calling getTargetFromLink many times, it can be faster to create the Activex server object, aserver, one time, and pass it in. Otherwise, this is pretty fast.)

Example 1: Get a single target

links = dir('*.lnk');
target = getTargetFromLink(links(1).name)

Example 2: Get many targets, re-using the asvr (optional)

links = dir('*.lnk');
target = cell(numel(links),1);
[target{1},asvr] = getTargetFromLink(links(1).name);
for ii = 2:numel(links)-1
target{ii} = getTargetFromLink(links(ii).name,asvr);

Example 3: To get the link to a file not in the current directory, specify the fullfile to the link:

links = dir('c:\myLinks\*.lnk');
target = getTargetFromLink(fullfile('c:\myLinks',links(1).name))

NOTES: To create links, file createLinks (available on the MATLAB Central File Exchange) might be useful.

Cite As

Brett Shoelson (2020). getTargetFromLink (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)

Osnat Magen

Exactly what I was looking for. Thanks.


Nice ! It's easy and it works.


Updated license

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux