Condividi tramite


xcopy

Copia file e directory, incluse le sottodirectory.

Per esempi di come utilizzare questo comando, vedere Esempi.

Syntax

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]

Parameters

Parameter Description
<Fonte> Required. 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 Ignores errors.
/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-DD-YYYY] Copia i file di origine modificati solo in o dopo la data specificata. Se non si include un valore xcopyMM-GG-AAAA, 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 dall'origine i file esistenti solo nella destinazione .
/i Se l'origine è una directory o contiene caratteri jolly e la destinazione non esiste, xcopy 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 viene richiesto 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. Utilizzare /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 presente 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 per i quali sono impostati gli attributi del file di archivio. /a non modifica l'attributo del file di archivio del file di origine. Per informazioni su come impostare l'attributo del file di archivio utilizzando attrib, vedere Collegamenti correlati.
/m Copia i file di origine per i quali sono impostati gli attributi del file di archivio. A differenza di /a, /m disattiva gli attributi dei file di archivio nei file specificati nell'origine. Per informazioni su come impostare l'attributo del file di archivio utilizzando 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 la convenzione di denominazione del file system FAT (ovvero 8,3 caratteri) è richiesta 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, se si specifica la stringa obj , verranno esclusi tutti i file sotto la directory obj o tutti i file con 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.
/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 esegue l'override di /sparse.
/noclone Non tenta di bloccare la clonazione come ottimizzazione.
/? Visualizza la guida al prompt dei comandi.

Remarks

  • Using /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 di completamento dell'operazione di copia per ogni file.

  • Utilizzo di /y nella variabile di ambiente COPYCMD.

    È possibile utilizzare /y nella variabile di ambiente COPYCMD. È possibile eseguire l'override di questo comando utilizzando /-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.

  • Appending files

    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.

  • Specifica 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 seguente messaggio:

    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 utilizzando l'opzione della riga di comando /i , che fa sì xcopy che si supponga che la destinazione sia una directory se l'origine è più di un file o una directory.

  • Utilizzo del comando per impostare l'attributo di archivio per i xcopy 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 ulteriori informazioni sugli attributi e sull'attributo dei file, vedere Collegamenti correlati.

  • Confronto tra xcopy e diskcopy

    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 diskcopy comando 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, utilizzare il parametro ErrorLevel nella riga di comando if in un programma batch. Per un esempio di un programma batch che elabora i codici di uscita utilizzando if, vedere Collegamenti correlati. Nella tabella seguente sono elencati ogni codice di uscita e una descrizione.

    Exit code Description
    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.

Examples

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 eventuali file di sistema o nascosti 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 che sono stati 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 con il comando precedente (cioè 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 sull'unità di rete H:, mantenere l'attributo di sola lettura e ricevere una richiesta quando viene creato un nuovo file su H:, digitare:

xcopy \customer h:\public\address /s /e /k /p

7. Per eseguire il comando precedente, assicurarsi che xcopy crei la directory \Address se non esiste e sopprimere il messaggio che appare quando si crea una nuova directory, aggiungere l'opzione della riga di comando /i come segue:

xcopy \customer h:\public\address /s /e /k /p /i

8. È possibile creare un programma batch per eseguire xcopy operazioni e utilizzare il comando batch if per elaborare il codice di uscita se si verifica un 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 con %1 e B: con %2, quindi utilizza xcopy con le opzioni della riga di comando /e e /s . Se xcopy rileva 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. In questo esempio vengono copiate tutte le directory non vuote, oltre ai file con l'estensione di file associata dopo il simbolo dell'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 verrebbe copiato se il carattere jolly asterisco fosse rimosso dal parametro di origine, rendendolo solo .\toc.yml.