need some assitance with xcopy command

Posted on 2013-12-18
Last Modified: 2013-12-19
I want to create a  bat file that will copy files from one directory to another but I ran into a question I dont know the answer to. I need to move a single file from directory A to directory B everyday. A new file is created in directory A every day (the directory will continually build 1 file a day) but when the file is moved to directory B it is moved by an automated process to another directory. So on day two we now have 2 files in directory A and zero files in directory B but I only want to copy the new file from directory A not both files because the first file came across on day one and was processed. How can I set it up so it will not copy the same file twice even though the file doesnt exist in directory B any longer?
I would like to use a simple xcopy bat file for this if possible and set it up as a scheduled task..
Question by:bankadmin
  • 3
  • 2
  • 2
LVL 28

Accepted Solution

serialband earned 250 total points
ID: 39728108
Assuming you have no other files created in the same day in folder A, you can use robocopy.exe to do that with the /maxage option set to 1 day

robocopy "c:\dir\dir A" "c:\dir\dir B" /maxage:1

robocopy.exe comes included in Windows 7 and newer.  Prior to Win 2008, you had to download and install, or extract, the Windows Resource Kit to get it.
LVL 43

Assisted Solution

by:Steve Knight
Steve Knight earned 250 total points
ID: 39728224
Otherwise you can get the newest file to copy using a for loop against dir listing of the files in date order, the first file is then the newest, that is copied and the process stopped.

As it stands that blindly copies the latest file though, unlike robocopy which will specify the age.

You can also just use xcopy /d with todays date

xcopy /d:mm-dd-yy  will copy the files after today.  If your date format is mm-dd-yyyy already you can just use xcopy /d:%date% but otherwise best to get the date in a reliable way, e.g. my article here-->

@echo off
Set Dir=c:\somedir
Set FType=*.xxx
Set Dest=D:\somedir
for /f "tokens=*" %%a in ('dir /b /o-d /a-d %Dir%\%FType%') do (
  echo copying %%~a which is from %%~ta
  copy /y "%%~a" "%Dest%"
  goto next
echo Completed


Author Comment

ID: 39729385
serial: It is a 2008 server box that I want to run it from. When I switch the .bat from xcopy to robocopy.exe I get a error on the first param. this is an example of it.
robocopy.exe "F:\dir\dir 1\dir 2\*.*"
Do you know why this is getting errors?
There are spaces in the directory names so I quoted the path
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.


Author Comment

ID: 39729503
THanks for the help I will split the points. We had some confusion with what was happening and as it turns out the files can be removed from from director A so a simple move command will work for us.. Again thanks for the help
LVL 43

Expert Comment

by:Steve Knight
ID: 39729505
It sounds like you are including the files too, with robocopy you specify directories, not file specs, and then the file spec afterwards:

robocopy "C:\dir1 \sub dir" "c:\dest dir\sub dir" *.*

If you check the error level when copying note that Upto 7 is "good", 8 onwards generally not.  There is list of the error codes around if wanted - the codes below 8 mean such things as "file copied", "extra file in destination" etc.


Author Comment

ID: 39729508
I've requested that this question be closed as follows:

Accepted answer: 250 points for serialband's comment #a39728108
Assisted answer: 250 points for dragon-it's comment #a39728224
Assisted answer: 0 points for bankadmin's comment #a39729503

for the following reason:

THe original question became a none issue
LVL 28

Expert Comment

ID: 39729677
dragon-it beat me to it.  Glad you solved your problem.

As dragon-it mentioned, robocopy.exe only takes directories as it parameters.  It's mainly used as a "poor man's" backup tool, since it can mirror entire directories and keep time stamps, ownership and permissions settings.  xcopy doesn't.  I very rarely use xcopy anymore.

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit If you want to manage em…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question