Questão Obtenha o shell para reconhecer atalhos


C:\Program Files (x86)\ é terrível, então eu tenho um diretório C:\Users\Braden\Programs\bin que está no %PATH% variável de ambiente. Este diretório é conceitualmente equivalente a /usr/local/bin em um sistema * NIX. Ou seja Um único lugar onde posso jogar executáveis ​​onde posso executá-los apenas digitando seus nomes (seja em um cmd.exe concha ou um Run... diálogo.). Funciona bem para straight PE* formato executáveis ​​e scripts em lote, mas estranhamente não para atalhos.

Tome o VLC, por exemplo. Eu tenho um atalho para VLC chamado vlc.lnkque, como eu entendo, é suposto ser o equivalente a um hard link. Eu tenho que digitar vlc.lnk, não vlc, para obtê-lo para executar o programa. Eu acho isso ridículo.

Existe alguma maneira que eu possa fazer a linha de comando tratar um .lnk da mesma forma que um .bat ou .exe, onde eu posso apenas digitar o nome do arquivo sem a extensão? De preferência sem instalar um programa externo.

Enquanto sobre o assunto, é possível fazer o mesmo com qualquer arquivo arbitrário, como, digamos, um .bash ou .sh Arquivo? Eu poderia ficar totalmente atrás de um script wrapper escrito em bash.


0


origem


Um arquivo .lnk contém a lista de argumentos que serão passados ​​para o programa .exe. Se você não gosta de como isso funciona, não use um arquivo .lnk. Você poderia, por exemplo, usar um arquivo .bat. Experimentar: echo "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" %1 %2 %3 %4 %5 %6 >> %USERPROFILE%\Programs\Bin\vlc.bat (e, em seguida, execute "vlc filename") - TOOGAM
Você ficaria mais feliz especificando o arquivo de dados diretamente e tendo o VLC executado automaticamente com base na associação de arquivos, em vez de tentar executar o VLC diretamente e, em seguida, especificando qual arquivo de dados ele deve usar? - TOOGAM
@Ramhound NB: Eu deletei o comentário ao qual você está se referindo, o que significa que o contexto desapareceu. - Braden Best


Respostas:


Experimentar:

ECHO %PATHEXT% SET PATHEXT=%PATHEXT%;.LNK


1