Jak zrobić skrót z CMD?
Jak utworzyć plik skrótu (.lnk
) do innego pliku lub pliku wykonywalnego, używając narzędzi z linii poleceń?
Jak utworzyć plik skrótu (.lnk
) do innego pliku lub pliku wykonywalnego, używając narzędzi z linii poleceń?
Na tej stronie znajduje się kilka bardzo przydatnych informacji: http://ss64.com/nt/shortcut.html
Wygląda na to, że jest jakieś shortcut.exe
w jakimś zestawie zasobów, którego nie mam.
Jak wiele innych stron wspomina, nie ma wbudowanego sposobu, aby zrobić to z pliku wsadowego.
Ale możesz to zrobić ze skryptu VB:
Opcjonalne sekcje w VBscript poniżej są skomentowane:
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
Tak więc, jeśli naprawdę musi to zrobić, to możesz sprawić, że Twój plik wsadowy zapisze skrypt VB na dysk, wywołaj go, a następnie usuń go ponownie. Na przykład:
@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
Uruchomienie powyższego skryptu skutkuje nowym skrótem na moim pulpicie:
Oto bardziej kompletny fragment od anonimowego współpracownika (uaktualniony o drobną poprawkę):
@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
Oto podobne rozwiązanie wykorzystujące powershell (wiem, że prawdopodobnie możesz przepisać cały plik wsadowy w PS, ale jeśli chcesz po prostu Get It 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()"
Być może będziesz musiał sprecyzować ścieżkę do PS w swoim pliku, ale powinna ona działać. Istnieje kilka dodatkowych atrybutów, którymi możesz się posługiwać także w tym obiekcie:
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}
Poza skrótem.exe, możesz również użyć wersji NirCmd z linii poleceń, aby utworzyć skrót http://nircmd.nirsoft.net/shortcut.html
Co powiesz na użycie komendy mklink? C:\Windows\System32>mklink Tworzy symboliczny link.
MKLINK [[/D] | [/H] | [/J]] Link Target
/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.
Po wszystkich dyskusjach, które tu odbyliśmy, to jest moje sugerowane rozwiązanie: pobierz: http://optimumx.com/download/Shortcut.zip wyciągnij go na pulpit (na przykład). Załóżmy, że chcesz utworzyć skrót do pliku scrum.pdf (również na pulpicie):
1. otwórz CMD i przejdź do folderu desktopu
2. uruchom: Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf
utworzy skrót sc.lnk na pulpicie, który będzie wskazywał na oryginalny plik (scrum.pdf)
Wiem, że ten temat jest stary, ale chciałem przedstawić proste rozwiązanie, które mi się sprawdziło.
Najpierw skopiowałem plik .ico na mój dysk C:. Następnie stworzyłem skrót na moim pulpicie i ustawiłem ikonę do pliku .ico na moim dysku C:. Następnie skopiowałem zarówno plik .ico, jak i skrót do udziału sieciowego, do którego mają dostęp moi użytkownicy. Następnie napisałem następujący plik wsadowy, aby skopiować ico i .url do pulpitu użytkownika Windows 7. To tworzy skrót na pulpicie wszystkich użytkowników i zachowuje plik z ikoną, który ustawiłem podczas tworzenia skrótu. Mam nadzieję, że to komuś pomoże.
@echo off
Copy "\sharename\folder\icon.ico" "C:\"
pause
copy "\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause
Ten darmowy program ma wymaganą funkcjonalność http://www.nirsoft.net/utils/nircmd2.html : (przykład z tej strony)"Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
Mój własny przykład do wypróbowania: nircmd.exe skrót “c:\windows\system32\calc.exe” “~$folder.desktop$” “Kalkulator Windows”