ERRCOPY.exe is copyright 1995 by Malcolm Dew-Jones.

It is DonationWare - I appreciate if you send me a usage fee, but
(unlike shareware) I don't require that you do so.  I will provide
some level of support via email to registered users.  I will gladly
exchange opinions with anyone, registered or not, and provide
information on other utilities I have written and happily consider your
ideas for improvements.

Bug reports are also welcome.

You can contact me via compuserve email at 73312,2317, or via internet
email at ah829@freenet.carleton.ca.  I can't give an address cause I'm
moving soon, drop me a line and I'll get back to you.

Errcopy was written to try to read files from a misbehaving harddisk.
It successfully recovered several thousand files (about half the disk).
I have since used it to recover other user's files from their old floppy
disks at work.  It doesn't always help, but then again sometimes it does
(and the user's I support are sure happy when they do get their file(s)
back).

It copies a file, just like the dos COPY command would, except that if a
DOS critical error occurs during the read then the read operation is
retried.  The utility will retry as much as 2000 times per read
operation, though in practise if the data cann't be read after twenty or
thirty retries then retrying more doesn't help.

The utility has two usages, indicated by the number of parameters passed
on the command line (actually three - if no parameters or the /? option
is specified then instructions are displayed).

usage
-----
    Usage: errcopy [/options] filename destination-directory

This usage copies the indicated file (filename) into a new location
(destination-directory)  You cannot specify a newname for the copied
file, it will be copied with the same name as the original.  You are
prompted before the copy is actually performed, unless the /YES option
is specified.

usage
-----
    Usage: errcopy [/options] filelist-file oldroot newroot

    example: ERRCOPY /RETRY=100 FILES.LST D:\DATA C:\RECOVERED\DATA
    
    and FILES.LST could contain text something like the following

        DATA.DAT
        DATA.IDX
        DATA.DEF
        REPORTS\JAN.RPT
        REPORTS\FEB.RPT
        BACKUP\JAN.DAT
        BACKUP\JAN.IDX
        BACKUP\JAN.DEF

    in this example, the copies would include 
    D:\DATA\DATA.DAT  copied to C:\RECOVERED\DATA\DATA.DAT
    D:\DATA\REPORTS\JAN.RPT copied to C:\RECOVERED\DATA\REPORTS\JAN.RPT

This usage reads a list of filenames from the indicated text file
(filelist-file) and tries to copy each one.  The name of each file to be
read is formed by combining the oldroot with the name read from the
list file.  The name of the file to be created is similarly formed from
the listed name and the newroot parameter.

In this usage you must first create a list of the files to be copied.
The names in the list must use relative paths as the name is combined
with both the oldroot and the newroot parameters to create the names
involved in each individual copy.  The DOS DIR command can be used
(example DIR/S/B >LIST.TXT) but this list must then be edited so that
the filenames do not contain the root specification.  For example if an
entry in LIST.TXT was C:\JOHN\DATA\FEB.TXT  then this entry would need
to be edited to look like JOHN\DATA\FEB.TXT .  In this case the oldroot
parameter would be C:\ .  Other techniques can be used to create the
filelist-file, including the TR command from my XdOS suite.

