2009-02-25 15 views
14

È possibile utilizzare xcopy per copiare file da diverse directory in una directory utilizzando solo un comando xcopy?Utilizzo di xcopy per copiare file da diverse directory in una directory

Supponendo che ho l'albero delle directory

root \ Source \ Sub1 \ Sub2

voglio copiare tutti i file .xml dalla directory root \ Source tra cui sottocartella di root \ destinazione. Non voglio copiare la struttura della cartella, solo i file.

+3

Ancora sarebbe interessante vedere xcopy soultion se possibile – Michal

+0

Per un modo comando non DOS, prova questo- http://www.pcworld.com/article/2105149/gather-similar-files-from-multiple-folders-and-copy-them-in-one-simple-step.html – CrakC

risposta

33

Come ha detto DandDI, non è necessario xcopy. perché la dichiarazione aiuta molto. Tuttavia, non è necessario indicare il risultato del processo di comando dir così, questo comando aiuta a meglio

for /R c:\source %f in (*.xml) do copy "%f" x:\destination\ 

A proposito, quando lo si utilizza da un file batch, è necessario aggiungere ricambio% davanti variabile% f da cui dovrebbe essere la riga di comando;

for /R c:\source %%f in (*.xml) do copy %%f x:\destination\ 

quando lo si utilizza all'interno di un lotto

  • Qualora Surround% f con le doppie virgolette altrimenti fallirà copiare i nomi di file con spazi
+0

è la soluzione xcopy possibile - Ho trovato il modo di copiare file e cartelle, ma mi piacerebbe prendere solo i file – Michal

+0

Ho una domanda su questo, potresti aiutarmi con questo? se la directory di destinazione contiene già alcuni file, in quel caso non voglio sovrascrivere/sostituire i file esistenti e copiare solo i file che sono stati aggiunti direttamente nella fonte. – user1699227

+0

Sfortunatamente non sto più scrivendo script DOS ma suppongo che la sostituzione di 'copia %% f x: \ destinazione \' con 'xcopy %% f x: \ destinazione \/Y' dovrebbe funzionare. Si prega di consultare la documentazione di 'xcopy'. – kokeksibir

3

Non è necessario xcopy per questo. È possibile ottenere un elenco di tutti i file desiderati ed eseguire la copia in questo modo.

Per esempio in windows xp prompt dei comandi:

 
for /f "delims==" %k in ('dir c:\source\*.xml /s /b') do copy "%k" x:\destination\ 

I/s va in tutte le sottodirectory e le liste b/solo il nome file e il percorso. Ogni inturn del file viene assegnato alla variabile% k, quindi il comando copy copia il file nella destinazione. L'unico trucco è assicurarsi che la destinazione non faccia parte della fonte.

0

la risposta a questo problema che penso è "Come raccogliere tutti i file da tutte le piccole sottodirectory in una singola directory" è scaricare un software chiamato XXCOPY. Questo è liberamente disponibile tramite XXCOPY.COM e c'è una versione gratuita non commerciale per fortuna. Una delle domande frequenti sulla guida in linea su XXCOPY.COM è in effetti "Come faccio a raccogliere tutti i miei file in una directory" e ti indica quale opzione utilizzare. XXCOPY è un modo sicuro per farlo ed è disponibile in un archivio .zip in modo da decomprimerlo non è così semplice, ma non è nemmeno particolarmente difficile. C'è un programma di decompressione chiamato ZipGenius disponibile attraverso il sito Web ZipGenius.it quindi forse prima di scaricare XXCOPY quindi scaricare ZipGenius quindi è una piccola parte smalltime double wammy (!)

Problemi correlati