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

Foi útil?

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"

Mais informações aqui

E ln - s do Cygwin

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

você pode obter shortcut.exe do kit de recursos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top