Déplacement fichiers et dossiers en vbs

julien0709 -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
bonjour à tous
je suis en train de tenter de finir un script en vbs pour déplacer des fichiers qui ont l'extension mdb, avec les dossiers qui les contienent, tou en gardant l'arborescence.

mon code donne à peu près cela pour le moment :

On Error Resume Next
liste = c:\liste.txt
strComputer = InputBox ("Adresse IP ")
strTarget = "Chemin UNC"
Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")

If OFS.FileExists ("liste") Then
MsgBox "la liste de base de données existe"
Else
WScript.quit
End If

Set objFile = objFSO.OpenTextFile ("liste", ForReading)

Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")

Do Until objFile.AtEndOfStream
strFolderName = objFile.ReadLine

Set objTextFile = objFSO.CreateTextFile ("C:\Scripts\Resultat_du_script.txt")

Getmdb (strfoldername)

Loop

Sub getmdb
Set colSubfolders = objWMIService.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent")

Set colFiles = objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & strFolderName & "'} Where " _
& "ResultClass = CIM_DataFile")

For Each objFile in colFiles
If objFile.Extension = "mdb" Then
objTextFile.WriteLine objFile.FileName & " Ok"
objFSO.MoveFile objFile.Name, strTarget
End If
Next

End Sub

et j'ai un petit soucis pour finir ce code car je n'arrive pas à balayer les sous dossiers qui doivent contenir les dits fichiers
un petit coup de main please
A voir également:

4 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Regarde ici : https://vb.developpez.com/faq/vbs

Le chapitre 2.2

;o)
0
acyd Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,
Vous devez utiliser la récursivité, c-à-d appeller la fonction getmdb à l'intérieur de la fonction getmdb pour toutes les instances d'objets qui sont des répertoires et non des fichiers, et ce jusqu'à ce qu'il y ait plus de répertoire et dans ce cas terminer la boucle.

@+
0
julien0709
 
merci pour ce petit eclaircissement
plus précisément ça donne ???
0
julien0709
 
par boucle récursive ça donnerait ?
car il faudrait garder l'arborescence telle qu'elle est et avoir un conditions d'arrêt, je ve dire quand il ne trouve plus de sous répertoire...
on peut pas faire appeler à une foncitio qui ressemblerait beuaocoup à get mdb ??

Merci
0
acyd Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   3
 
Le lien donné par Polux31 est utile... il contient tout ce qu'il faut
0
shevshenko > acyd Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
je vais surement paraitre un peut idiot mais... je ne comprends pas tro cette histoire de réxursivité
en fait, j'ai l'impression que cela ne s'arrête jamais

pour chaque sous dossier du dossier
on cherche les sous dossiers
pour chaque sous dossier des sous dossiers
on cherche les sous dossiers...
jusqu'à la fin de l'arborescence

quelqu'un peut il me montrer ce que cela donne en vbs...
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Salut

Tu as des exemples de code en VBS sur le lien que je t'ai passé.

;o)
0