Создаем ярлык через командную строку

Вступление

При создании bat файлов для автоматизации различных действий, мне не раз приходила мысль о необходимости создания ярлыков через командную строку. К сожалению, обычными средствами командной строки это не сделать. В результате, пришлось искать обходной путь, которым оказался встроенный в Windows язык сценариев VBSscript.

Вызываем код VBScript из командной строки

Один из вариантов использования VBScript заключается в том, что через команду echo из командной строки будет создан vbs файл, который затем будет выполнен и удален. В примере ниже, мы создадим ярлык для Блокнота:

echo Set objShell = CreateObject("WScript.Shell") > %TEMP%CreateShortcut.vbs  echo Set objLink = objShell.CreateShortcut("%USERPROFILE%DesktopБлокнот.lnk") >> %TEMP%CreateShortcut.vbs  echo objLink.Description = "Запуск Блокнота" >> %TEMP%CreateShortcut.vbs  echo objLink.TargetPath = "C:WindowsSystem32Notepad.exe" >> %TEMP%CreateShortcut.vbs  echo objLink.Save >> %TEMP%CreateShortcut.vbs  cscript %TEMP%CreateShortcut.vbs  del %TEMP%CreateShortcut.vbs

Используем отдельный файл VBScript для создания ярлыков

Другой вариант создания ярлыка через командную строку — использования отдельного файла скрипта, написанного на VBScript. Для этого, нужно создать файл формата vbs следующего содержания, и сохранить его в каком-нибудь удобном для себя месте:

Set objShell = CreateObject("WScript.Shell")    ' Проверяем, что получили какие-то параметры  If WScript.Arguments.Count > 0 Then  	Set colArgs = WScript.Arguments.Named  	' Описание ярлыка  	strDescription = colArgs.Item("description")  	' Путь для сохранения создаваемого ярлыка  	strDestination = colArgs.Item("destination")  	' Пользовательский значок создаваемого ярлыка  	strIcon = colArgs.Item("icon")  	' Имя создаваемого ярлыка  	strName = colArgs.Item("name")  	' Путь к объекту, на который ссылается ярлык  	strSource = colArgs.Item("source")    	Set objLink = objShell.CreateShortcut(strDestination & "" & strName & ".lnk")  	' Устанавливаем описание ярлыка, только если задан аргумент description  	If 0 < Len(strDescription) Then  		objLink.Description = strDescription  	End If  	' Устанавливаем пользовательский значок, только если задан аргумент icon  	If 0 < Len(strIcon) Then  		objLink.IconLocation = strIcon  	End If  	objLink.TargetPath = strSource  	objLink.Save  End If

После сохранения данного файла, можно вызвать его через командную строку, и передать все нужные для создания ярлыка параметры.

Поддерживаемые параметры:

  • /source:[ПУТЬ] - обязательный параметр, полный путь к директории или файлу, на который будет ссылаться ярлык.
    Пример: /source:"C:WindowsSystem32Notepad.exe"
  • /destination:[ПУТЬ] - обязательный параметр, путь к директории, в которой следует создать ярлык.
    Пример: /destination:"%USERPROFILE%Desktop"
  • /name:[ИМЯ] - обязательный параметр, имя создаваемого ярлыка.
    Пример: /name:"Блокнот"
  • /description:[ОПИСАНИЕ] - необязательный параметр, описание создаваемого ярлыка, которое будет появляться при наведении на него курсором мыши.
    Пример: /description:"Запуск Блокнота"
  • /icon:[ПУТЬ К ФАЙЛУ,ИНДЕКС ЗНАЧКА] - необязательный параметр, пользовательский значок. Следует указать путь к файлу со значками (например, C:WindowsSystem32mmcndmgr.dll), и индекс значка в этом файле (например, 40).
    Пример: /icon:"C:WindowsSystem32mmcndmgr.dll, 40"

Примеры использования:

Создаем ярлык для Блокнота:

CreateShortcut.vbs /source:"C:WindowsSystem32Notepad.exe" /destination:"%USERPROFILE%Desktop" /name:"Блокнот"

Обычный ярлык.

Создаем ярлык для Блокнота, добавляем ему описание и модный значок:

CreateShortcut.vbs /source:"C:WindowsSystem32Notepad.exe" /destination:"%USERPROFILE%Desktop" /name:"Блокнот" /description:"Запуск Блокнота" /icon:"C:WindowsSystem32mmcndmgr.dll, 40"

Ярлык с другим значком.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *