Похожие вопросы

Поддержка HTTPS для Lynx в Windows
Клиент командной строки IRC для Windows [закрыт]
Включение перезагрузки в Windows
В чем разница между значениями по умолчанию и свойствами при изменении cmd.exe или Параметры PowerShell? [дубликат]
Командная строка Windows: Как увеличить буфер?
Грязный Filesytem: удаление дубликатов файлов из командной строки
Как удалить файл с именем, начинающимся с "- r", используя cli [дубликат]
Как установить Uniconvertor (приложение командной строки) на Mac OS 10.7.2 (Lion)?
Как остановить терминал bash от добавления частей предыдущих команд в текущую строку?
Вывод Grep из нескольких строк в ограниченной среде оболочки
Распаковка файлов с помощью winzip в командной строке
Как найти тип оперативной памяти в командной строке?
вывод netcat в отдельные файлы с помощью разделителей строк
VLC не воспроизводит видео на Mac OS X
Как передвигаются все.txt файлы в структуре каталога в другой каталог через командную строку?

Как сделать ярлык из CMD?

Как я могу создать файл ярлыка (.lnk) в другой файл или исполняемый файл с помощью утилит командной строки?

5
задан iglvzx
источник

7 ответов

есть некоторые очень полезную информацию на этом сайте: http://ss64.com/nt/shortcut.html

кажется, что есть некоторые shortcut.exe в некотором наборе ресурсов, которого у меня нет.

Как упоминают многие другие сайты, нет встроенного способа сделать это из пакетного файла.

но вы можете сделать это из VB-скрипта:

дополнительные разделы в VBscript ниже закомментированы:

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

поэтому, если вы действительно должны сделайте это, тогда вы можете заставить свой пакетный файл записать сценарий VB на диск, вызвать его, а затем снова удалить. Например, вот так:

@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

запуск сценария выше приводит к новому ярлыку на моем рабочем столе:

Resulting shortcut

вот более полный фрагмент от анонимного автора (обновлен с незначительным исправлением):

@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
46
отвечен Der Hochstapler 2014-01-13 03:40:25
источник

вот аналогичное решение с помощью powershell (я знаю, вы, вероятно, можете переписать весь свой пакетный файл в PS, но если вы просто хотите сделать это™...)

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()"

возможно, вам придется явно указать путь к PS в вашем файле, но он должен работать. Есть некоторые дополнительные атрибуты, которые вы можете просматривать через этот объект:

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} 
18
отвечен SmallClanger 2014-11-06 18:05:38
источник

кроме ярлыка.exe, вы также можете использовать версию командной строки NirCmd для создания ярлыка. http://nircmd.nirsoft.net/shortcut.html

16
отвечен While Loop 2013-10-01 01:20:27
источник

Как насчет использования команды mklink ? C:\Windows\System32>mklink Создает символическую ссылку.

MKLINK [[/г] | [/ч] | [/ж]] ссылка элемент

    /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.
9
отвечен Mike 2014-04-24 16:26:05
источник

после всех обсуждений, которые мы провели здесь, это мое предлагаемое решение: скачать: http://optimumx.com/download/Shortcut.zip распакуйте его на рабочем столе (например). Теперь предположим, что вы хотите создать ярлык для файла с именем scrum.PDF (также на рабочем столе):

1. открыть cmd и перейдите в папку

2. run:Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf

Это позволит создать ярлык под названием СК.lnk на рабочем столе, который будет указывать на исходный файл (scrum.pdf)

7
отвечен alfasin 2012-02-21 23:09:17
источник

эта бесплатная программа имеет необходимый функционал http://www.nirsoft.net/utils/nircmd2.html: (образец от сказанной интернет-страницы) "Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"

мой собственный образец, который нужно попробовать: nircmd.ярлык exe-файла "c:\windows\system32\calc.папку exe-файла" "~$.desktop$ ""калькулятор Windows"

0
отвечен goldie 2015-04-12 19:14:32
источник

Я знаю, что эта тема старая, но я хочу предложить простое решение, которое работает для меня.

Я сначала скопировал .ico-файл на диск C:. Затем я создал ярлык на своем рабочем столе и установил значок в файл ico на моем диске C:. Я тогда скопировал оба диска .ico и ярлык сетевой папки, к которой имеют доступ мои пользователи. Как только я написал следующий пакетный файл, чтобы скопировать ICO и .url для пользователей Windows 7 desktop. Это создает ярлык на рабочем столе всех пользователей и сохраняет файл значков, который я установил при создании ярлыка. Надеюсь, это кому-то поможет.

@echo off
Copy "\sharename\folder\icon.ico" "C:\"
pause
copy "\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause
0
отвечен Michele 2015-07-21 15:38:57
источник

Другие вопросы command-line shortcuts windows windows-xp