Como mover o alvo para o qual um atalho do Windows aponta e permitir o trabalho de atalhos existentes?

Como mover o alvo para o qual um atalho do Windows aponta e permitir o trabalho de atalhos existentes?

Eu gostaria de fazer o seguinte:

  1. Crie um atalho para uma pasta (digamosmLink.lnk-->C:\tmp)
    • Isso será enviado por e-mail aos usuários
  2. Mova e/ou renomeie a pasta (C:\tmp-->C:\tmp2)
  3. Etapa intermediária de configuração para que o atalho anterior funcione
    • Basicamente, o atalho enviado por e-mail mLink.lnk seria abertoC:\tmp2

Parece que vocêdeveser capaz de usar mklink e configurar um link simbólico no local da pasta anterior (C:\tmp) para apontar para o novo local. Basicamente tenha a seguinte configuração:

mLink.lnk --> c:tmp --> c:\tmp2

Infelizmente, não consigo criar links simbólicos no compartilhamento de rede para o qual espero ter esses atalhos. Recebo um The device does not support symbolic linkserro ao executar o mklink.

Existe uma maneira diferente de fazer isso? Ou a restrição contra links simbólicos basicamente me impede de fazer isso?

Responder1

Ok... Primeiro: um arquivo .lnk do Windows é, em princípio, apenas uma simples String com um nome de pasta. Então, essencialmente, você está apenas enviando uma String para eles, que é automaticamente copiada na barra de endereços do seu explorador e aberta (o funcionamento real é um pouco mais complexo, mas para um link como C:\tmp é isso que acontece)

Segundo - o Windows geralmente não rastreia esses arquivos, porque eles não são links simbólicos. Se você criar um link simbólico em seu PC, onde C:\tmp aponta para a pasta C:\tmp2, isso não alterará o conteúdo do arquivo LNK. Então você está enviando exatamente o mesmo arquivo por e-mail de antes. As pessoas clicarão no link em seu próprio sistema e é claro que o LNK ainda lê "C:\tmp" e em seu sistema nada mudou.

Pode funcionar se o LNK apontar para um compartilhamento de rede (por exemplo, conectar uma letra de rede livre P:\ a um compartilhamento de samba \server1\tmp) e vincular a esta unidade conectada - então o LNK aponta para P:\ Então se você quiser usar outra Tempfolder no servidor, basta alterar a pasta compartilhada no servidor e todas as pessoas usarão automaticamente a nova pasta...

Responder2

Seria mais simples criar o link simbólico c:\tmppara apontar inicialmente c:\tmp1no servidor. A mudança para tmp2 será feita excluindo c:\tmpe recriando-o como link para c:\tmp2.

Você terá desta forma apenas um link que nunca muda para os usuários, mas que você pode alterar no servidor a qualquer momento.

Se isso não funcionar, então o seu cliente de compartilhamento de rede não suporta expansão de link simbólico.

informação relacionada