Qual è il comando da riga di comando di Windows per copiare i file?


34

Qual è il comando del prompt dei comandi di Windows per copiare i file?

Devo spostare un file dalla posizione A alla posizione B. Inoltre, se la cartella per la posizione B non esiste, voglio averla creata.

Ho bisogno che questo sia una riga di comando in modo da poterlo automatizzare.

La versione di Windows è XP.


1
robocopyfunziona benissimo anche
Nixphoe

Risposte:


44

Il comando xcopyè quello che stai cercando. Esempio:

xcopy source destination /E /C /H /R /K /O /Y

Il comando sopra copierà l'origine nella destinazione, i file e le directory (compresi quelli vuoti), non si fermerà in caso di errore, copierà i file nascosti e di sistema, sovrascriverà i file di sola lettura, conserverà gli attributi e le informazioni di proprietà / ACL e sopprimerà il chiedendo di sovrascrivere i file di destinazione esistenti.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Per ulteriori informazioni, digitare xcopy /?e la riga di comando.


2
Le versioni future di Windows includono RoboCopy. Da Vista XCOPY: "NOTA: Xcopy è ora obsoleto, utilizza Robocopy."
George Tsiokos,

1
È interessante notare che, due anni dopo il tuo commento, George, xcopy continua a "

Si noti che gli ambienti Windows XP incorporati (POSReady 2009, ecc.) Non vengono forniti con xcopy.
Epoc,

Ho suggerito una modifica per elencare tutte queste opzioni ...! Se non lo stai automatizzando /E /He forse /K /Oti fa fare molta strada con alcuni suggerimenti pratici
KCD,

Non dimenticare /J, che impedisce un bug con XCopy durante la copia di file di grandi dimensioni. Non sono sicuro del perché non lo renderebbero predefinito ...
BlueRaja

8

Usa md per creare la cartella (va bene se esiste già)

Usa copia o sposta per i file e xcopy per le cartelle


Puoi darmi un esempio della sintassi?
David Basarab,

3
copia fred.txt copy_of_fred.txt
Adam Gibbins

1
copia /? ti darà il testo di aiuto, un po 'come una pagina man di DOS.
Scottie T,

2

In un file batch:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not existscontrolla il parametro per vedere se esiste, ma funziona solo sui file. Per verificare l'esistenza di una directory , è necessario cercare uno 'pseudo-file' chiamato "nul" - il controllo dell'esistenza di questo file restituirà sempre true se la directory esiste.

Le copie di linea copiare il file chiamato filenella directory locationAdi locationBe nomi di file la stessa cosa. Se vuoi rinominare il file contemporaneamente, puoi farlo anche tu:

copy locationA\file locationB\newfilename

2

Se vuoi la possibilità di sincronizzare la copia e altre funzionalità avanzate (ignora determinate cartelle, includi solo determinati caratteri jolly), guarda robocopy. Incluso in Vista e oltre, opzionale (dagli strumenti del kit di risorse) nelle versioni precedenti.


Per qualsiasi cosa importante, vado anche con Robocopy. Mi sembra di ricordare un'enorme differenza di prestazioni rispetto a xcopy quando si sincronizza un gran numero di file.
Kara Marfia,

1

Usa ROBOCOPY se stai creando script di backup. la xcopy è stata deprecata e probabilmente sarà gradualmente eliminata nel prossimo futuro. robocopy può fare tutto ciò che xcopy può fare. È anche più flessibile e affidabile. La creazione di script con robocopy li renderà a prova di futuro.


  1. Usa robocopy per copiare facilmente le cartelle. Il comando robocopy sostituisce il comando xcopy. Può copiare rapidamente intere cartelle senza doversi preoccupare di definire il contenuto. Ad esempio, per copiare tutto il contenuto della directory C: \ tools nella nuova cartella D: \ backup \ tools, immettere quanto segue:

    robocopy C:\tools D:\backup\tools /e
    

    Il modificatore / e dice a robocopy di includere tutte le sottodirectory. Questo include cartelle vuote. robocopy copia automaticamente i file nascosti e di sistema. Creerà nuove directory se non esistono nella posizione di destinazione.

  2. Mirroring di una directory. Il mirroring di una directory è ottimo per eseguire i backup. L'opzione mirror di robocopy copierà tutti i contenuti dall'origine alla destinazione. Quindi eliminerà qualsiasi cosa nella destinazione che non esiste alla fonte. Ciò garantisce che il backup disponga solo delle ultime versioni dei file. Ad esempio, per eseguire il mirroring di C: \ Users \ My Documents su D: \ backup \ My Documents, immettere quanto segue: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Questa funzione conserverà tutte le autorizzazioni dei file originali.

  3. Abilita il riavvio. È possibile che si desideri includere la possibilità di riavviare il processo nel caso in cui la connessione venga interrotta a metà copia.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Registra il processo di copia. robocopy ti consente di creare un file di registro. Questo può aiutarti a individuare i problemi o generare un archivio di ciò che è stato copiato.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    Il modificatore / log + aggiungerà il file di registro esistente invece di sovrascriverlo. Se preferisci sovrascrivere il vecchio file di registro, usa /log:.txt.


0

xcopy creerà la struttura di directory per te. Il trucco è usare l'opzione / I e lanciare un asterisco alla fine del nome del file in modo che xcopy pensi che stai copiando più file, altrimenti ti chiede se il nome di destinazione è il nome del file desiderato o il nome della directory che desideri . Per esempio.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

Guarderei anche RoboCopy, ma è necessario ottenerlo dal kit di risorse in quanto non è in Windows fino a Vista.


-1

Il comando precedente crea un livello di directory aggiuntivo con il nome del file di origine. Quindi ... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * destdir \ dir1 \ dir2 \ file1.txt genera destdir \ dir1 \ dir2 \ file1.txt \ file1.txt


1
Non ha senso rispondere a una domanda così vecchia, che ha già una risposta accettata e non contribuisce con un certo valore aggiunto alla tua risposta.
alphamikevictor,
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.