使用批处理文件为exe创建快捷方式

时间:2010-02-09 00:15:44

标签: batch-file shortcut shortcuts

我知道一个主题已经存在,但我不想使用VB脚本。

我希望你能在DOS下使用命令行创建一个快捷方式。

请发布一些很棒的例子。

谢谢!

AA

4 个答案:

答案 0 :(得分:3)

mklink /D c:\vim "C:\Program Files (x86)\Vim"

More Info Here

Cygwin的ln - s

http://en.wikipedia.org/wiki/Symbolic_link#Cygwin_symbolic_links

答案 1 :(得分:3)

如果不调用外部程序,则无法在.bat文件中创建快捷方式。

但是,自Win2k以来,每个版本的Windows都有一个内置的脚本语言Windows Script Host

这是我几年前写的一个小型WSH脚本,可以从.bat文件中调用, 只需将此文本另存为 shortcut.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>

运行它而不需要任何参数来获取用途

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

答案 2 :(得分:1)

在没有调用某种外部程序的情况下,从批处理文件中创建 .lnk 格式的快捷方式基本上是不可能的。文件规格可以找到here,快速的格言将解释。

创建 .url 格式快捷方式非常简单,因为格式是一个简单的文本文件。可以找到规范here。这种格式有的缺点,但可以实现您的目标。

答案 3 :(得分:0)

您可以从资源工具包中获取shortcut.exe