[vbs] Copier des fichiers depuis plusieurs DVD
Bonjour à tout le monde,
J'aurai besoin d'un petit coup de main sur un petit projet professionnel que je souhaite mettre en place. Je vous explique :
J'utilise des images virtuelles VMWARE que je souhaite mettre à disposition de mes collègues pour une utilisation sur leurs postes. Donc je compresse mes VM avec 7-zip et je grave le tout sur DVD (au minimum 2, il peut y en avoir plus).
Plutôt que de demander à chaque personne de copier coller sur son poste tous les fichiers de tout les DVD, j'ai commencé un petit script qui une fois lancé copie les fichiers du DVD en local et demande d'insérer le disque suivant pour copier la suite, etc...
Mais je bloque un peu, et je pense que mon code actuel est loin d'être optimal je le sais et il est incomplet pour l'instant ...
Ce que j'ai (plus ou moins) réussi à faire pour l'instant :
- lire un fichier texte gravé sur chaque DVD qui contient la liste complète des fichiers à copier
- tester la présence d'un dossier sur le poste local (dans lequel seront copiés les fichiers) pour savoir si il faut créer ou non ce dossier
- lister les fichiers copiés en local
- indiquer si le fichier est déjà copié
ce que je n'arrive pas à faire :
- comparer le fichier texte du DVD avec le contenu du répertoire en local pour savoir si tous les fichiers sont copiés
- boucler dans le cas où il faut insérer le disque suivant pour ne pas avoir à relancer le script
- et indiquer quand la procédure est terminée
Je vous mets mon code actuel : (c'est des morceaux de scripts piochés à droite à gauche sur le net)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| set objFSO=CreateObject("Scripting.FileSystemObject")
Set wshell = CreateObject("WScript.Shell")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
If objDrive.DriveType=4 then
if (objDrive.IsReady = true) then
If objFSO.FileExists(objDrive.rootfolder & "Liste.txt") Then
set objFile=objFSO.OpenTextFile(objDrive.rootfolder & "Liste.txt")
Do Until objFile.AtEndOfStream
If objFSO.FolderExists(wshell.ExpandEnvironmentStrings("%SYSTEMDRIVE%") & "\Images virtuelles\") Then
strLine = objFile.ReadLine
Source = objDrive.rootfolder & strLine
destination = wshell.ExpandEnvironmentStrings("%SYSTEMDRIVE%") & "\Images virtuelles\" & strLine
If objFSO.FileExists(destination) Then
MsgBox "Fichier déjà copié : " & strLine
Else
If objFSO.FileExists(source) Then
objFSO.copyFile source, destination
Else
End if
End if
Else
objFSO.CreateFolder("C:\Images virtuelles")
End if
Loop
MsgBox "Veuillez insérer le disque suivant"
End if
End if
End if
Next |
Merci de l'aide que vous pourriez me fournir