Crear un acceso directo para un exe utilizando un archivo por lotes
-
19-09-2019 - |
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
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"
Y ln - s
de Cygwin
http://en.wikipedia.org/wiki/Symbolic_link#Cygwin_symbolic_links
Shortcut.exe del kit de recursos.