Respostas:
findstr /ism notepad.exe \*.lnk
O findstr.exe vem com o Windows desde o XP, se não antes. Ele mora em c: \ windows \ system32.
notepad.exe é o destino do atalho, substitua pelo executável real em que você está interessado.
\ *. lnk é dividido implicitamente em duas partes: "\" especificando a raiz da pesquisa e "* .lnk" especificando os arquivos a serem pesquisados.
\*.lnk
para "c:\Program Files\*.lnk"
. Se o caminho com espaços estiver na raiz da pesquisa, mas não fizer parte da linha de comando, as aspas serão desnecessárias, mas ainda permitidas.
/C:
Eg findstr /ism /C:"note pad.exe" \*.lnk
. /C:
ativa a pesquisa literal. Caso contrário, os espaços são tratados como ou operadores.
Você pode procurar por arquivos * .lnk que contenham o caminho ou o nome do executável.
Por exemplo: procure arquivos * .lnk que contenham notepad.exe
Tentei usar a pesquisa do Windows 7 notepad.exe kind:*.lnk
e não conseguia fazê-lo funcionar o tempo todo. Eu acho que pode ter problemas com os diretórios não indexados. Tentei fazer algumas alterações nas configurações e, se eu estivesse perto, consegui que funcionasse, mas se eu fui à raiz de uma unidade, não consegui.
Tive sorte usando o UltraEdit, mas tenho certeza de que existem outros editores de texto (gratuitos) por aí que pesquisam diretórios / subdiretórios.
É claro que, dependendo de como a pesquisa é única e o nome do programa / pasta, você pode obter falsos positivos. Mas isso deve encontrar todos os atalhos para o destino que você estava procurando, que você tem permissão para ver e ler. (ou seja, um usuário pode ter um em sua área de trabalho e você não tem permissão para ver a área de trabalho desse usuário.)
Espero que isto ajude.
EDIT: Acabei de encontrar o TextCrawler , ainda não tinha experimentado, mas pode ser capaz de fazer a pesquisa que descrevi.
Desculpe, não posso lhe perguntar o que a programação env. você está usando. No entanto, eu sei sobre esta referência COM do Windows Script Host.
http://msdn.microsoft.com/en-us/library/xk6kst2k(VS.85).aspx
Além disso, acho que nunca digo isso mencionado na documentação, mas se você quiser "ler" um atalho, use o mesmo comando WshShell.CreateShortcut para "abrir" o arquivo de atalho e chame a variável.TargetPath para obtenha o valor.
Vi algumas referências também sobre como fazer isso no PowerShell, embora parecesse ainda mais complicado do que esses exemplos.
Atalhos de teclado para programas da Microsoft: http://www.microsoft.com/enable/products/keyboard.aspx
Este URL abrange:
E se você quiser encontrá-los para um programa específico, pesquise no Google o nome do programa, juntamente com o número da versão e os atalhos de teclado.
por exemplo: Mozilla Firefox 3.6 keyboard shortcuts
Abra o menu / botão iniciar e digite: type: *.lnk
no campo de pesquisa / execução na parte inferior. Clique em "ver mais resultados" em azul, agora logo acima disso.
Uma nova janela do explorer será aberta. Mude a visualização do arquivo para "Detalhado".
Clique com o botão direito do mouse nas barras de "título" de cada categoria e adicione " Link target
" aos campos mostrados (você provavelmente precisará clicar em "mais" e encontrá-lo na lista alfabética)
Agora clique na Link target
barra de "título" para classificar por Destino do link e encontre todos os arquivos de atalho do Windows que apontam para o arquivo de destino.
Isso deve mostrar todas as variações dos sinalizadores da linha de comando, pois você está classificando alfabeticamente pelo caminho de destino.