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

0

Eu tenho um atalho para uma pasta e quero abri-lo no prompt de comando. Eu quero o prompt de comando para alterar 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 alternar para a pasta de destino do atalho?

    
por davexpression 04.09.2014 / 00:36

3 respostas

4

When I start CMD, I see C:\Users\dave> but I want to change directory to C:\wamp\www without having to press cd ../../. So I created a shortcut of the 'www' folder in the 'dave' folder.

Este é um típico problema X-Y . Se você quiser 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:

NoWindows7,oatalhodoPromptdeComandoestánormalmentelocalizadoemStartMenu>AllPrograms>Accessories,portanto,cliquecomobotãodireitonoatalho,selecionePropriedadeseediteocampoIniciaremdeacordocomoseugosto.

Vocêtambémpodecriarumarquivodelotedenominadoporexemplod.batquecontémumaúnicalinhacd/dc:\wamp\www.Coloqueoarquivoemlotesemalgumlugarnocaminhoe,agora,tudooquevocêprecisafazeréabriroCMDedigitardparaalterarparaodiretórioespecífico.Existemmuitasoutrassoluçõessemelhantestambém.

Sevocêestivermortonaanálisedeumarquivodeatalho(.LNK)nopromptdecomando,salveoseguintecomoParseLnk.bateexecute-onopromptdecomandocomoParseLnk<LNKFile>:

@echooffechosetWshShell=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"
    
por 06.09.2014 / 05:34
1

Eu acho que o problema é que um arquivo .lnk é um documento que é interpretado por um programa - Explorer.exe - assim como um arquivo docx seria manipulado 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 você faça o que deseja no PowerShell (em oposição ao Prompt de Comando) por meio de um cmdlet, interno, de terceiros ou um que possa escrever, mas não sei.

    
por 04.09.2014 / 00:54
0

Caso alguém tenha chegado a essa questão como eu, querendo decifrar um arquivo .lnk usando apenas o prompt de comando, tente:

type mylink.lnk|find "\"
    
por 12.07.2018 / 22:50