xcopy
Copia file e directory, incluse le sottodirectory.
Per esempi di utilizzo di questo comando, vedere Esempi.
Sintassi
xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j] [/compress]
Parametri
Parametro | Descrizione |
---|---|
<Origine> | Obbligatorio. Specifica il percorso e i nomi dei file che si desidera copiare. Questo parametro deve includere un'unità o un percorso. |
[<Destination>] | Specifica la destinazione dei file da copiare. Questo parametro può includere una lettera di unità e due punti, un nome di directory, un nome di file o una combinazione di questi. |
/w | Visualizza il messaggio seguente e attende la risposta prima di iniziare a copiare i file: premere un tasto qualsiasi per iniziare a copiare i file |
/p | Chiede di confermare se si vuole creare ogni file di destinazione. |
/c | Ignora gli errori. |
/v | Verifica ogni file mentre viene scritto nel file di destinazione per assicurarsi che i file di destinazione siano identici ai file di origine. |
/q | Evita la visualizzazione dei messaggi di xcopy . |
/f | Visualizza i nomi dei file di origine e di destinazione durante la copia. |
/l | Genera un elenco di file da copiare, ma non copia attivamente i file. |
/g | Crea file di destinazione decrittografati quando la destinazione non supporta la crittografia. |
/d [:MM-GG-AAAA] | Copia i file di origine modificati solo in o dopo la data specificata. Se non si include un valore MM-DD-YYYY, xcopy copia tutti i file di origine più recenti rispetto ai file di destinazione esistenti. Questa opzione della riga di comando consente di aggiornare i file modificati. |
/u | Copia i file dall'origine esistenti solo nella destinazione. |
/i | Se l'origine è una directory o contiene caratteri jolly e destinazione non esiste, xcopy si presuppone che la destinazione specifichi un nome di directory e crei una nuova directory. xcopy Copia quindi tutti i file specificati nella nuova directory. Per impostazione predefinita, xcopy richiede di specificare se la destinazione è un file o una directory. |
/s | Copia directory e sottodirectory, a meno che non siano vuote. Se si omette /s, xcopy funziona all'interno di una singola directory. |
/e | Copia tutte le sottodirectory, anche se sono vuote. Usare /e con le opzioni della riga di comando /s e /t . |
/t | Copia solo la struttura della sottodirectory, ovvero l'albero, non i file. Per copiare directory vuote, è necessario includere l'opzione della riga di comando /e . |
/k | Copia i file e mantiene l'attributo di sola lettura nei file di destinazione , se presenti nei file di origine . Per impostazione predefinita, xcopy rimuove l'attributo di sola lettura. |
/r | Copia i file di sola lettura. |
/h | Copia i file con attributi di file nascosti e di sistema. Per impostazione predefinita, xcopy non copia i file nascosti o di sistema |
/a | Copia solo i file di origine con i relativi attributi di file di archiviazione impostati. /a non modifica l'attributo del file di archivio del file di origine. Per informazioni su come impostare l'attributo del file di archivio tramite attrib, vedere Collegamenti correlati. |
/m | Copia i file di origine con i relativi attributi di file di archiviazione impostati. A differenza di /a, /m disattiva gli attributi dei file di archiviazione nei file specificati nell'origine. Per informazioni su come impostare l'attributo del file di archivio tramite attrib, vedere Collegamenti correlati. |
/n | Crea copie usando i nomi di file brevi o directory NTFS. /n è necessario quando si copiano file o directory da un volume NTFS a un volume FAT o quando è necessaria la convenzione di denominazione del file system FAT (ovvero 8,3 caratteri) nel file system di destinazione . Il file system di destinazione può essere FAT o NTFS. |
/o | Copia le informazioni sulla proprietà dei file e sull'elenco di controllo di accesso discrezionale (DACL). |
/x | Copia le impostazioni di controllo dei file e le informazioni dell'elenco di controllo di accesso al sistema (SACL) (implica /o). |
/exclude:FileName1[+[FileName2]][+[FileName3]( )] | Specifica un elenco di file. È necessario specificare almeno un file. Ogni file contiene stringhe di ricerca con ogni stringa in una riga separata nel file. Quando una delle stringhe corrisponde a qualsiasi parte del percorso assoluto del file da copiare, tale file viene escluso dalla copia. Ad esempio, specificando la stringa obj verranno esclusi tutti i file sotto l'obj della directory o tutti i file con l'estensione .obj. |
/y | Elimina la richiesta di conferma della sovrascrittura di un file di destinazione esistente. |
/-y | Richiede la conferma della sovrascrittura di un file di destinazione esistente. |
/z | Copia in rete in modalità riavviabile. |
/ b | Copia il collegamento simbolico anziché i file. Questo parametro è stato introdotto in Windows Vista®. |
/j | Copia i file senza buffering. Consigliato per file molto grandi. Questo parametro è stato aggiunto in Windows Server 2008 R2. |
/compress | Richiedere la compressione di rete durante il trasferimento di file, se applicabile. |
/[- ]sparse |
Abilita o disabilita la conservazione dello stato sparse dei file durante il processo di copia. Se vengono specificati entrambi i parametri, /-sparse sostituisce /sparse. |
/noclone | Non tenta di bloccare la clonazione come ottimizzazione. |
/? | Visualizza la guida al prompt dei comandi. |
Osservazioni:
Utilizzando /z
Se si perde la connessione durante la fase di copia (ad esempio, se il server che passa alla modalità offline interrompe la connessione), la connessione riprende dopo aver ristabilito la connessione. /z visualizza anche la percentuale dell'operazione di copia completata per ogni file.
Uso di /y nella variabile di ambiente COPYCMD.
È possibile usare /y nella variabile di ambiente COPYCMD. È possibile eseguire l'override di questo comando usando /-y nella riga di comando. Per impostazione predefinita, viene richiesto di sovrascrivere.
Copia di file crittografati
La copia di file crittografati in un volume che non supporta EFS genera un errore. Decrittografare i file prima o copiare i file in un volume che supporta EFS.
Aggiunta di file
Per aggiungere file, specificare un singolo file per la destinazione, ma più file per l'origine, ovvero utilizzando i caratteri jolly o il formato file1+file2+file3.
Valore predefinito per la destinazione
Se si omette la destinazione, il comando
xcopy
copia i file nella directory corrente.Specificare se la destinazione è un file o una directory
Se la destinazione non contiene una directory esistente e non termina con una barra rovesciata (), viene visualizzato il messaggio seguente:
Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
Premere F se si desidera copiare il file o i file in un file. Premere D se si desidera copiare il file o i file in una directory.
È possibile eliminare questo messaggio usando l'opzione della riga di comando /i, che fa
xcopy
sì che la destinazione sia una directory se l'origine è più di un file o una directory.Uso del comando per impostare l'attributo
xcopy
archive per i file di destinazioneIl comando
xcopy
crea file con l'attributo archive impostato, indipendentemente dal fatto che questo attributo sia stato impostato nel file di origine. Per maggiori informazioni sugli attributi dei file e su attrib, vedere Collegamenti correlati.Confronto tra
xcopy
ediskcopy
Se si dispone di un disco che contiene file nelle sottodirectory e si vuole copiarlo in un disco con un formato diverso, usare il comando
xcopy
anzichédiskcopy
. Poiché il comandodiskcopy
copia i dischi tracciati per traccia, i dischi di origine e di destinazione devono avere lo stesso formato. Il comandoxcopy
non possiede questo requisito. Usarexcopy
a meno che non sia necessaria una copia completa dell'immagine del disco.Errore Memoria insufficiente
Un errore di "memoria insufficiente" può verificarsi se è in esecuzione
xcopy
per copiare un file o una cartella il cui percorso del nome file è maggiore di 255 caratteri.Codici di uscita per
xcopy
Per elaborare i codici di uscita restituiti da
xcopy
, utilizzare il parametro ErrorLevel nella riga di comando comando if in un programma batch. Per un esempio di programma batch che elabora i codici di uscita usando se, vedere Collegamenti correlati. Nella tabella seguente, sono elencati i codici di uscita e la descrizione.Codice di uscita Descrizione 0 I file sono stati copiati senza errori. 1 Nessun file trovato per la copia. 2 L'utente ha premuto CTRL+C per terminare xcopy
.4 Si è verificato un errore di inizializzazione. Memoria o spazio su disco insufficiente oppure è stato immesso un nome di unità non valido o una sintassi non valida nella riga di comando. 5 Si è verificato un errore di scrittura del disco.
Esempi
1. Per copiare tutti i file e le sottodirectory (incluse eventuali sottodirectory vuote) dall'unità A all'unità B, digitare:
xcopy a: b: /s /e
2. Per includere qualsiasi file di sistema o nascosto nell'esempio precedente, aggiungere l'opzione della riga di comando /h come indicato di seguito:
xcopy a: b: /s /e /h
3. Per aggiornare i file nella directory \Reports con i file nella directory \Rawdata modificati dal 29 dicembre 1993, digitare:
xcopy \rawdata \reports /d:12-29-1993
4. Per aggiornare tutti i file presenti in \Reports nell'esempio precedente, indipendentemente dalla data, digitare:
xcopy \rawdata \reports /u
5. Per ottenere un elenco dei file da copiare dal comando precedente (ovvero, senza copiare effettivamente i file), digitare:
xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out
Il file xcopy.out elenca tutti i file da copiare.
6. Per copiare la directory \Customer e tutte le sottodirectory nella directory \\Public\Address nell'unità di rete H:, conservare l'attributo di sola lettura e essere richiesto quando viene creato un nuovo file in H:, digitare:
xcopy \customer h:\public\address /s /e /k /p
7. Per eseguire il comando precedente, assicurarsi di xcopy
creare la directory \Address se non esiste ed eliminare il messaggio visualizzato quando si crea una nuova directory, aggiungere l'opzione della riga di comando /i come indicato di seguito:
xcopy \customer h:\public\address /s /e /k /p /i
8. È possibile creare un programma batch per eseguire xcopy
operazioni e usare il batch se il comando per elaborare il codice di uscita in caso di errore. Ad esempio, il programma batch seguente usa parametri sostituibili per i xcopy
parametri di origine e di destinazione:
@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit
Per usare il programma batch precedente per copiare tutti i file nella directory C:\Prgmcode e nelle relative sottodirectory per l'unità B, digitare:
copyit c:\prgmcode b:
L'interprete dei comandi sostituisce C:\Prgmcode per %1 e B: per %2, quindi usa xcopy
con le opzioni della riga di comando /e e /s . Se xcopy
si verifica un errore, il programma batch legge il codice di uscita e passa all'etichetta indicata nell'istruzione IF ERRORLEVEL appropriata, quindi visualizza il messaggio appropriato ed esce dal programma batch.
9. Questo esempio copia tutte le directory non vuote, più i file con l'estensione di file associata dopo il simbolo asterisco.
xcopy .\toc*.yml ..\..\Copy-To\ /S /Y
rem Output example.
rem .\d1\toc.yml
rem .\d1\d12\toc.yml
rem .\d2\toc.yml
rem 3 File(s) copied
Nell'esempio precedente, questo particolare valore del parametro di origine .\toc*.yml copia gli stessi 3 file anche se i due caratteri di percorso .\ sono stati rimossi. Tuttavia, nessun file verrà copiato se il carattere jolly asterisco è stato rimosso dal parametro di origine, rendendolo semplicemente .\toc.yml.