XCOPY command : Using the /EXCLUDE flag
Posted by Jimmy Selix in Batch file programming
This recipe will briefly explain how to use the /EXCLUDE flag with XCOPY. This can be very handy if you need to backup a full directory but do not need or want specific file types or folder or file names.
XCOPY is a command that is present in XP’s command prompt.
XCOPY allows one to copy both files and directories in one command vs copying a folder or files in a folder one at a time using the COPY command. COPY does not allow you to copy subdirectories w/the *.*
Here is an example of when would use XCOPY vs COPY:
I have a folder on my C: drive called DATA
and under this folder i have a ton of text files (.txt) and also 3 folders called 1 2 and 3 which also have .txt files in them.
However, in the folders there are files with the name SECRET on them that i do not want copied.
I want to then copy this data w/the folder structure intact to a folder called BKUP on my C: drive.
Here is how we would use XCOPY and the /EXCLUDE tag to do this:
1. either open command prompt up or create new text file (if you plan to make .bat file). we will do a new text file and in turn make it into a batch file. after we create the new text file, rename it to test.bat for now.
2. right click the test.bat file and choose to Edit or Open With > Notepad.
3. we will add this command (i will explain each flag used)
XCOPY C:\DATA\*.* C:\BKUP /S /I /Y /EXCLUDE:c:\excludelist.txt
the /S flag = copies all directories and subdirectories except empty ones (use the /E instead if you want empty folders also copied)
the /I flag = If the destination does not exist and we are copying more than one file, it will assume the destination is a folder
the /Y flag = Suppresses all prompts to overwrite destination file if it already exists
the /EXCLUDE flag = this will point to a file that has the excluded file types or folder or file names. in my example, i created a text file called: excludelist.txt in the root of my C: drive.
in that excludelist.txt, i then added the word SECRET on the first line. If you have more than one excluded item; be sure to put each on a new line.
So once i run this batch file, it will look at the excludelist.txt file and then exclude any thing that contains the terms i put in the file from being copied (so none of my files w/SECRET in the name will be copied).
The main thing to remember when using the /EXCLUDE flag is that you have to put the location of the excluded file list after the flag; not the actual excluded items/terms. That initially was the most confusing part. You can create multiple excluded file lists; you would need to use the + list (ie XCOPY c:\* v:\ /EXCLUDE:c:\excluded1.txt+c:\excluded2.txt )
About Jimmy Selix
View more articles by Jimmy Selix
The Conversation
Follow the reactions below and share your own thoughts.



November 24, 2008 at 7:21 pm, Mustafa said:
very nice, I didn’t try it yet, but I’m sure in I will in future . .
December 31, 2008 at 1:41 pm, 13eastie said:
Okay, but how do you go about using a an exclude file whose absolute path contains spaces e.g. one that is located in the “My Documents” tree?
January 08, 2009 at 3:14 pm, Joe Webb said:
Just guessing here but if you can’t quote the file path, i.e., “My Documents”, then you should at least be able to use the 8dot3 equivalent. (MYDOCU~1).
March 22, 2009 at 8:59 pm, DizzyGoldfish said:
Too bad I tried excluding each file extension within the command before reading your post
Thanks for the help!
June 10, 2009 at 10:09 am, Steve said:
You need to convert the path to short (i.e. DOS 8.3) format. then it will work OK.
e.g. “My Documents” becomes MYDOCU~1
June 03, 2009 at 2:05 pm, JohnG said:
Any clue how to exclude a folder from being copied? Say for instance I have folder “X” on my desktop, but don’t want it or its contents copied when I run my batch backup that copies everything else on my desktop. Can’t seem to find anything regarding this.
January 21, 2011 at 6:19 am, Archarios said:
xcopy source dest /exclude:list.txt
contents of ‘list.txt’:
X –for an exact directory match
X –if directory begins with ‘X’
X –if ends with ‘X’
X –for anything (file/directory) containing ‘X’
I’m still unsure as to wildcards tho
June 18, 2009 at 9:11 am, kledi said:
Thank a lot
Its very clear
February 19, 2010 at 10:39 pm, Named said:
I finally know how to use /exclude, thanks a lot!
April 03, 2010 at 12:10 am, fantomaster said:
Never having had to use /Exclude, I found the documentation at MS and elsewhere pretty confusing because no mention was made explicitly of having to define the list in a separate file. This article was very helpful in setting it right – thanks a lot!
November 21, 2010 at 8:44 pm, Duhgorski said:
best explaint on the web
February 22, 2011 at 4:15 am, upthereinthesky said:
Wow. Thank you very much. This page is the most informative I have found on the web! I was lost without your help. Thanks again!
March 08, 2011 at 4:48 pm, Auldy66 said:
good tip, cheers bruv
January 10, 2012 at 3:55 am, Yamin Rumon said:
Thank you. Its working…………..