Вступление
При создании 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"
Ярлык с другим значком.

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