C'è un modo per xcopy appena cambiato o nuovi file?


58

Sto cercando di distribuire un sito Web dal mio desktop al mio server web e quindi in questo momento sto facendo questo:

 xcopy C:\source X:\destination /s

Il mio desktop è una macchina Windows XP e devo copiarlo su una macchina Windows Server 2008, ma questo copia tutto e l'intero sito è molto grande e impiega molto tempo per terminare la copia.

Esiste un modo per copiare semplicemente file nuovi o aggiornati? Vedo che puoi passare in una data modificata da allora, ma volevo vedere se esiste un modo più semplice per confrontare il file di destinazione ...

Inoltre, sono aperto all'uso di qualsiasi cosa al di fuori di xcopy che possa fare anche il lavoro ...


5
Puoi anche provare Robocopy.
Joerage

Risposte:


98

Dalla documentazione XCOPY :

/ d [: mm-gg-aaaa]: copia i file di origine modificati solo o dopo la data specificata. Se non si include un valore mm-gg-aaaa, xcopy copia tutti i file di origine più recenti dei file di destinazione esistenti. Questa opzione della riga di comando consente di aggiornare i file che sono stati modificati.

Quindi, con il tuo esempio, dovrebbe leggere:

xcopy C:\source X:\destination /s /d

2
"/ d" sembra che tu debba dargli una data. come menzionato nella domanda, non ho in mente una data limite. voglio solo copiare file nuovi e aggiornati
leora

10
No, la data è facoltativa! Ecco perché è tra parentesi quadre. Hai davvero letto quella riga? Dice che fa esattamente quello che vuoi che faccia!
Mark

4
L'unica cosa a cui prestare attenzione con questa risposta è che il server Web e la workstation sono impostati allo stesso tempo! Se non utilizzano entrambi NTP, potrebbero mancare file o copiare più file del necessario.
CarlF,

5
Mentre la documentazione lo afferma in modo preciso, è facile trascurare il /dfatto che non è così saliente che la data sia facoltativa, quindi guarda le altre opzioni e pensa che non ci sia soluzione. :-)
Stéphane Gourichon,

2
Se un file non esiste nella cartella di destinazione, sembra che / D senza data specificata lo copierà, il che potrebbe non essere il risultato desiderato.
Osso

25

Robocopy è anche una buona alternativa:

Per impostazione predefinita, Robocopy copia un file solo se l'origine e la destinazione hanno timestamp diversi o dimensioni file diverse.

Inoltre, puoi fare molto di più: il comando mirror è utile per i siti Web in cui stai eliminando i file.


1
Grazie per aver menzionato robocopy: è sempre bello imparare alcune delle nuove utility disponibili.
Casper Leon Nielsen,

3

Utilizzare l'opzione / A. Tutti i file nuovi o modificati avranno set di attributi di archiviazione.

Controlla il link qui sotto per i dettagli:

Sintassi ed esempi del comando Xcopy


1
Sì, ma a meno che tu non abbia xcopy /M, quindi i file di origine avranno ancora l'attributo di archivio impostato dopo averli copiati e verranno copiati anche la prossima volta. Richiede l'accesso in scrittura ai file di origine.
Nigel Touch

2

Ho in programma le seguenti attività per ~ 80k file e ~ 2k cartelle:

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

l'opzione / C continua la copia anche se "accesso negato" al file o alla cartella a causa dell'apertura o della mancanza dell'autorizzazione nell'account di servizio in cui si esegue questa attività pianificata.

il ">" sovrascrive il registro ogni volta che si desidera aggiungere è possibile utilizzare la pipe ">>".


0

C'è rsync , ma non ho usato su Windows. Il modo in cui lo uso normalmente su Linux è:

rsync -avuz src/ remote:dst/

che invia solo aggiornamenti (file nuovi e modificati).


-1

BitTorrent Sync funziona meravigliosamente. Si aggiornerà automaticamente ogni volta che cambi un file. Peer to peer. Aggiorna più posizioni contemporaneamente se necessario. Facile da usare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.