°°°° °°°° °° °° °°°°°° °°°°° °°°° °° °° °°°°°° °°°°° ±± ±± ±± ±± ±±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ²² ²² ²² ²²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²² ²²² ²² ²²²²² ²² ²² ²² ²² ²²²² ²² ²² ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± ±± °°°° °°°° °° °° °° °° °° °°°° °°°°°° °°°°°° °°°°°° °°°°° °°°° °°°° °°°°° °° °° ±± ±± ±± ±± ±± ±± ±± ±± ²² ²² ²² ²² ²² ²²²² ²² ²² ²² ²²²²² ²² ±± ±± ±± ±± ±± ±± °°°° °°°° °° °° v 1.06 UNREGISTERED by CHawk Productions Copyright(c) 1994-1995, Tarmo Toikkanen All Rights Reserved Disclaimer ---------- 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 purchase price. License ------- 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 the payment. 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 software. 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 above. 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. Registering ----------- 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). Contents -------- 1. Quick start 2. Main features 3. Important notes 4. Command line options 5. Tips on usage 6. 4dos (tm) features 7. CCopy con 8. Credits 9. Contacting the autor 1. Quick start -------------- 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? Read on... 2. Main features ---------------- 1) Free space checking 2) Progress indicators 3) Flexible user interface 4) Automatic disk change 5) Fast directory creation 6) Fast file transfer speeds 7) Numerous options to allow advanced file handling techniques 1: CCopy accurately calculates the total space that the files will require on the destination drive and will prompt for confirmation if there isn't enough free space to copy all the files. Also, the space is checked between each file so that no file will be copied if there really isn't enough space. This allows compatibility with multitasking systems and partial compatibility with disk stacking utilities. 2: CCopy constantly shows percentages and ascii-graphics to show the progress and an estimate on long the copying will still take. 3: CCopy naturally accepts several source masks. Copying from directories is made extremely easy, and copying to directories is automatically handled. 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. 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 programs. 7: The options are handled separately in section 4. You can also read CC.REV, which contains the revision history, to get more information on the different aspects of CCopy. 3. Important notes ------------------ Operating systems: Controlled Copy is available for both DOS and OS/2. Both versions are operated in exactly the same way, and there are only minor changes in the results. OS/2 version supports HPFS and long file names, but cache flushing (with file compare) isn't supported. Other than these changes, CC is identical in both operating systems and allows you to use the same advanced capabilities in both OS/2 sessions and DOS sessions. One exceptional feature of CCopy is its subdirectory creation method. Below are listed all possible combinations and their results. While the last action may seem strange, you will see that it is the only logical conclusion. All of the actions may be changed with the command line options. ONE SOURCE FILE: DESTINATION DEFAULT ACTION File File copied over the destination file (prompt issued) Directory File copied to the given subdirectory (same file name) Doesn't exist File copied to a new file (*) SEVERAL SOURCE FILES: DESTINATION DEFAULT ACTION File Files appended to destination file (prompt issued) Directory Files copied to the given directory Doesn't exist Destination directory is created, files are copied to it (**) (*) You can force CCopy to treat the destination as a directory by appending a backslash after the destination: "CC ONEFILE.TXT \NEWDIR\" will create the directory NEWDIR even though only one file is being copied. With CCopy, you rarely need to use the MD-command. (**) When you want to append several files to a new file, you have to use the /A-option (Append) or use plus-signs between the files. This way CCopy knows you want to append the files, and doesn't create the subdirectory. With CCopy, whenever you need to say '*.*' you can use a simple dot: "CC . A:" equals "CC *.* A:". You can omit the dot if you enter a directory name: "CC \TEMP\*.* A:" , "CC \TEMP\ A:" and "CC \TEMP A:" all work identically. You can access parent directories easily: "C:\FILES\NEW>CC .. A:" will copy the contents of C:\FILES to A:. "C:\FILES\NEW\TEST>CC ... A:" will do the same thing. "C:\FILES\NEW\TEST\TEMP>CC .... a:" still does the same thing. etc. Include masks, letter selection and size/date/time ranges are explained in section 6, "4dos features". Exclude masks are another feature native to CCopy. There are two ways to enter an exclude mask. You can use brackets around the masks, or insert a comma in front of each mask. If a file matches any mask given it will be skipped. Examples: "CC . [ *.exe *.com *.doc ] a:" "CC . ,*.exe, *.com , *.doc a:" 4. Command line options ----------------------- 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: 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. Some options also work differently with a plus-sign after them (like /S). Options are always handled from left to right and any old options may be overridden (eg. /BVB-). Remeber to check the tips on usage after this chapter. They contain some very handy and powerful option combinations that you might not think possible! DISPLAY OPTIONS - these affect what you see on the screen /Vx View Defines what is shown on the screen for each file: x=0: Nothing 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=0: Nothing 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 after copying is finished, the screen output of /V4 looks like that of /V0, so /Qv4 (or /v4t0) looks like /Q afterwards but shows the progress indicators nevertheless. 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 being copied. /H Hidden Copies hidden and system files as well, and retains their 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 copying a file would overwrite another file, the file will not be copied. Normally CCopy will issue a prompt. /N Nothing Do nothing. Use this to see what a command does. Files are still read normally, but no writing of any kind is performed. /P Prompt You will be prompted before copying each file and can choose whether or not it will be copied (or even renamed). Note that /P, /R and /K override each other. You can, on the other hand, combine /P with /U, /C and /X. This way, /U, /C and /X will skip the files they normally would, and /P will issue a confirmation prompt for all files that aren't skipped automatically. /R Replace Automatically overwrites any existing files. /U Update Skips files which haven't changed: all older files will be automatically overwritten. /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 this or the next option 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 copying. This works like XCopy's M-option. /[] Selection These work like 4dos size/date/time selection ranges. See '4DOS features' below. 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. If the original file ends with an end-of-file character (CTRL-Z, or 21h), a prompt will be issued to verify if it is a text file. In this case the end-of-file character will be removed. When you know that you will be appending text files, you can use /A+ to skip the prompt; this way all end-of-file characters will be removed. /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 given destination does not 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 as usual. /F File comp After copying a file, a bit by bit comparison is performed between the source and the destination files to ensure that all data is written correctly. Also activates /V-option. /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 given destination. /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 disks. The files on different disks will be renamed (formula like /E) to distinguish between different parts. 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 many files onto diskettes. Normally CCopy prompts for a new disk when the next file in sequence 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 a:*.* *.bak/z" will remove *.BAK from the current directory. /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. 5. 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.ZI? /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. SET CCOPY=... 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. Excluding files: CC . A: [ *.EXE *.COM ] CC . A:,*.exe, *.com Both of these lines do the same thing - copy all files except exe- and com-files to drive A. When using brackets, you must use a blank between a bracket and a file mask, but there are no restrictions with the comma. Subst: 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. Updating files: 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. Zip directory: If you keep a lot of zips in a directory, you may have sometimes accidentally 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. To make sure no unwanted files are moved, adding /P will be helpful. File gathering: 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. Selecting files: "CC *.* C:\FILES /X" would copy only those files that already exist on the destination directory. But what if you'd want to copy only some of those files? You could run "CC *.* C:\FILES /P", but then you would have to manually go through all the files, even those that do not exist in the destination directory. The best way is to use "CC *.* C:\FILES /XP". This way, all the files that don't already exist on the destination are skipped, and a confirmation prompt will be issued for all that do. You can use /P (prompt) with /X (existing), /U (update) and /C (changed), but not with /K (keep) or /R (replace). Experimenting: 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. Prompting for the files (/P) is another effective way to prevent an accident. 6. 4DOS features ---------------- 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. Extended filemasks: Normal DOS interprets *C*.EXE as *.EXE, but 4dos correctly picks out the files with the letter 'C' in them. CCopy does that as well. Extended command line: 4DOS can use a command line of up to 255 characters, while DOS only 127 (OS/2: normal length is 512, 4os uses 1024 characters). CCopy can read 4dos command lines of any length. Include lists: 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. Note the dot at the end: ";*.COM" would be the destination if the "current directory" symbol wasn't after it. Letter selection: With 4dos programs, you can choose files like this: FILE[123456].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 between 200 kilobytes and 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) /[d10.5@18:00,12.5@10:00] between 18:00 on 10.5. and 10:00 on 12.5. 7. CCOPY CON ------------ 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 and CR/LF 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 the enter key will echo a CR/LF sequence instead of the plain CR code. Also, you can finish typing by pressing SHIFT-CTRL-Z (or SHIFT-CTRL-C), so that the ^Z-character isn't written to the file. All the characters are shown on the screen using direct video memory manipulation, so that the smileys are there too. 8. Credits ---------- 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 - OS/2 help, error checking Additional credits to active users (in alphabetical order): Sami Farin Sami Lehtinen / Zorlim Erik Mrena N. van Tol 9. Contacting the author ------------------------ 1) Any questions concerning the registration of this software are always answered (e-mail). 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 error corrected. 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) ttoikkan@gamma.hut.fi (use a subject line starting with the word "CCOPY") or snailmail to: (reply unlikely) Tarmo Toikkanen Ruusulankatu 19 A 26 FIN-00250 Helsinki Finland