+4  A: 

Take a look at rsync tool - it was designed to minimize traffic during files synchronization.

Also, probably "cp" with "-u" argument will be useful:

-u, --update

copy only when the SOURCE file is newer than the destination file or when the destination file is missing
Kel
I'd rather not use other tools. I've used Syncback and rsync in the past and they're great, but I want to know if there's a way to do it with just a regular batch script.
limitedmage
@limitedmage: rsync is no more of an "other tool" than robocopy is.
Dennis Williamson
But Robocopy is included with Windows, rsync isn't. I don't have to install anything extra to do the backups.
limitedmage
A: 

For windows batch scripting xcopy (native to windows) or robocopy (a free download in windows) both work extremely well.

An example xcopy script (in a .bat file):

@echo off
:: /L = list only.
:: /v=Verify, /y=No prompting /s=subdirs /z=Network mode (supports bad)
:: /i=Tells xcopy dest is folder /f=Display names /d=Copy only changed

echo Backing up projects...
xcopy e:\projects h:\projects /V /Y /S /Z /I /F /D

It will even support orphaned files (if you delete something from your source you no longer need a copy in the backup). Xcopy is typically fine for your needs until you deal with sync between NTFS and Fat32 file systems - the later only has a 2 second resolution and problems with daily savings time so you occasionally run into issues: (a) on time change day you might not get a backup of a changed file - depends on change-regularity of course or you might get a backup of all files even though none have changed (b) because of time resolution some files may backup even though they haven't changed.

Rudu
Thanks!! Robocopy did the trick, I usedrobocopy <source> <dest> /mir
limitedmage