Batch Datei - .Exe Datei als Verknüpfung auf Desktop erstellen?
Hey Leute,
wie kann man eine .exe per Batch auf den Desktop kopieren bzw. eine Verknüpfung erstellen?
Gibts da einen kurzen Befehl für?
2 Antworten
Mit purem Batch ist das nicht zu machen. Windows stellt ein ComObjekt zur Verfügung, welches über "höhere" Sprachen verfügbar ist. Für die die Direkte Ausführung in einer Batch ist eignen sich am besten VBScript/JScript oder Powershell.
VBS/JS benötigen das erzeugen eines Temporären Scripts. für Powershell kann man ein ganzes Script in gekürzter Form in der Kommandozeile ausführen.
Hier eine abgespeckte Variante zum erzeugen eines Desktop-ShortCuts per Powershell-Kommandozeile innerhalb einer Batch:
Demo.cmd
set "LinkName=%userprofile%\Desktop\Performance Monitor.lnk"
set "Target=C:\Windows\System32\perfmon.exe"
powershell -c "$WShl=New-Object -c WScript.Shell;$SCut=$WShl.CreateShortcut('%LinkName%');$SCut.TargetPath='%Target%';$SCut.Save()"
Das "eingedampfte Powerschellscript mal in "Schönschrift" mit allen möglichen Attributen
demo.ps1
$WShShell = New-Object -ComObject WScript.Shell
#Pfad/Name des Links
$Shortcut = $objShell.CreateShortcut("$home\Desktop\DemoShortcut.lnk")
#ziel des Links
$Shortcut.TargetPath = 'C:\demo\application.exe'
#argumente optional
$Shortcut.Arguments = '-bla'
#arbeitsverzeichnis optional
$Shortcut.WorkingDirectory = 'c:\demo'
#Fensterattribut (3=Maximized 7=Minimized 4=Normal) optional
$Shortcut.WindowStyle = 7
# iconquelle optional
$Shortcut.IconLocation = 'C:\demo\myicon.ico'
# tastenkombination optional
$Shortcut.Hotkey = "ALT+CTRL+R"
$Shortcut.Save()
natürlich geht das auch ganz klassisch mit einem Hilfsscript in JScript. Hier mal eine voll kommetierte Variante aus meinem Archiv.
Demo.cmd
@echo off
chcp 65001 >nul
rem Wenn das Script noch nicht existiert erzeuge es im Temp-Ordner
if not exist "%temp%\CreateShortCut.js" echo args=WScript.Arguments;if (args.length^>7){ShCt=new ActiveXObject('WScript.Shell').CreateShortcut(args(0));ShCt.TargetPath=args(1);ShCt.Arguments=args(2).replace(/'/g,String.fromCharCode(34));if(args(3).match(/^^.+$/)){ShCt.IconLocation=args(3)};ShCt.WorkingDirectory=args(4);ShCt.Description=args(5);ShCt.HotKey = args(6);if(args(7).match(/^^\d$/)){ShCt.WindowStyle=args(7)};ShCt.Save()};>"%temp%\CreateShortCut.js"
rem Parameter: "Shortcut-Datei" "ZielProgramm für den Shortcut" "[optional:Argumente !!!innere "Gänsefüßchen nicht möglich"!!!]" "[optional:Icondatei,iconindex]" "[optional:ArbeitsVerzeichnis]" "[optional:Anmerkungen]" "[optional:Tastenkombination (aus:ALT+,CTRL+,SHIFT+,A..Z,0..9,Back,Tab,Clear,Return,Escape,Space,Prior)]" "[optional:Fenstemodus (3=Maximiert,4=normal oder 7=minimiert)]"
rem Es müssen immer 7 Werte angegeben werden! Leere Werte/default mit "" angeben.
rem Argumente, welche normalerweise in "Gänsefüßchen" übergeben würden, stattdessen in 'SingleQuotes' schreiben! zB. "Argument1 'Agument in normalerweise Gänsefüßchen' usw."
rem Icon-Indexe für Shell32.dll: https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/
cscript //nologo "%temp%\CreateShortCut.js" "%userprofile%\Desktop\CMD Max.lnk" "cmd" "/t:1f /k echo Hallo %username%" "" "" "startet cmd maximiert" "CTRL+Alt+M" "3"
pause
oh Wow, viele nDank für die Erklärung und Skripte, top!
Hallo Manfred958,
üblicherweise könntest Du die .exe-Daten auswählen, einen Rechtsklick drauf machen und dann "Senden an" => Desktop; und dann hast Du eine Verknüpfung auf dem Desktop, die Du einfach nur anklicken brauchst, um die .exe zu starten.
Liebe Grüße 🙂
ohhh ok, das ist natürlich eine andere Ausgangslage; damit arbeite ich nicht. Da müsste ich selber im Internet bei den einschlägigen Foren für Administratoren nachlesen ... tut mir leid ...
Kein Problem, trotzdem Danke für deinen Versuch :)
Bitte, gern 👍;
die eigentliche Ausgangslage hab ich natürlich nicht geahnt ... 🤷♂️ ... aber hier gibt's ja eigentlich auch genügend Community-Experten für solche Fragen, da sollte sich auch hier eine hilfreiche Antwort ergeben ... . Ich hab jetzt mal noch die Themen Softwareverteilung, Fernwartung und Systemadministration hinzugefügt; vielleicht wird dann eher jemand aufmerksam ... .
Viel Erfolg und liebe Grüße 🙂
Danke für die schnelle Antwort. Ich möchte jedoch per Softwareverteilung automatisch eine Verknüpfung auf den Desktop erstellen, sobald das Programm installiert ist. Ich rühre die Rechner nicht per Maus an.