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 da copiare. Questo parametro deve includere un'unità o un percorso.
[<Destinazione>] 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 Elimina la visualizzazione dei xcopy messaggi.
/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-GG-AAAAA, copia tutti i file di origine più recenti rispetto ai file di destinazione esistenti. xcopy 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 in cui sono impostati gli attributi del file di archiviazione. 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 conterrà 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 verrà 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 confermare che si desidera sovrascrivere un file di destinazione esistente.
/-y Chiede di confermare che si desidera sovrascrivere un file di destinazione esistente.
/z Copia in una 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.
/Comprimere Richiedere la compressione di rete durante il trasferimento di file, se applicabile.
/? Visualizza la guida al prompt dei comandi.
/sparse Abilita la conservazione dello stato sparse dei file durante la copia.

Osservazioni:

  • Utilizzando /z

    Se si perde la connessione durante la fase di copia( ad esempio, se il server che passa offline esegue 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 accodare i file, specificare un singolo file per la destinazione, ma più file per l'origine, ovvero usando caratteri jolly o file1+file2+file3 formato.

  • Valore predefinito per la destinazione

    Se si omette la destinazione, il xcopy comando 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 destinazione

    Il xcopy comando crea file con l'attributo archive impostato, indipendentemente dal fatto che questo attributo sia stato impostato nel file di origine. Per altre informazioni sugli attributi dei file e su attrib, vedere Collegamenti correlati.

  • Confronto xcopy e discocopy

    Se si dispone di un disco che contiene file nelle sottodirectory e si vuole copiarlo in un disco con un formato diverso, usare il xcopy comando anziché diskcopy. Poiché il comando diskcopy copia i dischi tracciati per traccia, i dischi di origine e di destinazione devono avere lo stesso formato. Il xcopy comando non ha questo requisito. Usare xcopy a meno che non sia necessaria una copia completa dell'immagine del disco.

  • Errore di 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, usare il parametro ErrorLevel nella riga di 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 ogni codice di uscita e una descrizione.

    Codice di uscita Descrizione
    0 I file sono stati copiati senza errori.
    1 Non sono stati trovati file da copiare.
    2 L'utente ha premuto CTRL+C per terminare xcopy.
    4 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 e 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.