Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1708 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Synchronisation de dossier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Synchronisation de dossier

n°2314641
daniel-12
Posté le 28-04-2018 à 21:52:54  profilanswer
 

Bonsoir
 
je cherche une solution pour synchroniser 2 répertoires
 
le premier sur C:monrepsource....
le second sur un serveur T:monrepdestination    
 
pour la destination je préfère que le script accepte \servermonrepdestination    
car tous les utilisateurs non pas forcément la même lettre
 
je voudrais que ce soit automatique pour que je puisse le lancer via des taches planifiées, donc exit les vbs qui me demande la source et destination
 
et il faudrait aussi que les sous-répertoire soit pris en compte
 
quelqu'un a cela, en VBS ou VBA ?
 
 
 
j'ai trouvé celui ci, mais il tourne en boucle, écrit et ré-efface
mais j'ai 30go, donc ca va pas le faire sans adaptation

Code :
  1. 'Synchronizes one folder to another using the xcopy command.
  2. 'INSTRUCTIONS: Copy FolderSync.vbs to the Startup menu in Windows.
  3. ' Set SourceFolder to reference the location on your computer.
  4. ' Set TargetFolder to reference the location to copy files to.
  5. ' Adjust scan time to a desired level. 3 seconds (3000) is default.
  6. ' More time may reduce system lag or HDD lag, less time will make
  7. ' files more quickly available.
  8. Dim SourceFolder: SourceFolder = "F:DCIM"
  9. Dim TargetFolder: TargetFolder = "H:" '\servershare also works
  10. Dim ScanTime: ScanTime = 3000
  11. 'Do not edit
  12. Dim retval: retval = 0
  13. Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject" )
  14. Set wshShell = WScript.CreateObject ("WSCript.shell" )
  15. While retval = 0
  16.     retval = wshshell.run("%windir%system32xcopy.exe """&SourceFolder&"*.*"" """&TargetFolder&""" /d /y /s", 0, True)
  17.     CheckDeletions TargetFolder,TargetFolder, SourceFolder
  18.     WScript.Sleep(ScanTime) 'milleseconds
  19. Wend
  20. set wshshell = Nothing 'it will never get here.
  21. Sub CheckDeletions(Target, TargetFolder, SourceFolder)
  22.     Set Folder = objFSO.GetFolder(Target)
  23.     'check if source folder exists
  24.     If Not objFSO.FolderExists(Replace(Folder.Path,TargetFolder,SourceFolder)) Then
  25.         Folder.Delete True 'delete folder because it doesn't exist in the source
  26.     Else 'check within the folder
  27.     For Each Subfolder in Folder.SubFolders
  28.         CheckDeletions Subfolder.Path,TargetFolder,SourceFolder
  29.     Next
  30.     'get the files in the folder
  31.     Set colFiles = Folder.Files
  32.     For Each objFile in colFiles
  33.         If Not objFSO.FileExists(Replace(objFile.Path,TargetFolder,SourceFolder)) Then
  34.             objFile.Delete True 'delete file because it doesn't exist in the source
  35.         End If
  36.         Next
  37.     End If
  38. End Sub

mood
Publicité
Posté le 28-04-2018 à 21:52:54  profilanswer
 

n°2315045
steph78630
Posté le 08-05-2018 à 10:05:54  profilanswer
 

Bonjour,
 
cette fonction en VBScript va demander un peu (!) de code, et sinon Robocopy sait faire cela de façon optimale en une ligne de commande.


Message édité par steph78630 le 08-05-2018 à 10:11:23

---------------
"L'erreur est humaine mais un véritable désastre nécessite un ordinateur." de William Henry, dit Bill Gates
n°2315062
daniel-12
Posté le 08-05-2018 à 16:59:42  profilanswer
 

depuis que j'ai posté, j'ai testé d'autres solutions
ce que je voulais est une solution portable, légère
 
j'ai trouvé FreeFileSyncPortable, qui me semble pas mal
forcément plus lourd qu'un simple VBS, mais compréhensible par tous, et visuel
l'edition d'un VBS par un utilisateur lamba, c'est pas l'idéal
 
https://www.portablefreeware.com/screenshots/scrwvMfYh.gif
 
robocopy, il faut l'installer, cela ne me vas pas

n°2315068
steph78630
Posté le 08-05-2018 à 18:33:21  profilanswer
 

daniel-12 a écrit :

robocopy, il faut l'installer, cela ne me vas pas


 
Daniel, je me souviens en effet qu'il fallait l'installer à partir du Resource Kit (cf. NT 4.0 / W2k) cependant depuis Windows Vista, Robocopy ne s'installe plus car intégré à l'installation de Windows (natif en ligne de commande).
 
Si je puis me permettre, ça me semble difficile de faire plus léger et performant (options miroir, incrémental, purge des fichiers orphelins, compression, etc.), mais pas de soucis l'essentiel est que vous ayez trouvé une solution qui vous convienne.
 
Bien cordialement, Stéphane


Message édité par steph78630 le 08-05-2018 à 18:42:52

---------------
"L'erreur est humaine mais un véritable désastre nécessite un ordinateur." de William Henry, dit Bill Gates

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Synchronisation de dossier

 

Sujets relatifs
Logiciel de synchronisation Partage de dossier sur Windows 7 Embedded
Déplacer des fichiers -> dossier avec une partie du nom des fichiersRécupérer date et heure de modification de dossier dans FTP
Extraire certaines parties PDF d'un dossier vers ExcelSection "Ajouts récents" - Synchronisation ?
Copie et suppression dossier FTP tout les joursversionner le dossier vendor
Faire une recherche d'un dossierJava : Problème affichage à partir d'un dossier txt
Plus de sujets relatifs à : Synchronisation de dossier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR