Programming Challenge?

Soldato
Joined
18 Oct 2002
Posts
3,027
Location
Pentonville Prison
Right, this might be a PoP for someone here but it has my brain confused. I'm moving all my data from my backup DVDs to my new RAID array and its a PITA as I have to do this one at a time.

Requirement - automated copying of files from DVD drives to HDD under W7
Hardware- two DVD drives (E: and F:)
Storage: one 2Tb drive D:

I can do this for a single drive by using autoplay to call a rip.bat script which copies files using DOS copy command to the location and then ejects the disk. I then swap the DVD and push the next disk in and it does its stuff until it ejects again. Rip.bat is basically

xcopy e:\*.* d:\crap\
nircmd eject e:

What I want is to be able to get both DVD drives working. So the batch file needs to cope with that. You might assume I could replace "e:" in the script with a variable. I could detect whether a given drive has a disk in it but that doesn't help as that drive might be already copying so I'd end up trying to access that drive twice and not get the other drive working.

Any ideas? Solutions even better!!
 
Dumping two discs to the same drive is going to hammer your performance, possibly to the point where doing it sequentially is faster - have you checked this manually to see if the performance hit is acceptable?
 
1x DVD is 1.321Mb/s and most 16x drives won't read much past 12x or 16Mb/s

I think a fast SATA drive (or array) could cope with 2x16Mb. Even if they were sequential but loaded at one time that might be better as it means I can pop out of room while it does two disks
 
We have a winner.. A kind chap on another UK forum knocked up a VB program that does just what is needed. And runs until I tell it to stop. I'm sorted but thanks for the input guys.
 
Anyone can write a winforms app lol, that's cheating. This is where I got to...

Code:
:: you put a disk in, this autoexec'd
:: but we don't know which drive it's in
:: and we need to know if a drive is already in use
:: so when we start using a drive, we will create a text file
:: then remove that text file when complete
if not exist d:\e.txt goto PROCESSE
if not exist d:\f.txt goto PROCESSF

:PROCESSE
echo. 2>e.txt
xcopy e:\*.* d:\crap\
nircmd eject e:
del d:\e.txt
GOTO EOF

:PROCESSF
xcopy f:\*.* d:\crap\
nircmd eject f:
del d:\f.txt
GOTO EOF
 
Following the resounding success of my last request (and very useful solution I was given) I've been wondering about some simple batch jobs to automate some more processes. I'm building a server for 24/7 use and it makes sense for that to do as many processes automatically to minimize the time I spend at a machine doing routine rubbish. So a new challenge for the DOS batch file gurus I suspect!!

1) A batch file ideally, as it is easily amended. From a given start directory, delete any file that isn't suffixed with .ISO and then zip each remaining ISO file. Then delete the source file leaving the Zip(s) only

2) As backing up files is important I am thinking to backup some stuff to usenet (encrypted!). So, taking a single file, SAMPLE.EXT, RAR it (with the file split at a given size say 15Mb splits), then PAR to create a 10% PAR set. Probably need to use the commandline RAR and PAR tools. As I will have lots of larger files to backup it's not userfriendly to import them into usenet software or do it all manually. Being able to run a script or drop 20 files on a script file to work would be much much easier. The end result of all this should be SAMPLE.Rar1-20 plus SAMPLE.Par1-5

Any help, either in form of complete solutions or pointers or discussion (which can help me solve it myself) will help!
 
Back
Top Bottom