2012-02-20 18:24:10 +0000 2012-02-20 18:24:10 +0000
81
81

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ń?

Odpowiedzi (8)

56
56
56
2012-02-20 20:06:04 +0000

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
24
24
24
2014-11-06 18:05:38 +0000

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}
17
17
17
2013-09-30 23:24:55 +0000

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

12
12
12
2014-04-24 16:26:05 +0000

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.
7
7
7
2012-02-20 18:42:56 +0000

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)

0
0
0
2015-07-21 15:01:08 +0000

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
0
0
0
2015-04-12 19:14:32 +0000

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”

0
0
0
2020-01-24 16:58:48 +0000