Sign in with
Sign up | Sign in
Your question

Batch Help - Copying

Last response: in Windows XP
January 29, 2010 8:33:32 AM


Hopefully you can all help.

I have been using the xcopy command for a while now to transfer over files using the appropriate switches. I now feel with my data storage growing that its time to up the anti a little and make this a more complete batch file.

What i basically do currently,

Copy certain folders across multiple drives across to a external HD over night using scheduled tasks.

What i want to do now however is every time i insert my external hd (currently set using computer management to Z:)  automatically call a batch file to begin the copy process. Due to my collection growing i would like to only copy updated on new file in their specified directories rather than everything with an overwrite switch.

Hopefully someone will have the answer/solution to this.

Thanking in advanced,



More about : batch copying

January 29, 2010 8:49:14 AM

You might like to have a look at the "robocopy" command (it's part of Vista and 7, but I think you need to get in from the Windows Resource Kit for XP). This is a far more intelligent and versatile copy tool than xcopy.
January 29, 2010 8:51:30 AM

You can create an autorun file to call your batch file and instead of using xcopy use robocopy. here are the list of switches for robocopy:

Robocopy Options and Switches

Copy options :

/S :: copy Subdirectories, but not empty ones.
/E :: copy subdirectories, including Empty ones.
/LEV:n :: only copy the top n LEVels of the source directory tree.

/Z :: copy files in restartable mode.
/B :: copy files in Backup mode.
/ZB :: use restartable mode; if access denied use Backup mode.
/EFSRAW :: copy all encrypted files in EFS RAW mode.

/COPY:copyflag :: what to COPY for files (default is /COPY:D AT).
(copyflags : D=Data, A=Attributes, T=Timestamps).
(S=Security=NTFS ACLs, O=Owner info, U=aUditing info).

/DCOPY:T :: COPY Directory Timestamps.

/SEC :: copy files with SECurity (equivalent to /COPY:D ATS).
/COPYALL :: COPY ALL file info (equivalent to /COPY:D ATSOU).
/NOCOPY :: COPY NO file info (useful with /PURGE).

/SECFIX :: FIX file SECurity on all files, even skipped files.
/TIMFIX :: FIX file TIMes on all files, even skipped files.

/PURGE :: delete dest files/dirs that no longer exist in source.
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).

/MOV :: MOVe files (delete from source after copying).
/MOVE :: MOVE files AND dirs (delete from source after copying).

/A+:[RASHCNET] :: add the given Attributes to copied files.
/A-:[RASHCNET] :: remove the given Attributes from copied files.

/CREATE :: CREATE directory tree and zero-length files only.
/FAT :: create destination files using 8.3 FAT file names only.
/256 :: turn off very long path (> 256 characters) support.

/MON:n :: MONitor source; run again when more than n changes seen.
/MOT:m :: MOnitor source; run again in m minutes Time, if changed.

/RH:hhmm-hhmm :: Run Hours – times when new copies may be started.
/PF :: check run hours on a Per File (not per pass) basis.

/IPG:n :: Inter-Packet Gap (ms), to free bandwidth on slow lines.

File Selection Options :

/A :: copy only files with the Archive attribute set.
/M :: copy only files with the Archive attribute and reset it.
/IA:[RASHCNETO] :: Include only files with any of the given Attributes set.
/XA:[RASHCNETO] :: eXclude files with any of the given Attributes set.

/XF file [file]… :: eXclude Files matching given names/paths/wildcards.
/XD dirs [dirs]… :: eXclude Directories matching given names/paths.

/XC :: eXclude Changed files.
/XN :: eXclude Newer files.
/XO :: eXclude Older files.
/XX :: eXclude eXtra files and directories.
/XL :: eXclude Lonely files and directories.
/IS :: Include Same files.
/IT :: Include Tweaked files.

/MAX:n :: MAXimum file size – exclude files bigger than n bytes.
/MIN:n :: MINimum file size – exclude files smaller than n bytes.

/MAXAGE:n :: MAXimum file AGE – exclude files older than n days/date.
/MINAGE:n :: MINimum file AGE – exclude files newer than n days/date.
/MAXLAD:n :: MAXimum Last Access Date – exclude files unused since n.
/MINLAD:n :: MINimum Last Access Date – exclude files used since n.
(If n < 1900 then n = n days, else n = YYYYMMDD date).

