Hoe maak ik een snelkoppeling van CMD?
Hoe maak ik een snelkoppelingsbestand (.lnk
) naar een ander bestand of uitvoerbaar, met behulp van commandoregelhulpprogramma’s?
Hoe maak ik een snelkoppelingsbestand (.lnk
) naar een ander bestand of uitvoerbaar, met behulp van commandoregelhulpprogramma’s?
Er staat zeer nuttige informatie op deze site: http://ss64.com/nt/shortcut.html ](http://ss64.com/nt/shortcut.html)
Lijkt erop dat er een aantal shortcut.exe
in een resource kit zit die ik niet heb.
Zoals veel andere sites vermelden, is er geen ingebouwde manier om het vanuit een batch-bestand te doen.
Maar je kunt het wel vanuit een VB script doen:
Optionele secties in het VBscript hieronder worden becommentarieerd:
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
Dus, als je het echt moet doen, dan kun je je batchbestand het VB script naar schijf laten schrijven, het aanroepen en dan weer verwijderen. Bijvoorbeeld:
@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
Het uitvoeren van het bovenstaande script resulteert in een nieuwe snelkoppeling op mijn bureaublad:
Hier is een completer fragment van een anonieme bijdrager (geüpdatet met een kleine aanpassing):
@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 is een soortgelijke oplossing met behulp van powershell (ik weet dat u waarschijnlijk uw hele batchbestand in PS kunt herschrijven, maar als u het alleen maar klaar wilt krijgen™…)
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()"
U moet misschien het pad naar PS in uw bestand expliciet specificeren, maar het zou moeten werken. Er zijn enkele extra attributen die u ook door dit object kunt mangelen:
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}
Naast snelkoppeling.exe kunt u ook de opdrachtregelversie van NirCmd gebruiken om een snelkoppeling te maken http://nircmd.nirsoft.net/shortcut.html
Hoe zit het met het gebruik van mklink commando? C:Windows System32>mklink creëert een symbolische link.
MKLINK. Link Doel
/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.
Na alle discussies die we hier hebben gevoerd, is dit mijn voorgestelde oplossing: download: http://optimumx.com/download/Shortcut.zip Op uw bureaublad uitpakken (bijvoorbeeld). Stel nu dat je een snelkoppeling wilt maken voor een bestand genaamd scrum.pdf (ook op het bureaublad):
1. open CMD en ga naar bureaublad map
2. voer uit: Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf
het zal een snelkoppeling maken genaamd sc.lnk op je bureaublad die zal wijzen naar het originele bestand (scrum.pdf)
Ik weet dat dit onderwerp oud is, maar ik wilde de eenvoudige oplossing bieden die voor mij werkte.
Ik heb eerst het .ico bestand gekopieerd naar mijn C: drive. Daarna heb ik de snelkoppeling op mijn bureaublad gemaakt en het icoontje op het ico bestand op mijn C: schijf gezet. Vervolgens heb ik zowel de .ico als de snelkoppeling gekopieerd naar een netwerkdeel waar mijn gebruikers toegang toe hebben. Eenmaal daar heb ik het volgende batchbestand geschreven om de ico en .url naar het bureaublad van Windows 7 te kopiëren. Dit maakt de snelkoppeling op het bureaublad van alle gebruikers en houdt het pictogrambestand dat ik heb ingesteld bij het maken van de snelkoppeling. Ik hoop dat dit iemand helpt.
@echo off
Copy "\sharename\folder\icon.ico" "C:\"
pause
copy "\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause
Dit gratis programma heeft functionaliteit nodig http://www.nirsoft.net/utils/nircmd2.html : (voorbeeld van genoemde webpagina)"Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
Mijn eigen voorbeeld om te proberen: nircmd.exe snelkoppeling “c:\windows\calc.exe” “~$folder.desktop$” “Windows Calculator”.