How can I create a shortcut to the file D:\myfile.extension on the Desktop using a batch script?
3 Answers
You can achieve without external tools this by creating a temporary VBScript:
@echo off
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\myshortcut.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "D:\myfile.extension" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
(Idea taken from here.)
This will create myshortcut.lnk on the Desktop, pointing to D:\myfile.extension.
You can supply additional properties before saving the link by modifying the following values:
oLink.Arguments
oLink.Description
oLink.HotKey
oLink.IconLocation
oLink.WindowStyle
oLink.WorkingDirectory
Consult How to create a desktop shortcut with the Windows Script Host to see a few examples.
-
1Is it impossible to do with batch script? (apart from generating your proposed vbs and executing it)industryworker3595112– industryworker35951122016-10-31 08:16:46 +00:00Commented Oct 31, 2016 at 8:16
-
1Is there a way to set
AppUserModelIdusing this method?JacobTheDev– JacobTheDev2018-06-21 14:35:56 +00:00Commented Jun 21, 2018 at 14:35 -
2Note that this can be modified to use relative paths (quite likely if this is being done via a script). The
sLinkFilecan be a relative path (e.g. just providing "myshortcut.lnk" puts it in the current directory). The target file can be set relative to the current directory by specifyingoLink.TargetPath = "%cd%\folder\target.exe".RoG– RoG2021-04-17 11:00:13 +00:00Commented Apr 17, 2021 at 11:00 -
Notify, that name of Desktop folder is language dependent.user2956477– user29564772021-12-13 21:01:13 +00:00Commented Dec 13, 2021 at 21:01
@echo off
echo [InternetShortcut] >> "%AllUsersProfile%\desktop\NOTEPAD.url"
echo URL="C:\WINDOWS\NOTEPAD.EXE" >> "%AllUsersProfile%\desktop\NOTEPAD.url"
echo IconFile=C:\WINDOWS\system32\SHELL32.dll >> "%AllUsersProfile%\desktop\NOTEPAD.url"
echo IconIndex=20 >> "%AllUsersProfile%\desktop\NOTEPAD.url"
This code creates a shortcut in the "All Users" desktop folder called NOTEPAD.url pointing to the NotePad application, and will also assign an icon from the SHELL32.dll. Change the path and filename to your D:/ location and exename. And make sure your .url filename stays the same across all lines of code.
-
1Nice idea. As long as you don't have to supply any arguments, this works well.Dennis– Dennis2012-07-30 16:16:30 +00:00Commented Jul 30, 2012 at 16:16
there is external command shortcut.exe that can do this in that way:
shortcut /a:c /f:"c:\users\me\desktop\myshortcut.lnk" /t:"c:\program files\skype\skype.exe"
that can create shortcut of skype in your desktop
it is free downloadable program, but i can't find its link, so i will try to upload it and post the link
here it is:
-
no, i didn't know that there is utility for it in resource kit by microsoft. i am currenlty using its alternative by optimum xadventurer– adventurer2012-07-30 14:58:23 +00:00Commented Jul 30, 2012 at 14:58