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

Come creare un collegamento da CMD?

Come posso creare un file di collegamento (.lnk) ad un altro file o eseguibile, utilizzando le utilità della riga di comando?

Risposte (8)

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

Ci sono alcune informazioni molto utili su questo sito: http://ss64.com/nt/shortcut.html &003

Sembra che ci sia un po’ di shortcut.exe in qualche kit di risorse che non ho. Come molti altri siti menzionano, non c'è un modo incorporato per farlo da un file batch.

Ma si può fare da uno script VB:

Le sezioni opzionali nel VBscript qui sotto sono commentate:

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

Quindi, se davvero devete farlo, allora potreste far scrivere al vostro file batch lo script VB su disco, invocarlo e poi rimuoverlo di nuovo. Per esempio, in questo modo:

@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
``` ```
@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

L'esecuzione dello script di cui sopra comporta un nuovo collegamento sul mio desktop:

Ecco un frammento più completo di un collaboratore anonimo (aggiornato con una correzione minore):

&001

24
24
24
2014-11-06 18:05:38 +0000

Ecco una soluzione simile che utilizza powershell (so che probabilmente potete riscrivere l'intero file batch in PS, ma se volete solo 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()"
``` ```
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}

Potreste dover specificare esplicitamente il percorso di PS nel vostro file, ma dovrebbe funzionare. Ci sono anche alcuni attributi aggiuntivi che si possono maneggiare attraverso questo oggetto:

&001

17
17
17
2013-09-30 23:24:55 +0000

Oltre a shortcut.exe, è anche possibile utilizzare la versione a riga di comando di NirCmd per creare una scorciatoia http://nircmd.nirsoft.net/shortcut.html

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

Che ne dite di usare il comando mklink? C:\Windows\System32>mklink Crea un collegamento simbolico.

MKLINK [[/D] | [/H] | [/J]] | [/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

Dopo tutte le discussioni che abbiamo avuto qui, questa è la soluzione che ho suggerito: scaricare: http://optimumx.com/download/Shortcut.zip estrailo sul tuo desktop (per esempio). Ora, supponiamo che si voglia creare un collegamento per un file chiamato scrum.pdf (anche sul desktop): 1. aprire CMD e andare alla cartella desktop 2. eseguire: Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf

creerà un collegamento chiamato sc.lnk sul desktop che punterà al file originale (scrum.pdf)

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

So che questo argomento è vecchio ma volevo fornire la semplice soluzione che ha funzionato per me.

Ho copiato per la prima volta il file .ico sul mio drive C:. Poi ho creato il collegamento sul mio desktop e ho impostato l'icona sul file ico sul mio drive C:. Ho poi copiato sia il file .ico che il collegamento a una condivisione di rete a cui hanno accesso i miei utenti. Una volta lì ho scritto il seguente file batch per copiare il file ico e il .url sul desktop di windows 7 degli utenti. Questo crea il collegamento sul desktop di tutti gli utenti e mantiene il file di icone che ho impostato quando ho creato il collegamento. Spero che questo aiuti qualcuno.

@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

Questo programma gratuito ha richiesto la funzionalità http://www.nirsoft.net/utils/nircmd2.html : (campione da detta pagina web)"Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"

Il mio campione da provare: nircmd.exe scorciatoia “c:\windows\system32\calc.exe” “~$folder.desktop$” “Windows Calculator”

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