Solved

need some assitance with xcopy command

Posted on 2013-12-18
7
384 Views
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..
0
Comment
Question by:bankadmin
  • 3
  • 2
  • 2
7 Comments
 
LVL 27

Accepted Solution

by:
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.
0
 
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--> 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
 

Author Comment

by:bankadmin
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
0
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 

Author Comment

by:bankadmin
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
0
 
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.

Steve
0
 

Author Comment

by:bankadmin
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
0
 
LVL 27

Expert Comment

by:serialband
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.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

YESTERDAY YESTERDAY.BAT is inspired by a previous article I wrote entitled: TOMORROW.BAT (http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_4196-Advanced-Batch-File-Programming-TOMORROW-BAT.html). The crux of this batch f…
I have published numerous articles here at Experts Exchange that present programs/scripts written in a language called AutoHotkey. Each of those articles has a brief paragraph describing where to download the product and how to install it. I have al…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

708 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now