Создание ярлыка для exe-файла с помощью пакетного файла

StackOverflow https://stackoverflow.com/questions/2225880

  •  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

вы можете получить ярлык.exe из набора ресурсов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top