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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager