Question

Problème: De nombreux fichiers .lnk sur le lecteur C pointent vers le lecteur J:, mais le lecteur J: est parti et le lecteur P: l'a remplacé. De nombreuses astuces ont été utilisées pour que les fichiers .lnk fonctionnent toujours, mais cela devient agaçant et il est temps de réparer les choses.

À l'aide de Ruby, Python, WSH.JScript ou Perl, pouvez-vous parcourir une arborescence complète de répertoires de fichiers .lnk et les modifier afin qu'ils pointent vers p: / * au lieu de j: / *? Comment vous y prendriez-vous?

Remarque: Cela ne m’est pas totalement inconnu, mais je pose quand même la question, car l’API permettant de gérer les fichiers .lnk de la manière que j’ai trouvée jusqu’à présent me semble trop lourde pour être le plus encombrant possible. meilleure façon connue de le faire. C’est l’un de ces désespérés "il doit y avoir un meilleur moyen" tapez des questions.

Était-ce utile?

La solution

Dans le Kit de ressources techniques Windows NT, il existe un utilitaire de ligne de commande appelé Shortcut.exe dont on me dira qu'il fonctionnera également sous XP / 2000/2003. Vous pouvez utiliser divers commutateurs de ligne de commande pour modifier les fichiers LNK existants afin qu'ils pointent vers de nouveaux raccourcis.

J'ai trouvé des informations à ce sujet ici: http://www.ss64.com/nt/shortcut.html

Je suis sûr qu'il ne peut être trop difficile de rechercher le Kit de ressources Windows NT sur le site Web de Microsoft et de l'extraire. C’est un utilitaire de ligne de commande. Vous devriez donc pouvoir le traiter par lots pour parcourir tous les fichiers LNK et les modifier afin qu’ils soient corrects.

Autres conseils

Nous avons trouvé ce script VB qui fonctionne bien.

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

Quelques avertissements:

Attention! Il va de la racine du lecteur. Si vous le testez sur votre propre ordinateur, vous risquez de remapper tous vos raccourcis Windows - par exemple. ceux sur votre menu de démarrage! Nous avons légèrement modifié le script pour obtenir un peu plus de contrôle (dans la méthode 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

Le fichier fixlinks.ini n'aime pas les lignes vides, il doit comporter un nombre pair de lignes.

Il fonctionne en arrière-plan et peut générer des erreurs d’autorisation pour les répertoires difficiles. Il est difficile de dire quand cela est terminé, sauf pour la fenêtre de confirmation à la fin. Il est probablement préférable de garder un œil dessus dans Process Explorer et de l'exécuter à partir d'un interpréteur de commande en tant qu'administrateur sous Vista / etc.

Autre que cela, a très bien fonctionné!

Utilisez simplement l’analyseur de fichier lnk à J.A.F.A.T. Archive du projet Outils d'analyse médico-légale .

Voir lnk-parse-1.0.pl à l'adresse http://jafat.sourceforge.net

.

Il semble ne pas avoir de dépendances (et notamment pas de matériel Windows épouvantable). La syntaxe est simple et le fichier de lien devient un texte simple dans la sortie standard.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top