создание ярлыка для exe от пакетного файла

24
задан Jay Bazuzi 13 September 2012 в 17:33
поделиться

5 ответов

Ваша ссылка указывает на версию Windows 95/98, и я предполагаю, что у Вас есть, по крайней мере, Windows 2000 или XP. Необходимо попробовать версию NT здесь .

, Кроме того, использование немного VBScript, который можно назвать из командной строки:

set objWSHShell = CreateObject("WScript.Shell")
set objFso = CreateObject("Scripting.FileSystemObject")

' command line arguments
' TODO: error checking
sShortcut = objWSHShell.ExpandEnvironmentStrings(WScript.Arguments.Item(0))
sTargetPath = objWSHShell.ExpandEnvironmentStrings(WScript.Arguments.Item(1))
sWorkingDirectory = objFso.GetAbsolutePathName(sShortcut)

set objSC = objWSHShell.CreateShortcut(sShortcut) 

objSC.TargetPath = sTargetPath
objSC.WorkingDirectory = sWorkingDirectory

objSC.Save

Сохранили файл как createLink.vbs и называют его как это для получения то, что Вы первоначально попробовали:

cscript createLink.vbs "C:\Documents and Settings\%USERNAME%\Desktop\Program1 shortcut.lnk" "c:\program Files\App1\program1.exe" 
cscript createLink.vbs "C:\Documents and Settings\%USERNAME%\Start Menu\Programs\Program1 shortcut.lnk" "c:\program Files\App1\program1.exe" 

, Который сказал, что я убеждаю Вас не использовать пути hardcoded как "Меню"Пуск"", так как они отличаются в локализованных версиях окон. Измените сценарий вместо этого для использования специальные папки .

22
ответ дан VVS 28 November 2019 в 23:15
поделиться

Это - вид вещи, что PowerShell действительно хорош в и является поэтому причиной сторониться пакетных файлов и войти в PowerShell побеждающая сторона.

PowerShell может говорить с.NET . Например, можно получить местоположение Рабочего стола как это:

[Environment]::GetFolderPath("Desktop")

PowerShell может говорить с объектами COM, включая WScript.Shell, который может создать ярлыки:

New-Object -ComObject WScript.Shell).CreateShortcut( ... )

, Таким образом, Ваш сценарий мог бы быть похожим:

$linkPath = Join-Path ([Environment]::GetFolderPath("Desktop")) "MyShortcut.lnk"
$targetPath = Join-Path ([Environment]::GetFolderPath("ProgramFiles")) "MyCompany\MyProgram.exe"
$link = (New-Object -ComObject WScript.Shell).CreateShortcut( $linkpath )
$link.TargetPath = $targetPath
$link.Save()

Ярлыки имеют много настроек это WScript. Shell не может управлять, как "выполненный как администратор" опция. Они только доступны через интерфейс Win32 IShellLinkDataList, который является реальной болью для использования, но он может быть сделан.

12
ответ дан Jay Bazuzi 28 November 2019 в 23:15
поделиться

Используя vbscript:

set WshShell = WScript.CreateObject("WScript.Shell" )
strDesktop = WshShell.SpecialFolders("AllUsersDesktop" )
set oShellLink = WshShell.CreateShortcut(strDesktop & "\shortcut name.lnk" )
oShellLink.TargetPath = "c:\application folder\application.exe"
oShellLink.WindowStyle = 1
oShellLink.IconLocation = "c:\application folder\application.ico"
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = "c:\application folder"
oShellLink.Save 

Касательно: http://www.tomshardware.com/forum/52871-45-creating-desktop-shortcuts-command-line

Сбой, что, быстрый поиск Google показывает, существует много сторонних инструментов, которые могут создать .lnk файлы для ярлыков приложения. Я предполагаю, что необходимо придерживаться для наполнения, это доступно исходно в Windows хотя? VBscript является, вероятно, Вашим лучшим выбором, иначе я предложил бы пытаться копировать .lnk файл с Вашей машины или использовать его в качестве образца для наблюдения правильного формата для файла ярлыка.

9
ответ дан Jay 28 November 2019 в 23:15
поделиться

Дополнительное примечание: link.bat, который Вы используете, для Windows 95/98 только:

Этот пакетный файл для Windows 95/98 только. Я отправлю эквивалент NT в группе новостей NT скоро.

версия короткой тонны отправляется в http://www.robvanderwoude.com/amb_shortcutsnt.html вместо этого. Вы могли бы попробовать это за подход .bat, если предпочтено по vbscript.

1
ответ дан Jay 28 November 2019 в 23:15
поделиться

Альтернативный метод, с помощью сторонней утилиты:

Создание Ярлыка от командной строки (пакетный файл)

XXMKLINK:

С XXMKLINK, можно записать пакетный файл для установки программного обеспечения, которая была сделана специализированными программами установки. В основном XXMKLINK является инструментом, который собирает различную информацию из командной строки и упаковывает ее в ярлык.

xxmklink spath opath 

where 

  spath     path of the shortcut (.lnk added as needed)
  opath     path of the object represented by the shortcut
1
ответ дан Martin 28 November 2019 в 23:15
поделиться
Другие вопросы по тегам:

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