How to use xcopy to only copy files if they are newer?

User following command to copy all new and modified file from source to destination

xcopy c:\source d:\destination /D /I /E /Y

/D to check any modified file are there
/I If the destination does not exist and copying more than one file, assumes that destination must be a directory.
/E To copy directory and sub directories
/Y to suppress any over write prompt.


Not tested, but I use a similar command script for these sorts of tasks.

set DIR_DEST=D:\Project\bin
pushd "$(TargetDir)"

::
:: Move Files matching pattern and delete them
::
for %%g in (*.dll) do (xcopy "%%g" "%DIR_DEST%" /D /Y & del "%%g")

::
:: Move Files matching pattern
::
:: for %%g in (*.dll) do (xcopy "%%g" "%DIR_DEST%" /D /Y )

popd

From typing "help xcopy" at the command line:

/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.

So you already are using xcopy to only replace old files with new ones. If that's not happening, you may have to swap the positions of the /i and /d switches.