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 know that the copy command has an option to automatically replace a file if it already exists, but I want to know if it is a way to copy the files only if they not already exist (/Y). I do not know the actual file names in the batch code, as I copy from the source using wildcards in the copy command:

copy *.zip c:\destination

The reason I want this instead of automatic overwrite is that the files are large, and to skip existing would save a lot of execution time. It is done over a network share, so copying this amount of data can take a while...

Additional info:
This is a batch job that runs a backup thing to copy zip files from my computer to a shared server, and in case the batch job didn't finish for some reason (only some of the zip files copied), I need to run the batch again, but only for those zip files that wasn't copied before.

share|improve this question
add comment

4 Answers

echo n|xcopy "[source]" "[destinaton]" 

Check out the various arguments for xcopy to tailor for your particular use

share|improve this answer
    
I found no option to skip if copied files already exist on destination. –  awe Jan 17 '11 at 11:34
1  
I actually used robocopy instead, as the help for xcopy stated that xcopy is depreciated, use robocopy instead. The option I use to ` copy only files with the Archive attribute and reset it.` exist on both (/M). –  awe Jan 17 '11 at 11:58
    
How does setting setting Archive attribute and reseting it would help ? –  nepsdotin Jan 17 '11 at 12:04
1  
I resorted to a hardware solution to this issue i.imgur.com/c1kVF7r.jpg –  deed02392 Jul 31 '13 at 16:26
    
@deed02392: Although I like your solution, in my case the batch job will be started as a scheduled task, and it would be tricky to get the physical setup to happen automatically at a scheduled time. It would have to be a robot doing it perhaps. –  awe Oct 2 '13 at 7:55
show 1 more comment

Robocopy - auto skip files already in the destination

ROBOCOPY \some\folder c:\destination *.zip /S

share|improve this answer
3  
The Robocopy documentation says that /s is for copying subdirectories, not auto-skip... –  bdukes Aug 25 '12 at 1:45
    
What @bdukes said is true: "/S :: copy Subdirectories, but not empty ones" and "/E :: copy subdirectories, including Empty ones" –  Xonatron Sep 18 '13 at 15:44
add comment

This command solved this for me:

XCOPY *.ZIP /D C:\DESTINATION
share|improve this answer
1  
Can you explain it? It's using /D for date: "/D:m-d-y Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time." But this does not work if the sources hasn't changed. –  Xonatron Sep 18 '13 at 15:45
add comment
up vote 0 down vote accepted

The problem is solved by using robocopy and use the /M option to copy only files with the archive flag set, and then clear it.

robocopy /M *.zip c:\destination

In this article on wikipedia you see that this is actually very similar to what the archive flag is intended for in the first place.

share|improve this answer
add comment

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.