Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

This command solved this for me:

share|improve this answer
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
I would accept this answer. if the source file has not changed, it won't copy it. serves your purpose after all, if the file has changed, you would want to copy the newer version wouldn't you? @awe – frostymarvelous Mar 17 '15 at 20:28
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
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
I resorted to a hardware solution to this issue – 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

Robocopy - auto skip files already in the destination

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

share|improve this answer
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
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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .