Como posso analisar um atalho .LNK no prompt de comando do Windows?

Como posso analisar um atalho .LNK no prompt de comando do Windows?

Tenho um atalho para uma pasta e quero abri-la no prompt de comando. Quero que o prompt de comando mude imediatamente para o local de destino do atalho. Em vez disso, se eu tentar executar o atalho no prompt de comando, ele simplesmente abrirá a pasta no Windows Explorer.

Como posso analisar um arquivo de atalho (.LNK) no prompt de comando e mudar para a pasta de destino do atalho?

Responder1

Quando inicio o CMD, vejo C:\Users\dave> mas quero mudar o diretório para C:\wamp\www sem precisar pressionar cd ../../. Então criei um atalho da pasta ‘www’ na pasta ‘dave’.

Este é um típicoProblema XY. Se você deseja que o CMD sempre abra em um diretório específico em vez do padrão, tudo o que você precisa fazer é simplesmente alterar as propriedades do atalho da seguinte forma:

insira a descrição da imagem aqui

No Windows 7, o atalho do prompt de comando normalmente está localizado em Start Menu > All Programs > Accessories, então basta clicar com o botão direito no atalho, selecionar Propriedades e editar oComeçarcampo ao seu gosto.


Você também pode criar um arquivo em lote chamado, por exemplod.batque contém uma única linha cd /d c:\wamp\www. Coloque o arquivo em lote em algum lugar do seu caminho e agora tudo que você precisa fazer é abrir o CMD e digitardpara mudar para o diretório específico. Existem muitas outras soluções semelhantes também.


Se você estiver decidido a analisar um arquivo de atalho (.LNK) no prompt de comando, salve o seguinte comoParseLnk.bate execute-o no prompt de comando como ParseLnk <LNK File>:

@echo off
echo set WshShell = WScript.CreateObject("WScript.Shell")>Tmp.vbs
echo set Lnk = WshShell.Createshortcut(WScript.Arguments(0))>>Tmp.vbs
echo WScript.Echo Lnk.TargetPath>>Tmp.vbs
for /f "delims=" %%d in ('cscript //nologo Tmp.vbs "%~1"') do del Tmp.vbs & cd /d "%%d"

Responder2

Caso alguém tenha feito essa pergunta como eu, querendo decifrar um arquivo .lnk usando apenas o prompt de comando, tente:

type mylink.lnk|find "\"

Responder3

Acho que o problema é que um arquivo .lnk é um documento que é interpretado por um programa - Explorer.exe - assim como um arquivo docx seria tratado pelo Word, ou qualquer outra coisa. Você teria que escrever algum tipo de script para analisar o arquivo lnk e executar um comando cd.

É possível que haja a capacidade de fazer o que você deseja no PowerShell (em oposição ao prompt de comando) por meio de um cmdlet, interno, de terceiros ou que você mesmo possa escrever, mas não sei.

Responder4

Você pode definir um script de inicialização em seu registro inserindo um item como este:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor
Autorun REG_EXPAND_SZ <some-path-with-scripts>\msdos-startup.bat

E neste arquivo "msdos-startup.bat" você coloca uma linha que define algum tipo de alias (eu uso aqui o script fornecido por Karan acima):

doskey l=<some-path-with-scripts>\ParseLnk.bat $*

Agora, ao abrir um console de linha de comando, todos os itens acima serão executados e você só precisa digitar:

l some-shortcut.lnk

informação relacionada