Wie kann ich eine Verknüpfung von CMD erstellen?
Wie kann ich eine Verknüpfungsdatei (.lnk
) zu einer anderen Datei oder einer ausführbaren Datei mit Hilfe von Befehlszeilen-Dienstprogrammen erstellen?
Wie kann ich eine Verknüpfungsdatei (.lnk
) zu einer anderen Datei oder einer ausführbaren Datei mit Hilfe von Befehlszeilen-Dienstprogrammen erstellen?
Es gibt einige sehr nützliche Informationen auf dieser Website: http://ss64.com/nt/shortcut.html
Scheint, als gäbe es einige shortcut.exe
in einem Resource-Kit, die ich nicht habe.
Wie viele andere Sites erwähnen, gibt es keine eingebaute Möglichkeit, dies von einer Batch-Datei aus zu tun.
Aber Sie können es von einem VB-Skript aus tun:
Optionale Abschnitte im VBscript unten 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 es also wirklich müssen, dann könnten Sie Ihre Batch-Datei dazu bringen, 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 von einem anonymen Beitragenden (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
Hier ist eine ähnliche Lösung unter Verwendung von Powershell (ich weiß, Sie können wahrscheinlich Ihre gesamte Batch-Datei in PS neu schreiben, aber wenn Sie sie einfach nur holen wollen Done™…)
set TARGET='D:\Temp'
set SHORTCUT='C:\Temp\test.lnk'
set PWS=powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile
%PWS% -Command "$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut(%SHORTCUT%); $S.TargetPath = %TARGET%; $S.Save()"
Sie müssen vielleicht explizit den Pfad zu PS in Ihrer Datei angeben, aber es sollte funktionieren. Es gibt einige zusätzliche Attribute, die Sie auch durch dieses Objekt mangeln können:
Name MemberType Definition
---- ---------- ----------
Load Method void Load (string)
Save Method void Save ()
Arguments Property string Arguments () {get} {set}
Description Property string Description () {get} {set}
FullName Property string FullName () {get}
Hotkey Property string Hotkey () {get} {set}
IconLocation Property string IconLocation () {get} {set}
RelativePath Property string RelativePath () {set}
TargetPath Property string TargetPath () {get} {set}
WindowStyle Property int WindowStyle () {get} {set}
WorkingDirectory Property string WorkingDirectory () {get} {set}
Neben shortcut.exe können Sie auch die Befehlszeilenversion von NirCmd verwenden, um eine Verknüpfung zu erstellen http://nircmd.nirsoft.net/shortcut.html
Wie wäre es mit dem Befehl mklink ? C:\Windows\System32>mklink Erstellt einen symbolischen Link.
MKLINK [[/D] | [/H] | [/J]] Link Ziel
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
Nach all den Diskussionen, die wir hier geführt haben, ist dies mein Lösungsvorschlag: Download: http://optimumx.com/download/Shortcut.zip extrahieren Sie ihn auf Ihren Desktop (zum Beispiel). Nehmen wir nun an, Sie wollen eine Verknüpfung für eine Datei namens scrum.pdf (ebenfalls auf dem Desktop) erstellen:
1. öffnen Sie CMD und gehen Sie zum Desktop-Ordner
2. führen Sie aus: Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf
es wird eine Verknüpfung namens sc.lnk auf Ihrem Desktop erstellt, die auf die Originaldatei (scrum.pdf) verweist
Ich weiß, dass dieses Thema alt ist, aber ich wollte die einfache Lösung anbieten, die für mich funktionierte.
kopierte ich zuerst die .ico-Datei auf mein Laufwerk C:. Dann erstellte ich die Verknüpfung auf meinem Desktop und setzte das Symbol auf die .ico-Datei auf meinem Laufwerk C:. Dann kopierte ich sowohl die .ico-Datei als auch die Verknüpfung auf eine Netzwerkfreigabe, auf die meine Benutzer Zugriff haben. Dort schrieb ich dann die folgende Batch-Datei, um die ico und .url auf den Windows 7-Desktop des Benutzers zu kopieren. Dadurch wird die Verknüpfung auf dem Desktop aller Benutzer erstellt und die Symboldatei, die ich bei der Erstellung der Verknüpfung festgelegt hatte, bleibt erhalten. Ich hoffe, dies hilft jemandem.
@echo off
Copy "\sharename\folder\icon.ico" "C:\"
pause
copy "\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause
Dieses kostenlose Programm hat die erforderliche Funktionalität http://www.nirsoft.net/utils/nircmd2.html : (Beispiel von besagter Webseite)"Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
Mein eigenes Beispiel zum Ausprobieren: nircmd.exe-Verknüpfung “c:\windows\system32\calc.exe” “~$folder.desktop$” “Windows-Rechner”.