Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm trying to use XCOPY to copy a directory that looks like this:

-MainFolder
 -ManyFoldersIWantToCopy
 -ManyFoldersIWantToCopy
 -...
 -Source Code

I want to use the /EXCLUDE option to copy every folder except Source Code.

I tried using the following, but I did not have any luck:

xcopy "Source" "Destination" /EXCLUDE:"\Source Code\" /E /C /R /I /K /Y

The error message I receive says: Can't read file: "\Source Code\".

I've tried removing the double-quotes all together, using single-quotes instead, with/without the \'s, but I get the same error message.

Any ideas?

share|improve this question

3 Answers 3

up vote 5 down vote accepted
C:\>xcopy /?
...
  /EXCLUDE:file1[+file2][+file3]...
           Specifies a list of files containing strings.  Each string
           should be in a separate line in the files.  When any of the
           strings match any part of the absolute path of the file to be
           copied, that file will be excluded from being copied.  For
           example, specifying a string like \obj\ or .obj will exclude
           all files underneath the directory obj or all files with the
           .obj extension respectively.

You need to put "Source Code" in a file and specify that file on the command line.

share|improve this answer
    
Is it necessary to include quotes around Source Code in the exclusion file, or can it handle spaces ok? –  dunxd Sep 22 '12 at 2:10

I used the xcopy EXCLUDE flag successfully without putting the lines in quote marks, even though many of the paths contained spaces. So for me (Win7 Home Premium SP1 repair install DOS prompt) the carriage returns were adequate delimitation. I just used a plain text file in the format:

file 1.txt
path 2\file 2.text
and so on\and so forth.txt

then EXCLUDE:F:\filename.txt as the xcopy flag. I didn't include the drive letter in the lines in the exclude file (as confirmed in the /? page it only needs a partial match). It skipped the files named very quickly. I combined this with /D:09-21-2014 to only get recent files and a host of other tags successfully.

To confirm, I did not use the old DOS short names, contrary to Ken Richard's finding above.

share|improve this answer

I believe this error needs some further explanation. I found this blog post on the issue very informative.

Basically, you need to use the old 8.3 (DOS short filenames in the exclude path). You can determine the short names by running the command "DIR /X" from a command prompt after changing directory to the parent of the folder (you want the 8.3 name for). It's a shame MS hasn't updated this command to support long file names.

I would suggest using robocopy instead if you don't want to use short path/file names. Of course I guess you could put the long names in an external "excluded_files.txt". This does seem to be supported by XCopy.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.