The listing below is for a QuickBasic file that can be compiled as a
stand alone .exe. I run it from a desktop icon.
W98 users might use it in the scheduler. It is used every two or three
days or so, depending on traffic.
It is written for QuickBasic 4.5. No claim is made for elegant programming.
It should run out of QBasic without alteration.
QBasic is available on the W95b CD under \others\oldmsdos.
Feel free to copy the text below and modify as you see fit. The usual disclaimers apply.
The objective is to regularly store a backup of current DataCad related
work on CDR but, for me, nothing else. It can be
identified by date. Files are not over written. There is no point in
over-writing on CDR. The CDR is formatted for packet
writing, typically Adaptec's Direct CD, sometimes known as UDF (Universal
Disk Format).By this method the CDR looks
like just another hard drive. Note that the files are
not set read only by Direct CD.
NOTE THAT THIS PROGRAMME DOES NOT WORK WITH NERO InCD.
Nero InCD does not work with CDRs
Nero cannot be called from an EXE programme
Adaptec/Roxio Direct CD is fine. Nero is not and it may be that other
packet writing software will not work either.
You may find that your burning software can be called from an .EXE
programme but will only write to CDR/W.
This is not a good idea. CDR/W is not as reliable as CDR and multiple
burns can cause trouble.
The programme below makes a recursive zip of all files under d:\datacad\dwg
selected by attribute "a". This is including
subdirectories, of course. I don't have anything directly under \dwg,
all files being under folders identified by client.
Any file that is worked on, newly created or old, is automatically assigned the"a" attribute by DOS.
The "a" attribute is switched off as part of the zip procedure. It is done by the -i switch.
The backup zip file is named today's date.zip and goes to temporary
parking on F: so that you still have the file even if you
forgot to put the CD in the burner. It also avoids any possibility
of strife caused by zipping direct to CD.
The zip file is then moved to the CDR in L:
This programme is activated by a desktop icon. Put the CD in, ensure
that it is ready, click the icon, and you're off to the races.
The actual recording time takes just a few seconds, depending on your
workload.
The first time you do this it is likely to zip every .DC5 you have,
but the subsequent files will be quite small as PKZIP will
compress DC5s by at least 75% and only newly created or old ones worked
on since the last backup are included.
The first part of the programme simply creates a file name after the date. American users may prefer to change the last line to
OUT$ = MON$ +DAY$ +YEAR$
The second part consists of DOS commands to zip the files and send to CD.
NOTE
1. There are no filters. .BAKs and anything else under \DWG go along
for the ride. Do not panic if you see .BMPs
zipping down to nothing!
2. No file under \DWG is deleted.
3. The various drives are identified in red and may be changed as needed.
4. The system presupposes you have PKZIP in a directory listed in thePATH
statement in AUTOEXEC.BAT
If you don't have this, you are obliged to writeout
the full address for PKZIP. You also need PKZIP!!
5. This is not archive, this is backup. I would not recommend this for
archive. It is simpler to just drag your DataCad
folders to CDR, after cleaning out the junk. I don't
bother to zip them.
6. To recover the files, you need to recursively extract. The relevant
directories will be created automatically if
they don't already exist. The vital switch here
is -d and a typical command would be pkunzip
-d L:\18dec00 J:
where the file ( 18dec00.zip) is extracted straight off
the CD onto J:\. This last in preference to using your normal DCad
drive to avoid risk of confusion. If you do not have an
alternative drive a RamDrive, or a even a spare directory, will do.
7. You can look into the zip files without extracting if needs be. A
typical command would be pkzip -vbnm L:\22mar01
The zips rarely have more than half a dozen files
so the n, sort by name order, and m, pause after 25 lines, switches
are
barely necessary but good habit. I have never had
to go back more than about three zips. Indeed I have hardly ever
needed to access anything. These backups are only
for emergencies. You can take a peek using WinZip too.
8. The above searches are zipfile by zipfile. PKZFind will search an
entire CD for a specific filename and give you a list.
A typical command would be pkzfind
L:
floor89.dc5 Note the space after L:
PKZFind is available from PKWare.
9. If you prefer to use the ISO 9660 or Joliet recording system
i.e. Easy CD Creator or equivalent, you may omit the
second last line below (cmd$="move...) and move
the .zip to CD manually.
10. Direct CD is a satisfactory and reliable burning system but does
not work as fast or as transparently as working with
a hard disk. The only precautions about using
it are indeed the bleeding obvious: let it do its job.
1. Don't run the back up programme until the CD is ready to receive it.
2. Don't ry to remove the CD until it is finished ( the light has gone
out)
A nearly identical programme is used to back up ini files, fax directory,
Netscape bookmarks etc. - the little things
one forgets - including D:\datacad\default!
The file for running under BASIC or compiling to stand alone as bu-dc5.exe
'one button backup for DC5s
a$ = DATE$
'get date
MON$ = LEFT$(a$, 2): M = VAL(MON$)
DAY$ = MID$(a$, 4, 2): D = VAL(DAY$)
YEAR$ = RIGHT$(a$, 2): Y = VAL(YEAR$)
'year val
IF M = 1 THEN MON$ = "JAN"
IF M = 2 THEN MON$ = "FEB"
IF M = 3 THEN MON$ = "MAR"
IF M = 4 THEN MON$ = "APR"
IF M = 5 THEN MON$ = "MAY"
IF M = 6 THEN MON$ = "JUN"
IF M = 7 THEN MON$ = "JLY"
IF M = 8 THEN MON$ = "AUG"
IF M = 9 THEN MON$ = "SEP"
IF M = 10 THEN MON$ = "OCT"
IF M = 11 THEN MON$ = "NOV"
IF M = 12 THEN MON$ = "DEC"
OUT$ = DAY$ + MON$ + YEAR$
cmd$ = "D:" SHELL cmd$
cmd$ = "cd\datacad\dwg"
SHELL cmd$
cmd$ = " pkzip F:\" + OUT$ + "-i
-rp"
SHELL cmd$
cmd$ = "move F:\" + OUT$ + ".zip
L:"
SHELL cmd$
END
LINKS
HOME to DataCad page
HOME to www.nickpyner.com
GOT ANY FEED BACK FOR ME?