Создание ярлыка для exe-файла с помощью пакетного файла
-
19-09-2019 - |
Вопрос
Я знаю, что подобная тема уже существует, но я не хочу использовать VB-скрипт.
Я бы хотел надеяться, что вы сможете создать ярлык с помощью командной строки в DOS.
Пожалуйста, опубликуйте какой-нибудь пример, который был бы отличным.
Спасибо!
АА
Решение
Создание ярлыка в .lnk Форматирование из пакетного файла в принципе невозможно без вызова какой-либо внешней программы.Спецификацию файла можно найти здесь, и быстрый взгляд объяснит.
Создание .url Ярлык формата довольно прост, поскольку формат представляет собой простой текстовый файл.Спецификацию можно найти здесь.Этот формат имеет мало недостатков, но может достичь вашей цели.
Другие советы
Вы не можете создать ярлык в файле .bat без вызова внешней программы.
Однако каждая версия Windows, начиная с Win2k, имеет встроенный язык сценариев под названием Узел скрипта Windows
Вот небольшой скрипт WSH, который я написал несколько лет назад, который можно вызвать из файла .bat, просто сохраните этот текст как короткий путь.wsf, он содержит информацию об использовании скрипта.
<package>
<job id="MakeShortcut">
<runtime>
<description>Create a shortcut (.lnk) file.</description>
<named
name = "Target"
helpstring = "the target script"
type = "string"
required = "true"
/>
<named
name = "Args"
helpstring = "arguments to pass to the script"
type = "string"
required = "false"
/>
<unnamed
name = "basename"
helpstring = "basename of the lnk file to create"
type = "string"
required = "false"
/>
</runtime>
<script language="JScript">
if ( ! WScript.Arguments.Named.Exists("Target"))
{
WScript.Arguments.ShowUsage();
WScript.Quit(2);
}
target = WScript.Arguments.Named.Item("Target");
WScript.Echo("target " + target);
args = WScript.Arguments.Named.Item("Args");
WScript.Echo("args " + args);
base = WScript.Arguments.Unnamed.Item(0);
WScript.Echo("base " + base);
fso = WScript.CreateObject("Scripting.FileSystemObject");
//path = fso.GetParentFolderName(WScript.ScriptFullName);
path = fso.GetAbsolutePathName(".");
WScript.Echo("path = " + path);
Shell = WScript.CreateObject("WScript.Shell");
short = fso.BuildPath(path,base);
if ( ! fso.GetExtensionName(base))
short = short + ".lnk";
link = Shell.CreateShortcut(short);
link.TargetPath = fso.BuildPath(path, target);
if (args != null && args != "")
link.Arguments = args;
else
link.Arguments = base;
//link.Description = "Sound Forge script link";
//link.HotKey = "ALT+CTRL+F";
//link.IconLocation = fso.BuildPath(path, target) + ", 2";
//link.WindowStyle = "1"
//link.WorkingDirectory = path;
link.Save();
</script>
</job>
</package>
запустите его без каких-либо аргументов, чтобы получить useage
c:\> shortcut.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Create a shortcut (.lnk) file.
Usage: shortcut.wsf /Target:value [/Args:value] [basename]
Options:
Target : the target script
Args : arguments to pass to the script
basename : basename of the lnk file to create
mklink /D c:\vim "C:\Program Files (x86)\Vim"
Дополнительная информация здесь
И Сигвин ln - s
http://en.wikipedia.org/wiki/Symbolic_link#Cygwin_symbolic_links
вы можете получить ярлык.exe из набора ресурсов.