web-dev-qa-db-fra.com

Synchroniser deux dossiers à l'aide d'un fichier de commandes

Je souhaite utiliser un fichier de commandes pour synchroniser 2 dossiers sous Windows et j'utilise la commande xcopy comme celle-ci.

xcopy /s /d <Original Folder> <Destination Folder>

Cela fonctionne parfaitement parce que je veux juste écraser uniquement les fichiers modifiés, mais j'ai un petit problème: lorsque je supprime un fichier du dossier d'origine, ce fichier reste dans le dossier de destination lorsque j'exécute le fichier de commandes, interrompant ainsi la synchronisation souhaitée. atteindre ... Je pense que cela ne peut pas être fait avec xcopy, mais je ne sais pas quelle commande utiliser si je supprime un fichier dans le dossier original.

EDIT: Ce programme est destiné aux personnes qui ne comprennent pas beaucoup de PC, je ne veux donc rien installer dans leur ordinateur. Je veux juste un fichier de commandes pour garder les 2 dossiers synchronisés

SOLUTION: Grâce à Kuba Wyrostek, j'ai obtenu cette commande

robocopy <dossier d'origine> <dossier de destination>/e/purge

Merci à tous pour votre temps 

15
HoTag

xcopy n'a pas cette option. Vos alternatives sont:

rsync - http://rsync.samba.org

robocopy - http://technet.Microsoft.com/en-us/library/cc733145.aspx

15
Kuba Wyrostek

Pour affiner votre réponse, vous pouvez simplement faire: robocopy <Original Folder> <Destination Folder> /mir

/mir reflète une arborescence de répertoires (équivalent à /e plus /purge).

12
Daniel Jochem

Je sais que c'est vieux, mais j'ai une question. Cela ne peut-il pas être fait avec les commandes xcopy correctes.

Dossier 1: c:\workingFolder\"contenu ici"

Dossier 2: d:\workingFolderSync\"contenu ici"

Fichier batch ci-dessous

xcopy "c:\workingFolder\*.*" "d:\workingFolderSync\" /i /s /d /y
xcopy "d:\workingFolderSync\*.*" "c:\workingFolder\" /i /s /d /y
pause

(Je supprime généralement le pause après le test et le fonctionnement du traitement par lots.) copie le contenu de la destination vers la source s'il est plus récent. Cela reproduit ce que fait la synchronisation, à l'exception de la surveillance en temps réel des fichiers modifiés. La création d'un calendrier de tâches approprié peut en réalité implémenter l'exécution de cette commande à des heures précises pour reproduire presque parfaitement la synchronisation. Vous pouvez également l'exécuter avant modification sur une machine et après modification sur une machine. Même faire la même chose sur un deuxième ordinateur si vous utilisez un lecteur réseau pour synchroniser.

2
Sean Potter

Votre méthode aura deux problèmes principaux:

  • Les fichiers supprimés d'un dossier seront rétablis par la copie laissée dans l'autre dossier lors de la prochaine exécution de votre xcopy
  • Renommer des fichiers peut entraîner des résultats chaotiques.
0
Tryx3

La commande XCOPY permettant de copier les mises à jour d'un dossier à un autre est la suivante:

C:\> XCOPY C:/SOURCE D:/DESTINATION /E /D /C /Y

Les drapeaux utilisés dans l'exemple ci-dessus ont les significations suivantes:

  • /E entraîne la copie de tous les dossiers et sous-dossiers
  • /D permet d'effectuer une comparaison DATE en ne copiant que les éléments plus récents que l'élément DESTINATION. Si la DESTINATION est plus ancienne ou ne contient pas le fichier, il sera copié.
  • /C indique à XCOPY de continuer s'il rencontre une erreur - généralement, des erreurs se produisent avec des fichiers en lecture seule ou des fichiers dotés d'autorisations protégées.
  • /Y demande à XCOPY de supprimer l'invite de confirmation, nécessaire si vous souhaitez créer un script d'automatisation ou une tâche planifiée.
0
Wayne Antoine