Criando um atalho para um exe usando um arquivo de lote
-
19-09-2019 - |
Pergunta
Eu sei um tópico já existe assim, mas eu não quero usar um script VB.
Eu espero que você pode criar um atalho usando uma linha de comando no DOS.
Por favor, postar alguns exemplos que seria ótimo.
Obrigado!
AA
Solução
Criação de um atalho no .lnk formato é basicamente impossível a partir de um arquivo de lote sem chamar um programa externo de algum tipo. A especificação do arquivo pode ser encontrada aqui , e um glace rápido irá explicar.
Criando um .url atalho formato é bastante fácil como o formato é um arquivo de texto simples. A especificação pode ser encontrada aqui . Este formato tem um algumas desvantagens , mas pode realizar seu objetivo.
Outras dicas
Você não pode criar um atalho em um arquivo .bat sem invocar um programa externo.
No entanto, cada versão do Windows desde Win2k foi construído em linguagem de script chamada Windows Script host
Aqui está um pequeno script WSH que eu escrevi há alguns anos atrás que pode ser chamado de um arquivo .bat, Basta salvar este texto como shortcut.wsf , que contém informações useage no script.
<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>
executá-lo sem quaisquer argumentos para obter 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"
E ln - s
do Cygwin
http://en.wikipedia.org/wiki/Symbolic_link#Cygwin_symbolic_links
você pode obter shortcut.exe do kit de recursos.