/XJ :: eXclude Junction points. (normally included by default).

/FFT :: assume FAT File Times (2-second granularity).
/DST :: compensate for one-hour DST time differences.

/XJD :: eXclude Junction points for Directories.
/XJF :: eXclude Junction points for Files.

Retry Options :

/R:n :: number of Retries on failed copies: default 1 million.
/W:n :: Wait time between retries: default is 30 seconds.

/REG :: Save /R:n and /W:n in the Registry as default settings.

/TBD :: wait for sharenames To Be Defined (retry error 67).

Logging Options :

/L :: List only – don’t copy, timestamp or delete any files.
/X :: report all eXtra files, not just those selected.
/V :: produce Verbose output, showing skipped files.
/TS :: include source file Time Stamps in the output.
/FP :: include Full Pathname of files in the output.
/BYTES :: Print sizes as bytes.

/NS :: No Size – don’t log file sizes.
/NC :: No Class – don’t log file classes.
/NFL :: No File List – don’t log file names.
/NDL :: No Directory List – don’t log directory names.

/NP :: No Progress – don’t display % copied.
/ETA :: show Estimated Time of Arrival of copied files.

/LOG:file :: output status to LOG file (overwrite existing log).
/LOG+:file :: output status to LOG file (append to existing log).

/UNILOG:file :: output status to LOG file as UNICODE (overwrite existing log).
/UNILOG+:file :: output status to LOG file as UNICODE (append to existing log).

/TEE :: output to console window, as well as the log file.

/NJH :: No Job Header.
/NJS :: No Job Summary.

/UNICODE :: output status as UNICODE.

Job Options :

/JOB:jobname :: take parameters from the named JOB file.
/SAVE:jobname :: SAVE parameters to the named job file
/QUIT :: QUIT after processing command line (to view parameters).

/NOSD :: NO Source Directory is specified.
/NODD :: NO Destination Directory is specified.
/IF :: Include the following Files.

I have higlighted the one you need to use.
Related resources
January 30, 2010 9:44:08 PM

if you want to use Xcopy then use the Autorun file on the root of the external drive as suggested by Lembi2001 and then to only copy new/modified files do the following

In the souce dir use the attrib command to set the Archive attribute to all files "Attrib +a *.* /s"

add the /m switch to your current xcopy command "xcopy c:\SOURCE-DIR\*.* X:\DEST-DIR\*.* /s/m

The first time you run the command the whole folder will be backed up. from that point on only new/modified files will be copied.
February 3, 2010 4:31:20 PM


Sorry its taken so long to get back to you its been one busy week!

Thanks for the kind replys, the robocopy idea seems the most sensible as i am currently on windows 7.

For some reason i cannot seem to get this command to work in any way, shape or form.

I have tried the following line,

robocopy I:\data K:\robo

Both of the above directory's exist. The one labelled I:\data contains files and the 'robo' directory does not.

All i want to do is copy from one to the other? Even with switches added before and after the directory's i still cannot seem to copy.

What am i doing wrong?

Thanks again,

February 3, 2010 4:41:36 PM

What output do you get from that command? (I've just tried it on my PC and it works as expected.)

I used to use this as a way of replicating huge directories from one server to another and it was ideal for that purpose.
February 4, 2010 5:10:46 AM

C:\Users\Administrator>robocopy I:\data K:\robo

ROBOCOPY :: Robust File Copy for Windows


Started : Thu Feb 04 07:09:53 2010

Source : I:\data\
Dest : K:\robo\

Files : *.*

Options : *.* /COPY:D AT /R:1000000 /W:30


0 I:\data\


Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 0 1 0 0 0
Files : 0 0 0 0 0 0
Bytes : 0 0 0 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00

Ended : Thu Feb 04 07:09:53 2010

Is there a log file i can look at to see why it has been skipped?
February 4, 2010 6:05:21 AM

I suspect that you only have directories immediately under I:\data. Use the /S switch to copy the subdirectories also (or /E to include empty ones). You might also look at the /R switch to handle open files.

If that fails, try the /V, /X and /L to get more information.