Pregunta

Sé un tema ya existe así, pero no quiero usar un script VB.

Yo esperaría que puede crear un acceso directo mediante una línea de comandos de DOS.

Por favor, puesto algún ejemplo que sería grande.

Gracias!

AA

¿Fue útil?

Solución

Creación de un acceso directo en el .lnk formato es básicamente imposible desde un archivo por lotes sin llamar a un programa externo de algún tipo. La especificación de archivo se puede encontrar aquí , y glace una rápida explicará.
La creación de un .url formato de acceso directo es muy fácil ya que el formato es un archivo de texto simple. La especificación se puede encontrar aquí . Este formato tiene un algunas desventajas , pero puede lograr su objetivo.

Otros consejos

No se puede crear un acceso directo en un archivo .bat sin invocar un programa externo.

Sin embargo, cada versión de Windows desde Win2k ha construido en un lenguaje de programación llamado Windows script host

Aquí hay un pequeño script WSH que escribí hace unos años que se puede llamar desde un archivo .bat, simplemente guardar este texto como shortcut.wsf , que contiene información Useage en el guión.

<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>

ejecutarlo sin argumentos para obtener 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"

Más información aquí

Y ln - s de Cygwin

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

Shortcut.exe del kit de recursos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top