Het Xcopy-gereedschap, wat staat voor uitgebreide kopie, is een populair command-line hulpprogramma voor het kopiëren van enorme hoeveelheden gegevens in Windows. Vergeleken met het traditionele kopie
-commando, heeft Xcopy meer functies en schakelaars die je meer controle geven bij het kopiëren of verplaatsen van bestanden en mappen.
In deze handleiding leer je hoe je Xcopy kunt gebruiken voor verschillende bestandskopieerscenario’s. Van het kopiëren van een enkel bestand, meerdere mappen, het toepassen van filters of uitsluitingen, en meer. Tegen het einde zul je de kennis hebben opgedaan om Xcopy te gebruiken in je alledaagse bestandskopieertaken.
Laten we beginnen!
Vereisten
Om de voorbeelden in deze handleiding te volgen, heb je het volgende nodig.
- A Windows (server or client) computer. Xcopy comes built-in to Windows, and you don’t need to download anything else. This guide will use Windows 10 Build 1909.
- Xcopy werkt in de opdrachtprompt of PowerShell, en dit artikel gaat ervan uit dat je er al een open hebt.
Begrip van het Xcopy-commando
Xcopy is een command-line hulpprogramma, dat beschikbaar is sinds Windows 98. Je kunt dit gereedschap vinden in de map %WINDIR%\system32 met de uitvoerbare naam xcopy.exe
.
Vergeleken met het Windows kopie
-commando, is Xcopy veel efficiënter in het kopiëren van bestanden en mappen. Bovendien heeft Xcopy meer opties waardoor het meer aanpasbaar is en je het gedrag van de bestandskopie kunt controleren.
Voordelen
Er zijn verschillende voordelen of voordelen van het gebruik van Xcopy die je zult ontdekken terwijl je verdergaat in deze handleiding. Maar hier zijn enkele voordelen van het gebruik van Xcopy.
- Snellere kopieeroperatie voor grote sets bestanden en mappen.
- Vereenvoudigt de implementatie van toepassingen.
- Kan de structuur van de brondirectory exact repliceren.
- Bestanden kopiëren met behoud van de eigenaar en toegangsbeheerlijst (ACL)-informatie.
- Kan alleen-lezen bestanden kopiëren en overschrijven.
- Kan bestanden uitsluiten op basis van de bestandsnaam, extensie of het pad.
- Kan bijgewerkte bestanden identificeren, wat handig is voor differentiële back-ups.
- Integreren en gebruiken met scripts.
Beperkingen
Hoewel Xcopy geweldig is, heeft het beperkingen. Hoewel deze beperkingen misschien geen dealbreaker zijn, is het goed om te weten wat ze zijn voordat je aan de slag gaat.
- Kan geen geopende bestanden kopiëren.
- Geen ondersteuning voor de Windows Volume Shadow Copy Service (VSS). Het ontbreken van VSS-ondersteuning maakt Xcopy ongeschikt voor het maken van back-ups van live besturingssysteemvolumes.
- Onvoldoende geheugenfout wanneer de lengte van het pad plus de bestandsnaam meer dan 254 tekens bedraagt.
Xcopy Syntax Referentie
Xcopy stelt je in staat om verschillende bestands- en mapkopieeroperaties uit te voeren. Maar eerst moet je de syntaxis en opties begrijpen. Er zijn veel opties die bepalen hoe Xcopy werkt. Om je te helpen deze opties te begrijpen, zullen de volgende tabellen ze in detail behandelen.
De eerste padaanduiding verwijst naar het bronbestand(en); de tweede padaanduiding verwijst naar het doelbestand(en).
[bron]
– Padnaam voor het te kopiëren bestand(en) (accepteert jokertekens). Je moet het station, het pad en de bestanden specificeren die je wilt kopiëren.[bestemming]
– Padnaam voor de nieuwe bestand(en). Als je het doelpad niet opgeeft, zal de opdracht de bestanden kopiëren naar hetzelfde pad als de bron.[opties]
– Kan een van de volgende opties in de onderstaande tabellen zijn. Je kunt deze opties ook bekijken door de opdrachtxcopy /?
uit te voeren of door de Xcopy online documentatie te raadplegen.
Bronopties
Switch | Explanation |
/A | Copy files that have the archive attribute. |
/M | Copy files with the archive attribute set, then switches off the archive attribute at the destination. Use this option when creating routine backups. |
/H | Copy hidden and system files and directories. The default value is N. |
/D:mm-dd-yyyy | Only copies that files with modification date on or after the given date. Without using this option, the command will copy only the files whose date/time is newer than the destination. |
/U | Only copies the files that already exists at the destination. |
/S | Copies folders and subfolders recursively excluding the empty one. |
/E | Copies folders and subfolders recursively including the empty one. |
/EXCLUDE:file1[+file2][+file3]… | Specify the text file(s) containing a list of strings to match absolute file paths to exclude. |
Doelopties
Switch | Explanation |
/I | If the destination does not exist, using this option assumes that the destination is a directory and creates it. If you omit this option, the command prompts to confirm if the destination is a directory or a file. |
/R | Overwrites read-only files. |
/T | Creates a recursive folder structure at the destination without copying the files. This option does not include copying empty folders. To include empty folders, use this option together with the /E option. |
/K | Preserves the file attributes during the copy. Otherwise, the command will reset read-only attributes. |
/N | Copies files using their short file names. |
/O | Copies files including ownership and access control list (ACL) information. |
/X | Copies files including file audit settings and ACL information (implies using /O). |
Kopieeropties
Switch | Explanation |
/W | Prompts for a key press before the copy process can start. |
/P | Prompts (Y/N) before creating each file. |
/Y | Suppresses the confirmation to overwrite destination file if exists. |
/-Y | Prompts to confirm overwriting an existing destination file. |
/V | Verifies that the source and destination file sizes are identical. |
/C | Ignores errors and forces the command to continue copying. |
/B | Copies only the symbolic link but not the link target file. |
/G | Copies encrypted files to a destination that does not support encryption. |
/J | Copies files without using the buffer. This switch useful when copying very large files. |
/Q | Suppresses the display of file names while copying. |
/F | Displays the full source and destination file paths while copying. |
/L | Only displays which files to copy without copying them. This switch can be useful when testing Xcopy commands with multiple options to assess the expected result. |
/Z | Copies files in restartable mode. Using this option, the command gracefully stops copying files during network interruption. The copying will resume after re-estabslishing the network connection. |
Werken met Xcopy: Gebruik voorbeelden
Nu je bekend bent met de Xcopy-syntaxis en -opties, is het tijd om het daadwerkelijk te gaan gebruiken door een of meer opties te combineren. In de volgende secties zul je veel verschillende scenario’s verkennen om Xcopy te gebruiken voor het kopiëren van bestanden en mappen.
Bestanden om te kopiëren
Als je een bestandsserver hebt met een enorme hoeveelheid bestanden die je wilt kopiëren, misschien naar een back-uplocatie, dan is het ideaal om eerst je Xcopy-opdracht te testen. Een situatie waarin je Xcopy wilt testen, is wanneer je meerdere Xcopy-opties combineert.
Door de schakelaar /L
te gebruiken met Xcopy, kun je simuleren wat er zou zijn gebeurd als je de opdracht had uitgevoerd door te laten zien welke bestanden het zou kopiëren. Op deze manier kun je bevestigen of je opdracht alle bestanden kopieert die je bedoelde.
Het kopiëren van een enkel bestand
De meest basale handeling die je met Xcopy kunt uitvoeren, is het kopiëren van een bestand van een bron naar een bestemming zonder enige opties te gebruiken. Bijvoorbeeld, de onderstaande opdracht zal een tekstbestand naar een bestemmingsmap kopiëren, en de bestandsnaam blijft hetzelfde.
Je kunt ook het bronbestand kopiëren en de bestemmingsbestandsnaam wijzigen door de onderstaande opdracht uit te voeren.
Bestanden kopiëren naar een nieuwe map
Met Xcopy kun je bestanden kopiëren en de doelmap ter plekke maken. Hiervoor moet je de optie /I
aan de Xcopy-opdracht toevoegen.
Bijvoorbeeld, de onderstaande opdracht kopieert de bestanden van de C:\Workarea\Demo map naar de D:\Workarea map. Als de doelmap niet bestaat, maakt Xcopy de doelmap aan met de optie /I
.
Het kopiëren van alle bestanden en mappen recursief
Naast het kopiëren van bestanden van de ene map naar de andere, stelt Xcopy je ook in staat om mappen en bestanden recursief te kopiëren. En er zijn twee manieren om een recursieve kopie uit te voeren, met en zonder lege mappen.
Om alle bestanden en mappen te kopiëren terwijl lege mappen worden genegeerd, voeg je de optie /S
toe aan het einde van het Xcopy-commando, zoals hieronder getoond.
Aan de andere kant, om lege mappen op te nemen tijdens het recursieve kopiëren, voeg je in plaats daarvan de optie /E
toe aan het commando.
Het opnemen van Verborgen en Systeembestanden
Standaard worden verborgen en systeembestanden niet opgenomen in kopieerbewerkingen met Xcopy. Maar als je Xcopy wilt dwingen om verborgen en systeembestanden op te nemen, voeg dan de schakelaar /H
toe aan het commando.
Het onderstaande commando kopieert alle bestanden recursief, inclusief verborgen en systeembestanden. Dit commando negeert ook fouten, maakt de bestemmingsmappen aan en overschrijft bestaande bestanden.
Het behouden van het kenmerk Alleen-lezen
Een ander kenmerk dat Xcopy kan verwerken en behouden, is het kenmerk Alleen-lezen van het bestand. Standaard, wanneer Xcopy een alleen-lezen bestand kopieert, verwijdert het de alleen-lezen attribuut van het bestand op de bestemming. Om te voorkomen dat Xcopy het alleen-lezen attribuut verwijdert, voeg je de schakelaar /K
toe aan het commando.
Bijvoorbeeld, het onderstaande commando kopieert een alleen-lezen bestand naar een andere locatie, en het resulterende bestemmingsbestand zal nog steeds het alleen-lezen attribuut hebben. Dit commando zal ook het bestemmingsbestand overschrijven als het bestand bestaat.
Als neveneffect van het behouden van het bestand als alleen-lezen, kan Xcopy hetzelfde bestand niet overschrijven in toekomstige kopieerbewerkingen. Maar je kunt Xcopy dwingen om alleen-lezen bestanden te overschrijven door de schakelaar /R
toe te voegen.
Filteren van bestanden om te kopiëren
Stel dat er meerdere bestanden in de bronmap en submappen zijn die je wilt kopiëren. Xcopy stelt je in staat jokertekens te gebruiken als een manier om te filteren welke bestanden je wilt kopiëren.
Bijvoorbeeld, de onderstaande opdracht kopieert alleen de bestanden met de extensie .cs recursief vanaf de hoofdmap van de C:-schijf naar de hoofdmap van de E:-schijf. Deze opdracht negeert ook fouten en overschrijft bestaande bestanden zonder om bevestiging te vragen.
Bestanden en Mappen Uitsluiten bij het Kopiëren
A powerful feature of Xcopy is its ability to exclude files from the copy process. To use this feature, you can leverage the /EXCLUDE
switch. This switch accepts the names of the file(s) that contain the exclusion lists.
Eerst moet je een bestand maken of hebben met de uitsluitingslijst. Bijvoorbeeld, je kunt een tekstbestand hebben met de naam Exclude.txt met de volgende inhoud. Zoals je kunt zien, kan het uitsluitingsbestand specifieke bestandsnamen, bestandsextensies en mappen bevatten als vermeldingen.
Om Xcopy met uitsluitingen uit te voeren, voer je de onderstaande opdracht uit en geef je het volledige pad van het uitsluitingsbestand op aan de /EXCLUDE
-schakelaar. Deze opdracht gebruikt het bestand C:\Workarea\XCopyDemo\Exclude.txt.
Het resultaat? Xcopy kopieert bestanden, maar slaat de bestanden over met de namen xyz.txt, Exclude.txt, alle bestanden met de extensie .pdf en .png, en alle bestanden onder de map exclude.
Een Differentiële Kopie Uitvoeren
Wanneer je bestanden van de ene locatie naar de andere wilt back-uppen, heeft Xcopy een optie waarmee je een differentiële back-up kunt uitvoeren. In plaats van alle bestanden te kopiëren, kopieert een differentiële back-up alleen de bestanden waarvan de gewijzigde datum op of na een door jou opgegeven datum valt, naar de /D:m-d-y
-schakelaar.
Bijvoorbeeld, om alleen de bestanden te kopiëren met de gewijzigde datum op of na 1 april 2021, voer je de onderstaande opdracht uit. Daarnaast voert deze opdracht een recursieve kopie uit, negeert fouten en overschrijft bestaande bestanden op de bestemming.
Als u geen datum opgeeft met de /D
-optie, kopieert Xcopy alleen de bronbestanden die nieuwer zijn dan de bestemmingsbestanden.
Bestanden kopiëren op basis van het archiefattribuut
Meestal verwijderen back-upprogramma’s het archiefattribuut van een bestand na een back-upbewerking. Na het wijzigen van een bestand (d.w.z. bewerken en opslaan), reset Windows automatisch het archiefattribuut van de bestanden.
Als u een script maakt om bestanden te back-uppen met behulp van Xcopy, kunt u het archiefattribuut gebruiken om te bepalen of het bestand moet worden gekopieerd of niet.
Om bestanden met het archiefattribuut te kopiëren, kunt u gebruikmaken van de schakelaars /A
en /M
. Welke van deze schakelaars u moet gebruiken, hangt af van of u het archiefattribuut van het bestand wilt behouden of niet.
De volgende opdracht voert een recursieve kopie uit van bestanden met alleen het archiefattribuut. De bestemmingsbestanden behouden het archiefattribuut na de kopie vanwege de /A
-schakelaar.
In tegenstelling hiermee, om het archiefattribuut van het bronbestand te verwijderen na het kopiëren naar de bestemming, specificeert u in plaats daarvan de schakelaar /M
.
Behoud van eigenaar en ACL-informatie
Stel je voor dat je een back-up maakt van een hele profielmap. Elk bestand kan verschillende eigenaren of unieke machtigingen hebben. Als je die bestanden moet herstellen, wil je dat dezelfde eigenaren en machtigingen behouden blijven.
Op deze manier lijkt het hele proces naadloos te verlopen en behouden gebruikers nog steeds dezelfde toegang tot de bestanden als voorheen. Maar eerst moet je ervoor zorgen dat je die bestanden back-upt terwijl je de bestaande eigenaren en toegang behoudt.
Om bestanden te kopiëren en de eigenaar- en ACL-informatie te behouden, voeg je de /O
-parameter toe aan het xcopy
-commando, zoals hieronder wordt getoond.
Naast het behouden van de eigenaar- en ACL-informatie, kun je ook de auditinstellingen van de bestanden opnemen.Auditinstellingen kopiëren kan handig zijn als jouw organisatie groepsbeleidsobjecten (GPO) toepast om bestanden te controleren.
Om de auditinstellingen van bestanden op te nemen bij het kopiëren met Xcopy, gebruik je de /X
-schakelaar. De /X
-schakelaar impliceert ook de /O
-schakelaar, dus je hoeft beide schakelaars niet tegelijk te gebruiken.
Bestanden en Mappen Kopiëren Over het Netwerk
Niet alleen kan Xcopy bestanden kopiëren tussen locaties op dezelfde of verschillende schijven, maar het kan ook bestanden over het netwerk kopiëren. Helaas is het kopiëren van bestanden over het netwerk niet altijd betrouwbaar. Netwerkverbindingen kunnen last hebben van korte onderbrekingen en in sommige gevallen volledig verlies van verbinding.
Gelukkig kun je Xcopy uitvoeren in herstartbare modus. Dit betekent dat zelfs als de kopieeractie stopt vanwege een netwerkfout, de kopie kan worden hervat nadat de netwerkverbinding is hersteld. Om Xcopy in herstartbare modus uit te voeren, moet je de /Z
-schakelaar toevoegen aan het commando.
Bijvoorbeeld, het onderstaande commando voert een recursieve bestandskopie uit van de map C:\Workarea naar een netwerklocatie. De /Z
-parameter zorgt ervoor dat Xcopy in herstartbare modus wordt uitgevoerd.
Met de
/Z
-schakelaar toont Xcopy ook de voortgang van de bestandskopie in percentage.
Bestanden Kopiëren met Ongebufferde I/O
Gebufferde I/O komt overeen met hoe het besturingssysteem schijflees- en schrijfacties buffer in de bestandssysteemcache. Hoewel buffering het versnelt bij volgende lees- en schrijfacties naar hetzelfde bestand, gaat dit gepaard met kosten. Als gevolg hiervan is ongebufferde I/O (of een ruwe bestandskopie) de voorkeursmethode voor het kopiëren van grote bestanden.
Deze kopieermethode vermindert de overhead van het bestandssysteemcache en voorkomt dat het bestandssysteemcache gemakkelijk wordt geleegd met grote hoeveelheden bestandsgegevens.
Om grote bestanden te kopiëren met ongebufferde I/O, kunt u de /J
-schakelaar toevoegen aan het Xcopy-commando, zoals hieronder wordt getoond.
Bestanden kopiëren met verificatie
Zoals bij alle andere taken, kan het kopiëren van bestanden niet altijd 100% succesvol zijn. Sommige bestanden kunnen beschadigd raken tijdens de overdracht, zelfs als er geen zichtbare fouten zijn.
Met Xcopy kunt u de /V
-schakelaar gebruiken om te controleren of de bestemmings- en bronbestanden identiek zijn op basis van hun grootte na het kopiëren. Identieke bron- en bestemmingsbestanden geven aan dat de kopie geslaagd is en dat het bestand intact is.
Het onderstaande commando kopieert alle bestanden van C:\Workarea\XCopyDemo
naar C:\Workarea\Backup
en controleert elk bestand met behulp van de /V
-schakelaar. De /F
-schakelaar geeft het volledige pad van de bron- en bestemmingsbestanden weer.
Encryptiebestanden kopiëren
Xcopy ondersteunt ook het kopiëren van versleutelde bestanden naar bestemmingen die geen versleuteling ondersteunen. Met de /G
-schakelaar kopieert Xcopy versleutelde bronbestanden en maakt gedecodeerde bestemmingsbestanden.
Deze kopiemodus is handig, vooral bij het maken van back-ups van versleutelde bestanden naar netwerkshares of niet-Encrypting File System (EFS)-volumes.
Mapstructuren kopiëren
In sommige situaties kunnen back-upscripts of programma’s vereisen dat u de bestemming vooraf instelt voordat u de bestanden van de bron kopieert. Indien nodig kunt u Xcopy gebruiken om de structuur van de bronmap zonder de inhoud te repliceren.
Om dit te doen, voert u het Xcopy-commando uit met de /T
-schakelaar. Het gebruik van de /T
-schakelaar zorgt ervoor dat Xcopy alleen de directorystructuur naar de bestemming kopieert, maar lege mappen negeert.
U kunt ook de /E
-schakelaar aan het commando toevoegen om lege mappen op te nemen, zoals getoond in het voorbeeldcommando hieronder.
Veelvoorkomende Fouten
Als er iets mis kan gaan, zal het waarschijnlijk gebeuren. Hetzelfde geldt wanneer u bestanden kopieert, ongeacht het volume. Hieronder staan de veelvoorkomende fouten van Xcopy die u zou kunnen tegenkomen.
Ongeldig aantal parameters
Deze fout treedt meestal op wanneer het door u ingevoerde commando spaties bevat. Om deze fout te voorkomen, moet u bij het typen van een bron- of doelmap die spaties bevat, het pad tussen dubbele aanhalingstekens plaatsen.
Bijvoorbeeld, als het pad C:\Documents and Settings is, voert u het pad in als “C:\Documents and Settings”.
Kan geen cyclische kopie uitvoeren
Deze fout treedt op als de bronmap die u kopieert ook de doelmap bevat. In dat geval zou Xcopy in een lus terechtkomen, wat een fout veroorzaakt. Bij het gebruik van Xcopy moet de bestemming een volledig onafhankelijke map of schijf zijn als u alle mappen en submappen kopieert.
Parserfout
Deze fout treedt op wanneer je een onjuiste of ongeldige syntaxis hebt getypt in de opdracht. Bijvoorbeeld, je kunt deze fout tegenkomen wanneer je het pad tussen aanhalingstekens hebt gespecificeerd, maar de sluitende aanhalingstekens ontbreken.
Bijvoorbeeld, de onderstaande opdracht heeft een ontbrekend sluitend dubbele aanhalingsteken in het bestemmingspad.
Exitcodes
Xcopy geeft een exitcode terug voor een operatie, die je kunt gebruiken om te bepalen of de operatie succesvol was. Exitcodes zijn handig, vooral als je taak of script acties onderneemt op basis van de ontvangen exitcode.
De opdrachtshell slaat exitcodes op in de variabele %ErrorLevel%
. Je code kan dan de waarde van deze variabele onderzoeken om de uitkomst van de Xcopy-operatie te bepalen.
Hieronder staat een tabel met alle Xcopy exitcodes.
Exit Code | Purpose |
0 | This exit code means that there were no errors. |
1 | This exit code means that Xcopy did not find any files to copy. |
2 | This exit code means that the Xcopy was terminated by pressing CTRL+C. |
4 | This exit code means that an initialization error happened either because of insufficient memory or disk space or because you’ve entered invalid syntax. |
5 | This exit code means that there was a disk write error. |
Scripting met Xcopy
Naast interactief gebruik van Xcopy, kun je er beter van profiteren door het te gebruiken om taken te automatiseren met scripts. Hier zijn een paar voorbeelden die laten zien hoe je Xcopy in scripts kunt gebruiken.
Xcopy Batch Script om gegevens te kopiëren met foutafhandeling
Deze voorbeeld batch script kopieert alle bestanden recursief met foutafhandelingslogica. En op basis van de fout- of exitcode geeft het script een bericht terug met de reden voor de fout.
Om het batchbestand te maken, open een tekst- of code-editor naar keuze, kopieer de onderstaande code, plak deze in je editor en sla het bestand op als copycomplete.bat.
Vervolgens, om het script uit te voeren, roep je de naam ervan aan in de opdrachtprompt of PowerShell, gevolgd door de bron- en doelmap.

Xcopy Batch Script om Gegevens te Verplaatsen
Xcopy heeft geen ingebouwde functionaliteit om bestanden en mappen van de bron naar de bestemming te verplaatsen. Maar als een workaround kun je een script maken dat eerst de bestanden kopieert met Xcopy en vervolgens de bestanden van de bron verwijdert.
De onderstaande code zal de bestanden naar de bestemming kopiëren. En als het kopieerproces succesvol was, zal het script de bestanden op de bron verwijderen. Kopieer de onderstaande code en sla het op in een nieuw bestand genaamd movefiles.bat.
Vervolgens, om het movefiles.bat batchbestand uit te voeren, roep je de naam ervan op in de opdrachtprompt of PowerShell gevolgd door de bron- en bestemmingspaden, zoals je deed in het vorige voorbeeld.
Conclusie
Als je werk het kopiëren van bestanden in bulk omvat of het maken van back-ups van bestanden, is Xcopy een uitstekend hulpmiddel om je werk gemakkelijker te maken. Xcopy levert nauwkeurige en snelle resultaten voor het kopiëren van bestanden met veel opties om het gedrag aan te passen aan jouw eisen.