Ce code utilise des objets fso et les collections associés
Il utilise aussi les moyens d'accès au contenu des raccourcis.
Source / Exemple :
' corrige récursivement la cible d'un ensemble des raccourcis contenu dans un repertoire
' Procédure récursive
Sub listingSousDossiersRecur(objListRep, cheminBranche)
Set pFichier = oFSO.GetFolder(cheminBranche)
Set cFichiers = pFichier.Files
' Parcourt des fichiers du répertoire en cour
For Each fichier in cFichiers
' Test si le fichier est un racourcis avec son extension
If Lcase(Right(Fichier.Name, 4)) = ".lnk" Then
set oShellLink = WshShell.CreateShortcut(Fichier.Path)
oShellLink.TargetPath = Replace(oShellLink.TargetPath,"C:\Users\homedir\Documents\OpenOffice113\user\template","C:\Users\homedir\AppData\Roaming\OpenOffice.org\3\user\template")
' # Débugage : A Commenter pour ne plus avoir de message lors du traitement final #
' WScript.Echo Fichier.Path & chr(13) & oShellLink.TargetPath
' # A commenter pour ne pas appliquer la correction aux raccourcis #
oShellLink.Save
' # Débugage : A décommenter si l'on ne veux boucler qu'une seule fois #
' wscript.quit
end if
Next
' Listing des sous-dossiers + appel recursif
For Each oSousRep In objListRep
Set objListSousRep = oSousRep.SubFolders
Call listingSousDossiersRecur(objListSousRep, cheminBranche & "\" & oSousRep.Name)
Next
End Sub
' Creation du moyen d'accès au objet système de fichier de vb
Set oFSO = CreateObject("Scripting.FileSystemObject")
' déclaration du repertoire à traiter et création de son accès par l'objet oRepCourant
Set oRepCourant = oFSO.GetFolder("C:\Users\homedir\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\MyTools")
' Création de la collection (contenant l'ensemble les sous-dossiers du dossier courant)
Set oSousRep = oRepCourant.SubFolders
' Création du moyen d'accès aux objets shell(permettra la modification des raccourcis)
set WshShell = WScript.CreateObject("WScript.Shell")
' Appel d'une procédure recursive du traitement
Call listingSousDossiersRecur(oSousRep, oRepCourant.Path)
WScript.Echo "Traitement des raccourcis du dossier " & oRepCourant.Path & " terminé"
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.