Pergunta

Problema: Há um monte de arquivos .lnk na unidade C que apontam para o J: unidade, mas a J: carro se foi, eo P: unidade tenha substituído. Vários truques ter sido feito para obter os arquivos .lnk para ainda trabalhar de qualquer maneira, mas está ficando chato, e é hora apenas para corrigir as coisas.

Usando Ruby, Python, WSH.JScript ou Perl, você iterate através de toda uma árvore de diretórios de arquivos .lnk e pode alterá-los para que eles apontam para p: / * em vez de j: / *? Como você vai fazer sobre isso?

Nota: Este não é um total desconhecido para mim, mas eu faço a pergunta de qualquer maneira porque a API para gerenciamento de arquivos .lnk nas maneiras que eu encontrei até agora parecem demasiado pesado para ser o melhor maneira conhecida de fazer isso. Este é um daqueles desesperado "não tem que ser uma maneira melhor" questões do tipo.

Foi útil?

Solução

No WindowsNT Resource Kit há um utilitário de linha de comando chamado Shortcut.exe que estou seguramente informado será executado sob XP / 2000/2003 também. Você pode usar uma variedade de linha de comando para modificar os arquivos LNK existente para apontar para novos atalhos.

Eu encontrei informações sobre ele aqui: http://www.ss64.com/nt/shortcut.html

Eu ouso dizer que ele não pode ser muito difícil de caçar o WindowsNT Resource Kit no Microsoft site e extraí-lo. É um utilitário de linha de comando, assim que você deve ser capaz de lote para percorrer todos os arquivos LNK e modificá-los para que eles estejam corretos.

Outras dicas

Encontramos este script VB que funciona bem.

http://www.enterpriseitplanet.com/resources/scripts_win/article .php / 3081941

Alguns avisos:

Cuidado! Ele é executado a partir da raiz da unidade. Se você testá-lo em sua própria máquina, você corre o risco de remapeamento todos os seus atalhos do Windows - por exemplo. aqueles em seu Menu Iniciar! Editamos o script ligeiramente para obter um pouco mais de controle (dentro do método main ()):

   dim onlyFolder
    Set onlyFolder =fso.GetFolder("C:\") 
    SearchFolder onlyFolder

'   for each aDrive in fso.Drives       
'       if aDrive.DriveType = 2 then
'           SearchFolder aDrive.RootFolder
'       end if
'   next

O arquivo fixlinks.ini não como linhas vazias, tem que ser um número par de linhas.

Ele é executado em segundo plano e pode aparecer erros de permissão para os diretórios difíceis. É difícil dizer quando ele tiver terminado, exceto para a janela de confirmação no final. Provavelmente melhor para manter um olho nele no Process Explorer, e executá-lo a partir de um shell de comando como administrador no Vista / etc.

Além disso, trabalhou bem!

Basta usar analisador de arquivo LNK em J.A.F.A.T. Arquivo de Forensics Ferramentas de análise do projeto .

Veja lnk-parse-1.0.pl em http://jafat.sourceforge.net

Parece não haver não têm dependências (e materiais notadamente não horrível Windows). A sintaxe é simples e arquivo de vínculo torna-se um texto simples na saída padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top