Auf dieser Website finden Sie einige sehr nützliche Informationen: http://ss64.com/nt/shortcut.html
Scheint, als ob es einige shortcut.exe
in einem Resource Kit gibt, die ich nicht habe.
Wie viele andere Websites bereits erwähnen, gibt es keine integrierte Möglichkeit, dies aus einer Batchdatei heraus zu tun.
Sie können dies jedoch über ein VB-Skript tun:
Optionale Abschnitte im folgenden VB-Skript sind auskommentiert:
Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:\MyShortcut.LNK"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "C:\Program Files\MyApp\MyProgram.EXE"
' oLink.Arguments = ""
' oLink.Description = "MyProgram"
' oLink.HotKey = "ALT+CTRL+F"
' oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2"
' oLink.WindowStyle = "1"
' oLink.WorkingDirectory = "C:\Program Files\MyApp"
oLink.Save
Wenn Sie dies wirklich tun müssen , können Sie Ihre Batch-Datei veranlassen, das VB-Skript auf die Festplatte zu schreiben, es aufzurufen und dann wieder zu entfernen. Zum Beispiel so:
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%HOMEDRIVE%%HOMEPATH%\Desktop\Hello.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:\Windows\notepad.exe" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
Das Ausführen des obigen Skripts führt zu einer neuen Verknüpfung auf meinem Desktop:
Hier ist ein vollständigerer Ausschnitt eines anonymen Mitwirkenden (aktualisiert mit einem kleinen Fix):
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET LinkName=Hello
SET Esc_LinkDest=%%HOMEDRIVE%%%%HOMEPATH%%\Desktop\!LinkName!.lnk
SET Esc_LinkTarget=%%SYSTEMROOT%%\notepad.exe
SET cSctVBS=CreateShortcut.vbs
SET LOG=".\%~N0_runtime.log"
((
echo Set oWS = WScript.CreateObject^("WScript.Shell"^)
echo sLinkFile = oWS.ExpandEnvironmentStrings^("!Esc_LinkDest!"^)
echo Set oLink = oWS.CreateShortcut^(sLinkFile^)
echo oLink.TargetPath = oWS.ExpandEnvironmentStrings^("!Esc_LinkTarget!"^)
echo oLink.Save
)1>!cSctVBS!
cscript //nologo .\!cSctVBS!
DEL !cSctVBS! /f /q
)1>>!LOG! 2>>&1