Existe-t-il un moyen de modifier simplement xcopy ou de nouveaux fichiers?

58

J'essaie de déployer un site Web à partir de mon bureau vers mon serveur Web et je le fais maintenant:

 xcopy C:\source X:\destination /s

Mon ordinateur de bureau est un ordinateur Windows XP et je dois copier sur un ordinateur Windows Server 2008, mais cela copie tout et le site entier est très volumineux et il faut beaucoup de temps pour terminer la copie.

Existe-t-il un moyen de simplement copier des fichiers nouveaux ou mis à jour? Je vois que vous pouvez indiquer une date de changement depuis, mais je voulais voir s'il existait un moyen plus simple de comparer le fichier de destination ...

De plus, je suis ouvert à l’utilisation de tout ce qui est en dehors de xcopy et qui peut également faire le travail

leora
la source
5
Vous pouvez également essayer Robocopy.
Joerage

Réponses:

98

De la documentation XCOPY :

/ d [: mm-jj-aaaa]: copie les fichiers source modifiés à la date spécifiée ou après cette date uniquement. Si vous n'incluez pas de valeur mm-jj-aaaa, xcopy copie tous les fichiers source plus récents que les fichiers de destination existants. Cette option de ligne de commande vous permet de mettre à jour les fichiers qui ont été modifiés.

Donc, avec votre exemple, cela devrait se lire:

xcopy C:\source X:\destination /s /d
marque
la source
2
le "/ d" semble indiquer que vous devez lui donner une date. comme mentionné dans la question, je n'ai pas de date butoir en tête. je veux juste copier par-dessus des fichiers nouveaux et mis à jour
leora
10
Non, la date est facultative! Thats pourquoi il est entre crochets. Avez-vous réellement lu cette ligne? Il dit qu'il fait exactement ce que vous voulez qu'il fasse!
Marc
4
La seule chose à laquelle il faut faire attention avec cette réponse est que le serveur Web et votre poste de travail sont réglés à la même heure! S'ils n'utilisent pas tous les deux le protocole NTP, des fichiers manquants ou une copie de plus de fichiers que nécessaire peuvent être perdus.
CarlF
5
Bien que la documentation l'indique avec précision, il est facile de l'ignorer /dcar il n'est pas si important que la date soit facultative, puis examinez les autres options et pensez qu'il n'y a pas de solution. :-)
Stéphane Gourichon
2
Si un fichier n'existe pas dans le dossier de destination, il semble que / D sans date spécifiée le copie, ce qui peut ne pas être le résultat souhaité.
2016
25

Robocopy est également une bonne alternative:

Par défaut, Robocopy ne copie un fichier que si la source et la destination ont des horodatages ou des tailles de fichier différents.

De plus, vous pouvez faire beaucoup plus - la commande mirror est pratique pour les sites Web sur lesquels vous supprimez des fichiers.

Mat
la source
1
Merci de mentionner robocopy - il est toujours agréable d’apprendre certains des nouveaux utilitaires disponibles.
Casper Leon Nielsen
3

Utilisez l'option / A. Tous les fichiers nouveaux ou modifiés auront un attribut archive.

Consultez le lien ci-dessous pour plus de détails:

Syntaxe de la commande Xcopy et exemples

Giri
la source
1
Oui, mais à moins que vous ne le fassiez xcopy /M, l' attribut d'archivage sera toujours défini dans les fichiers source une fois que vous l'avez copié et sera également copié la prochaine fois. Nécessite un accès en écriture aux fichiers source.
Nigel Touch
2

J'ai prévu la tâche suivante pour ~ 80k fichiers et ~ 2k dossiers:

xcopy \\sourceserver\share\ Q:\backuptarget\folder\ /i /d /y /he /C /EXCLUDE:C:\backup\list.txt > C:\backup\backup.log

l'option / C continue la copie même si "l'accès est refusé" au fichier ou au dossier en raison de son ouverture ou de l'absence d'autorisation sous le compte de service sous lequel vous exécutez cette tâche planifiée.

le ">" écrase le journal à chaque fois si vous voulez ajouter, vous pouvez utiliser le tuyau ">>".


la source
0

Il y a rsync , mais je n'ai pas utilisé Windows. La façon dont je l’utilise normalement sous Linux est la suivante:

rsync -avuz src/ remote:dst/

qui envoie seulement les mises à jour (fichiers nouveaux et modifiés).

jcomeau_ictx
la source
-1

BitTorrent Sync fonctionne à merveille. Il sera mis à jour automatiquement chaque fois que vous modifiez un fichier. D'égal à égal. Mettez à jour plusieurs emplacements à la fois si vous en avez besoin. Facile à utiliser.

Jon49
la source