by CHawk Productions
Copyright(c) 1994-1995, Tarmo Toikkanen
All Rights Reserved
This software and manual are provided "as is" and without warranties as
to performance of merchantability or any other warranties whether
expressed of implied. Because of the various hardware and software
environments in which this program may be used, no warranty of fitness
for a particular purpose is offered.
Good data processing procedure dictates that any program be thoroughly
tested with non-critical data before relying on it. The user must
assume the entire risk of using the program. Any liability of the
seller will be limited exclusively to product replacement or refund of
This software is NOT public domain. It is copyrighted software
distributed as shareware.
This software is NOT free. A license fee must be paid if used longer
than for a one month evaluation period. See ORDER.DOC for details of
If you received this software on a CD-ROM or from a disk vendor, you
have only paid for the disk. You do NOT have a license to use this
Everybody has the right to copy and distribute this software as long as
it is unmodified and all the original files listed at the end of this chapter
are included. If a copying fee is taken, the receiver of this software must
be made aware that he has only the evaluation and copying license stated
Files in this package: CC.EXE, CC.DOC, CC.REV, ORDER.DOC, ORDER.FRM,
FEATURES.DOC, FILE_ID.DIZ. Remember that you MAY COPY THIS TO YOUR FRIENDS!
This is the idea behind shareware.
This is only an evaluation version of Controlled Copy, which you may freely
test for a period of one month. If, at the end of the 30 days, you decide
that you don't want to pay for CCopy, you must delete all the files and stop
using this software. If, on the other hand, you have found CCopy useful and
would like to use it in the future, you are required to register as a user.
All the necessary information is found in the files ORDER.DOC and ORDER.FRM.
If you do not have these files, contact me (see end of document).
Quick start ........... Tells you how to use CCopy
Main features ......... Tells you what CCopy can do
Command line options .. Explains all the command line options
Tips on usage ......... Some examples of useful tricks that CCopy can do
4dos (tm) features .... Explains the features of 4dos that are implemented
CCopy con ............. Shows how to use CCOPY CON to maximum efficiency
Contacting the autor .. How to get more information concerning CCopy
Controlled Copy completely replaces the copy-command. Most copying
utilities can't achieve this, but merely add some extra options to enhance
some specific copying task. Their interface also differs from copy, and
requires that users have to spend time learning to use them. CCopy is
different - it's a complete tool, with which you can do just about anything,
and it still works just like dos copy. Impossible? No! Just keep reading.
Controlled Copy can be used exactly like the normal copy command. With an
identical command line both programs do the same thing. However, CCopy can
provide numerous advantages that make the conventional copier obsolete.
There are two major concepts that define CCopy:
1) Compatibility: CCopy is used like the normal copy command, and the
command line options are as much alike whenever possible. Also, all of
the features of 4DOS's (tm) copy are included, like extended file masks,
include lists, size/date/time ranges and much more.
2) Flexibility: CCopy understands many command line options that make it
possibly the most versatile copier in existence. As the DOS copier
recognizes 5 options and 4DOS copier 14, CCopy handles over 28 different
options to make complicated tasks easy and easy ones simple.
Usage: CC source1 [sourceN... target] [options]
As you can see, CCopy is operated like the conventional copier - but
naturally several source masks are supported. What makes the difference then?
1) Free space checking
2) Progress indicators
3) Flexible user interface
4) Automatic disk change
5) Fast directory creation
6) Faster file transfer speeds
7) Numerous options to allow advanced file handling techniques
1: CCopy calculates the total space that the files will take on the
destination drive (taking into account different cluster sizes as well)
and will prompt for confirmation if there isn't enough free space.
Also, the space is checked between each file so that no file will be
copied if there really isn't enough space (multitasking taken into
2: CCopy constantly shows percentages and ascii-graphics to show the
progress and also an ETA is calculated, which shows approximately how
long the copying will still take.
3: CCopy naturally accepts several source masks. Also, just giving the
directory name will accept all the files in that directory. A single
point '.' means all the files in the current directory, eg. "CC . A:"
and "CC A:" are probably the shortest commands possible. You can point
to a directory with '..', which means the parent directory. '...' means
one step above that, '....' means one more step and so on.
4: When a disk runs out of free space, so that the next file doesn't fit,
CCopy will issue a prompt asking you to make some more room, end here
or skip the file. At this point you can (if copying to a diskette)
replace the disk with a new one and press any key to resume copying.
This feature is extremely useful for mass copying to disks.
5: With CCopy, you don't need to use MD any more. Most of the time CCopy
knows when a directory is needed and can create it automatically.
The surest way is to use a backslash after the destination:
CC *.* NEW\ this will force CCopy to create the directory NEW where
the files will be copied. A normal CC *.* NEW will create the directory
if there is more than one file to copy. If only one file is copied,
then NEW is assumed to be a file name. If you want to copy several files
to a single file, use /A or /D-. Of course, if a file or directory with
the correct name already exists, then it will be used.
6: Let the test results speak for themselves. As you can see, Controlled
Copy with its large data buffers
FILE: 10899KB (no disk cache used) can move data 60% faster than
4DOS/MS-DOS copy 47.4s 230KB/s 100% the normal copier. The registered
CCopy Shareware 29.1s 375KB/s 163% version improves the speed to
CCopy Registered 23.6s 462KB/s 201% double that of DOS copy. Also,
PCopy 47.7s 228KB/s 99% PCopy (from Patri-Soft) is
included in the comparisons. When
copying small files, the copying speeds are quite similar in all four
7: The options are handled separately in the next section. You can also read
CC.REV, which contains the revision history, to get more information on
the different aspects of CCopy.
Command line options
What's a command line option?
Command line options change the behaviour of the program, some quite
slightly (like turning on the verify-flag) some a lot more (like copying
subdirectories as well).
Everything that is located between slash (/) and a space ( ) is considered
to be a command line option. Some examples:
CC *.* /V a: /4 /B These all work the same way. As you can
CC *.* a: /4vb see, it doesn't matter where the options
CC *.*/v a:/b4 are located, and you can even enter
CC/vb4 *.* a: several of them after one slash. Also,
no space is needed between a mask (like *.*) and an option - it's enough to
have that slash in between. And none of the options are case sensitive,
meaning that '/J' is the same as '/j'.
Appending a minus-sign (-) after an option disables it (/4 /4- or /44- does
Remeber to check the usage tips after this chapter.
DISPLAY OPTIONS - these affect what you see on the screen
/Vx View Defines what is shown on the screen for each file:
x=1: Names only (brief)
x=2: Names and sizes
x=3: Names, sizes and progress indicators (default)
x=4: Just the progress indicator on a single line
/Tx Totals Defines what is shown on the screen after copying:
x=1: Total files copied/skipped and total sizes
x=2: Like /T1, also free space, time taken, copying speed
and buffer size used (default)
/Q Quiet Same as '/V0T0', displays nothing on the screen. Note that
/V4 looks like /V0 after the copying is finished, so /Qv4
(or /v4t0) looks like /Q afterwards but shows the progress
SELECTION OPTIONS - these affect which files will be copied
/C Changed Copies only the files which have changed: requires that a
file with the same name exists and is older than the file
/H Hidden Copies hidden and system files as well, and retains
attributes. With this option, read-only files stay as
read-only files, but without it, they become normal files
when copied to another location.
/K Keep Keeps all existing files; if a file already exists in the
destination directory, the file will not be copied. Normally
CCopy will issue a prompt.
/N Nothing Use this to see what would happen. Files are still read
normally, but no writing of any kind is performed.
/P Prompt each You will be prompted before copying each file and can choose
whether or not it will be copied (or even renamed). Note that
you can only have one of P,K,R,X,U,C in a single command.
/R Replace Automatically overwrites any existing files.
/U Update Skips files which haven't changed: all older files will be
/X eXisting Only if a file with the same name exists in the destination
directory will the file be copied.
/1 Archive-bit Copies only files with their archive attribute set. Make sure
you don't use these two options after the verify flag /V, as
the result will be /V1 or /V2 (viewing option, above). Put
a slash in between or something like that.
/2 Archive-bit As above, but also turns the archive attribute off after
/ Selection These work like 4dos size/date/time selection ranges. See
'4DOS features' below.
[ ... ] Exclude If a file matches any mask given between brackets, it will be
MISCELLANEOUS OPTIONS - these do just about anything
/4 4dos Activates 4dos description support: DESCRIPT.ION will be
scanned and comments will be updated.
/A Append Appends all source files to the end of the destination file.
/B Beep Sounds an alarm when the copying is finished and also when
the program issues any prompts.
/D Dir-mode Warning: this option's functioning may not be clear to you,
but don't worry, you can ignore it altogether as this option
isn't usually needed. This option has three modes, which
become functional only when the destination (file or
subdirectory) doesn't exist:
/D- Assumes that the destination is a file (same as /A).
/D If only one file is being copied, the destination will
be a file. Otherwise, you will be prompted whether to
create the needed directory or append the files.
/D+ Works like /D, but doesn't prompt. In effect, this
creates the needed subdirectories automatically.
This is the default mode.
/E Extensions If a file with the same name already exists, it will be
renamed to FILE.EX0, or FILE.EX1, etc and the new file
will be copied automatically as usual.
/G Gather Copies files from all subdirectories of the source masks,
but doesn't recreate the directory tree at the destination,
in effect gathering all the files to one directory.
/J Jump Jumps you to the destination after copying the files. This
will simply change the current working directory to the
/L Cleave This option will split the source file to several disks.
Just start copying as usual; CCopy will prompt for another
disk when the disk is filled. This way you can easily copy
a large file to disk. The disks need not be empty, CCopy
can fill any disks you insert. To reassemble the file,
just copy the parts from the disks in the correct order
with the /A-option.
/M Move Source files are deleted after being copied. When copying
within a single drive, the files will be moved by renaming
them, resulting in extremely high moving speed regardless
of file size.
/O Optimize This option is used when copying much data onto diskettes.
Normally CCopy prompts for a new disk when the next file
doesn't fit, but /O sorts the files and tries to fit every
file to the disk, so that it's filled as well as possible,
and only then will a new disk be prompted for.
/S Subdirs With this option, all the subdirectories are also scanned
and all the files are copied to their new subdirectories
(created when needed).
/S+ Prune This works like /S above, but the files are copied to the
directory they reside in now. For example,
"CC C:\GAMES\NETHACK D:\GAMES/S+" will copy the files from
the directory c:\games\nethack to d:\games\nethack.
/V Verify Use this to activate DOS verify flag during copying, or
disable it (with /V-).
/Z Zap Zap deletes the files in the destination before copying:
/Z Removes the files matching the destination mask:
"CC *.* E:\FILES/Z" will delete E:\FILES\*.* while
"CC *.* *.bak/z" will remove *.BAK from the current
/Z+ Works like /Z, but doesn't prompt for confirmation.
/ZZ Removes all the files from the destination directory,
all its subdirectories and removes the subdirs.
/ZZ+ Works like /ZZ, but doesn't prompt for confirmation.
/ZZZ Removes all the files from the destination drive.
Use with caution!
@comfile Reads the file 'comfile' and adds its contents to the command
line. "CC @ files.lst A:" will insert the contents of
FILES.LST to the command line (the file can contain file
masks and options as well). Remember, that the maximum number
of source masks is currently 39.
Tips on usage
Copying several files on disks:
Use /O to ensure all disks are filled to maximum capacity. Also, /B
is useful so that you get a sound alarm when you need to change disks.
Moving large programs:
If you need to copy that WordPerfect from C:\TOOLS\WP to
C:\TEXTUTIL\WP, you can use "CC C:\TOOLS\WP C:\TEXTUTIL /MS+" to
make the job easier. All the directories will be created and removed
when needed, and you don't need to do anything else yourself.
Copying large files to disks:
Suppose you have a zip-file of five megabytes. There's no easier way
to copy it to disks than with CCopy: just type "CC FILE.ZIP A:/L".
/L activates cleaving (splitting) of files. Now you can just insert
disks the usual way and your zip will be cleaved while being copied.
The result will be completely full disks.
To reassemble the files, just type "CC A:FILE.ZIP /A" for each disk.
This will append the files together. You just have to make sure you
enter the disks in correct order, as there's no checking done.
If you specify the enviroment variable CCOPY, its contents will be
considered to be command line options which are processed before
the actual command line. Good for enabling some options by default.
Copying files to a new directory:
This is very easy; all you have to do is append a backslash (\)
after the destination, eg. CC *.* TEST\, which will then create the
needed directory for you. If you do not use the backslash, the
directory will be created only if you're copying several files. A
single file would be copied to a file named TEST.
Under DOS 5.0 or later, CCopy recognizes subst and uses the real path
names. This means that if A: is substed to C:\TEMP then "CC A: C: /M"
will move the files by renaming them (as the copying is really done
within the same drive) and "CC A: C:\TEMP" will notice that the files
are going to overwrite themselves.
If you collect your utilities to a directory, then updating
one of them means you have to find out which files belong to it,
delete them and copy the new files. With CCopy you can use
"CC/C C:\INCOMING\TEST\*.* C:\UTIL" which will copy only the files
that already exist and are older. With /X you can downdate programs,
and replace a version with an old one.
If you keep a lot of zips in a directory, you may sometimes
accidentally have opened one of them in that directory. Then it's a
real big job to delete the unwanted files or move them to the correct
subdir. With CCopy, you can use
"CC/M *.* C:\TEST [ *.zip ]" which will move all files except zips
to another directory.
If you wanted to find certain files from your hard disk and get them
into a single directory for easy viewing, you could use
"CC C:\*.DOC C:\VIEWING /GE". This will scan the entire hard disk
and copy all files with the extension DOC to the VIEWING-directory
(/G-option). Since there will be several files with same names, we
specify /E as well, which will automatically rename existing files
so that you could get eg. ORDER.DOC, ORDER.DO0, ORDER.DO1 and so on.
CCopy contains many options and most of them can be used together
to create some bizarre effects. The most harmful combinations are
recognized and unallowed, but you can still do pretty much what you
want and customize some powerful command lines that will save you a
LOT of work. Try. Experiment. And, for security reasons, you might
want to try with the no copying option (/N) at first.
CCopy supports all the features of 4DOS's copy program even if 4dos isn't
the active operating system. For those who do not use 4dos, a brief
explanation is provided. Note that many of these features are more advanced
than those of 4dos copy. 4DOS is the registered trademark of JP Software Inc.
Normal DOS interprets *C*.EXE as *.EXE, but 4dos correctly picks out the
files with the letter 'C' in them. CCopy does that too.
Extended command line:
4DOS can use a command line of up to 255 characters, while DOS only 127.
CCopy can read 4dos command lines of any length.
Starting a mask with a semi-colon (;) adds the directory of the previous
mask to it. Example: "CC C:\FILES\*.EXE;*.COM" will copy all exe- and
com-files from c:\files to the current directory. You can have extra
blanks on either side of the semi-colon whenever you want.
With 4dos programs, you can choose files like this:
FILE.EXE which would copy files FILE1.EXE,FILE2.EXE...FILE6.EXE
and FILE[1-6].EXE would also work. Also, letters '?' and '!' can be used.
'?' stands for any character and '!' for negation (FILE[!2].EXE would
choose all files except FILE2.EXE).
CCopy can also handle letter selections with one improvement: 4dos allows
'!' only at the beginning of the selection, but CCopy allows '!'
anywhere. Some examples: FILE[1-9!3-6].EXE (files 1..2 and 7..9),
FILE[A-Z!G-P!M].EXE (files A..F, M and Q..Z).
Size selection range:
Accepts only the files whose sizes fall within the range. Examples:
/[s50k], /[s50000] sizes larger than 50,000 bytes
/[s50K], /[S50K] sizes larger than 50 kilobytes
/[S200K,2M] sizes larger than 200 kilobytes
but smaller than 2 megabytes
/[s0,120000] sizes smaller than 120,000 bytes
Time selection range:
Accepts only the files whose time stamps fall within the range. Examples:
/[t10:00] between 10:00 and current time
/[T10:00p], /[T22:00] between 22:00 and current time
/[t10:15,11:15] between 10:15 and 11:15
/[t8:00,6:00] between 6:00 and 8:00 (4dos doesn't allow this)
/[t10:15,+60] between 10:15 and 11:15
/[t11:15,-60] between 10:15 and 11:15 (4dos doesn't allow '-')
/[t11:15:20,10:00P] between 11:15:20 and 22:00
Date selection range:
Accepts only the files whose date stamps fall within the range. Examples:
/[d12.10.94] between 12th October 1994 and today.
/[d10/12/94] same as above ('/' means MMDDYY format)
/[d12.10.1994] same as above (current century is used when missing)
/[d12.10] between 12th October and today, current year
/[D12.6,10.10] between 12th June and 10th of October, current year
/[d12.6,+10] between 12.6 and 22.6
/[d12.6,-10] between 2.6 and 12.6 (4dos doesn't allow this)
:00] between 18:00 on 10.5. and 10:00 on 12.5.
A few words on this command. The console interface is improved over the
conventional copier, and now you can enter _any_ characters to the file -
using ALT-keypad, or CTRL-letters or normal characters or even ESC,
backspace and CR/CRLF codes. This means, that pressing any key will output
it to the file. If, on the other hand, you want to erase the last character
entered, merely pressing backspace would just echo ascii 8 to the file.
By depressing SHIFT, backspace will remove the last character, and enter
will echo a CRLF sequence instead of the plain CR code. Also, you can finish
typing by pressing SHIFT-CTRL-Z (or C), so that the ^Z-character isn't
written to the file. And, all the characters are shown on the screen using
direct video memory manipulation, so that the smileys are there too.
These people have been a great help in the development of CCopy (listed
in alphabetical order):
Ben-Zion Cassouto - bug chaser
Walter Rydman - innovator
Heikki Timonen - motivator
Toni Timonen - error checker
Additional credits to active users (in alphabetical order):
Sami Lehtinen / Zorlim
Contacting the author
1) Any questions concerning the registration of this software are always
2) If at any time you want any details on CCopy that aren't covered in the
documentations, you are most welcome to contact me (e-mail preferred).
If the function of a command line option of some other feature is not
clearly explained, please ask.
3) New ideas are always accepted. If you'd like another option or some other
function added, just contact me with your request.
4) Bugs are sadly an unavoidable nuisance, so if you find any, please report
them to me so that they can be fixed. I simply cannot check and recheck
every possible combination of situations myself. Should you report a
bug by e-mail, you will get a special update in just a few days with the
5) It's nice to know someone's using Controlled Copy, so you can send me some
email and just say hello or give me any other comments you might have.
To contact me, send email to: (reply guaranteed) [email protected]
(use a subject line starting with the word "CCOPY")
or snailmail to: (reply unlikely)
Ruusulankatu 19 A 26