Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 413
  • Last Modified:

need some assitance with xcopy command

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..
0
bankadmin
Asked:
bankadmin
  • 3
  • 2
  • 2
2 Solutions
 
serialbandCommented:
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.
0
 
Steve KnightIT ConsultancyCommented:
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--> http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_1153-Using-dates-in-batch-files-scripts.html

@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
)
:next
echo Completed

Steve
0
 
bankadminAuthor Commented:
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
0
Fill in the form and get your FREE NFR key NOW!

Veeam is happy to provide a FREE NFR server license to certified engineers, trainers, and bloggers.  It allows for the non‑production use of Veeam Agent for Microsoft Windows. This license is valid for five workstations and two servers.

 
bankadminAuthor Commented:
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
0
 
Steve KnightIT ConsultancyCommented:
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.

Steve
0
 
bankadminAuthor Commented:
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
0
 
serialbandCommented:
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.
0

Featured Post

Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now