Voici un petit programme de ma création écrit en VBS :
Set objShell = WScript.CreateObject("WScript.Shell" )
Path1 = objShell.SpecialFolders.Item("AllUsersDesktop" )
' Wscript.Echo "AllUsersDesktop:" & Path1
Set fso = CreateObject("Scripting.FileSystemObject" )
Set f = fso.GetFolder(Path1)
Set fc = f.Files
For Each f1 in fc
If (fso.GetExtensionName(f1) = "lnk" ) Then
Set myShortcut = objShell.CreateShortcut(f1.path)
WScript.Echo f1.name & "-->" & myShortcut.TargetPath
End If
Next
Path1 = objShell.SpecialFolders.Item("Desktop" )
'Wscript.Echo "Desktop:" & Path1
Set f = fso.GetFolder(Path1)
Set fc = f.Files
For Each f1 in fc
If (fso.GetExtensionName(f1) = "lnk" ) Then
Set myShortcut = objShell.CreateShortcut(f1.path)
WScript.Echo f1.name & "-->" & myShortcut.TargetPath
End If
Next |
VBS est disponible en standard depuis Wndows 95. Il suffit de copier ces lignes dans un fichier que l'on nommera, par exemple, "showlnk.vbs", et de cliquer dessus pour l'exécuter.
Ce programme tourne sur mon PC avec Windows Millennium. Je ne l'ai pas testé sur d'autres versions de Windows, mais je crois qu'il devrait marcher. Il y a des plusieurs moyens pour interfacer un programme "vbs" avec un programme "bat", et cela pourra faire l'objet d'une autre question ou d'une recherche sur internet.
Contrairement à son nom CreateShortcut ne crée pas de raccourci si le chemin existe déjà (ce qui est forcément le cas ici). CreateShortcut crée juste un objet en mémoire dont la propriété TargetPath contient la cible du lien.
Il y a deux boucles : La première concerne les raccourcis communs à tous les utilisateurs du poste, et la seconde concerne les raccourcis de l'utilisateur courant.