Documentation for: ================== AU Ver 1.16 04/08/95 By: Dave Harris & Ray Waechter AAA U U A A U U AAAAA RCHIVE U U TILITIES \ / A A U U \ ______/ A A UUU _\__|__ / | (no tm) --| \ / 35$|------------------- 1 1 6666 |47$__/_|__ | Society of 11 11 6 | |/ \ |_| Public Domain 1 1 1 1 6666 |_/| o \| Dudes 1 .. 1 6 6 --/--|25$| |\-------------------- 11111 .. 11111 666 / |___|___| \ MEMBER ================================================================== Beta Testers: John Alton Ed Cavender ================================================================== File Requestable as AU from: Nibbles 'n Bits 10:103/2 (Busilink), 1:312/1 (Fido) (1-801-221-1609) HST/DS dave.harris@busilink.com (InterNet) BusiLink, U.S.A 10:10/1 (Busilink), 1:13/100 (Fido) (1-610-269-1660) HST/DS ray.waechter@busilink.com (InterNet) Source code Requestable as AUSOURCE ================================================================= In a hurry? Type "AU" for a quick help screen. 95% of AU should be easy enough to understand. This may be as far as you need to read. ================================================================= What does this program do? It performs many operations (mosly archive-file based) such as converting from one format to another, eliminating the need to remember the options for the archive programs which unfortunately vary. AU replaces many of the other archive utility programs that usually address one, or perhaps a few of the typical archiving operations. AU attempts to address most of the major operations that are performed on archive files, plus some I believe to be unique. ================================================================= Why PD? If somebody can make an archiver like LHA, and release it as freeware, then gosh darnit I can make a simple utility program and distribute it at the same price. In official mumbo jumbo, I hereby place this program in the Public Domain. The source code is freely available and may be modified to fit your 1 own needs provided you do not distribute the modified program. If you make modifications that you feel would benefit others then send me a copy of the modified source code and your changes will be considered for the general release. Constructive comments are always welcome. Netmail comments to 1:312/1 (fido-net), or leave a message on my BBS at (801)-221-1609. DISCLAIMER: Although many hours have gone into testing and debugging, Neither the authors nor the testers take any responsibility if AU fails to work properly on your system and/or causes damage to your files and/or system. It is distributed as- is with no warranty of any kind. It is strongly recommended that a full backup be made before running the CONVERT operation on any important files. There are simply too many variables; too many different things that can go wrong. If the program is marked BETA then realize that it is not as tested as I would like it to be. Don't take it upon yourself to place AU (beta or otherwise) in any distribution networks such as SDS. AU does not exempt you from your obligation to the shareware authors of PKZIP, PAK, ARC, ARJ, SCAN, and other products it interfaces with that you use. I would also like to thank Ralf Brown for the use of his SPAWNO library. This allows AU to swap out and free up conventional memory when there is not enough available to run an external program such as the virus scanner. I highly recommend this product. ************************* Notation in this document ************************* [] Options and commands between square brackets are optional. The brackets themselves should not be typed. <> Used to delimit such things as paths and file specifications. Once again the brackets should not be typed, and the descriptor between should be replaced with an actual value such as the file name, etc. Used to denote that a number should be used. Once again, do not type the brackets. 2 ***************************************************************** AU in general ***************************************************************** AU (except where noted) has been tested with the following software versions: ARC 1.28, 6.00, 7.00 ARJ 1.00, 1.10, 2.00, 2.10, 2.20, 2.21, 2.21a, 2.22, 2.30B, 2.30, 2.39a, 2.39f, 2.41 DOS 3.2, 3.21, 3.3, 4.0, 4.01, 5.0, 6.0, 6.2, 6.22 DWC 5.01 HA 0.98 HAP&PAH 3.00 HPack 0.75c HYPER 2.5 LARC 3.33 LHA[RC] 1.00, 1.12, 1.13, 1.13c, 1.14b, 2.05, 2.06, 2.10, 2.11, 2.12, 2.13, 2.55 LU87 5.00 LZEXE 0.91 MD 1.0 PAK 1.0 1.6, 1.61, 2.00, 2.01, 2.10, 2.50, 2.51 PKARC 3.6 PKZIP 0.90, 0.92, 1.00 beta, 1.01, 1.02, 1.10, 1.93a, 2.04g RAR 1.40.2, 1.50.2 SQZ 1.08.3e UC2* 2.0 Windows 3.1, 3.11 (as a DOS partition) ZIP 2.0x ZOO 1.40, 2.01, 2.10 It is reasonable to assume that AU will work with versions of DOS 2.11 and later. It is also likely that it will work with most other versions of these unarchivers (except perhaps the self extract files)... But no promises. * UC2 is different in that it even compresses its internal records. At this time the internal format is not available to me so operations such as view and redate are not yet possible. ***************************************************************** Interface ***************************************************************** AU is many utilities in one program. The first command line parameter is the operation you want to perform. The operation can be abbreviated to the first one to three letters, shown in caps. To find the start of each of these in this document, do a search for "Operation=XXX" where XXX is the operation. Add - Add file(s) to archive(s) COMpare - Compare 2 BBS file listings for differences Convert - Convert from one archive format to another Delete - Delete file(s) from archive(s) DIr - Display a directory of filenames 3 DUpes - Find Duplicate files based on size and CRC Find - Find files including files inside archives FIXcr - Fix text files with missing CR or LFs Header - Add/change archive header comments Orphans - Find files that aren't in file listing files (ie files.bbs) Patch - Patch file listing files (ie files.bbs) Redate - Date the archive as the newest or oldest file it contains Scan - Scan the archive(s) for viruses SIze - Size up a group of archives STrip - Strip archive header comments SWeep - Perform an action on a directory tree Test - Test archives to see if they are corrupt. Unarc - Unarchive archive file(s). VErsion - Determines a product's version number. View - View the contents of an archive file(s) Whatis - Identify file(s) Examples: ========= AU test *.lzh AU t *.lzh AU size *.lzh AU si *.lzh ***************************************************************** Command Line options ***************************************************************** Command line options are parameters that are entered following the specified operation. They begin with a - (dash) (forward slash / is also allowed) followed by a letter which is in turn usually followed by a value. The letter and value may be optionally seperated by whitespace and neither are case sensitive. They may be placed before and/or after the file specs (with the exception of the SWeep operation). The command line options for the individual archive programs specified in the .CFG file follow their own respective schemes which differ from AU and from each other. Command line options always override the .CFG file settings. Examples: ========= AU UNARC -xon round42 AU U round42 -Xon AU CONVERT round42 -R on -X off AU U /x OFF round42 -R+ Environment variables delimited by percent symbols may also be embedded in the command line as well. For example: SET files.bbs=files.dat AU Patch -f+%files.bbs% translates to: AU Patch -f+files.dat 4 For more information on using environment variables, see the section on the AU116.CFG Configuration file. ***************************************************************** Global Command Line options ***************************************************************** The following are global options that are used with all or most of the operations: '-S' Simulate mode. For most operations it simply means that no file writes take place. In the case of the Test and SCan operation, it doesn't perform the tests. '-SD[n]' Process sub directories. If this option is used, AU will recurse into the sub directories off the source directory(s) and process the files matching the file_spec inside these directories. An optional maximum depth can be specified. For example a max depth of one will process the current directory plus the one level underneath the current directory but no further down the tree. '-SE' Show Executions. If this option is used, AU will display the DOS commands with all their parameters before they are executed. This option is mostly for debugging purposes to make sure AU is running the command as was intended. '-NE' Display No Extraneous information. All non-essential information is suppressed, such as the headers, files processed count, etc. This is most useful with the View operation. '-NC' Shuts off all color displayed. May be necessary for some monochrome machines. If AU is redirected (ie AU > temp.dat) you do not need to worry about colors interfereing. It does NOT use ansi.sys for its color effect. '-C' Specifies an alternate .CFG file. ie. AU U -C file.cfg. If all the information in a .cfg file pertains to the operation you are performing, then the BEGIN statement is unnecessary. '-F[+]' Specifies the file-list file to use. This parameter overrides any that are specified in the .cfg file. If followed by '+' the file list is treated such that it can be appended to if the file is not contained inside the listing. See File_list option below. '-E' Specifies an environment variable that will be set equal to the result of the operation. The only operation at this time which does this is the Dir operation. The specified environment variable will be set to the last line outputted by this operation. Technical Note: Modifying a parent's environment variables from inside a program is not provided for by DOS. AU scans the memory looking for an a block of environment variables which matches the parent's environment, then modifies the second 5 to the last set it finds (the last set is the programs own environment). This appears to be the way DOS works, however, there is nothing written in stone that this works for all versions and varieties of DOS, in fact I would be suprised if there were not exceptions. Because AU writes directly into a memory location that is nothing more than a best guess, there is potential for this feature not to work, or worse yet lock the machine up. There is also no way to test for the amount of environment space left, it is your job to ensure that you have enough. There is no danger if this option is not specified. '--' Tells AU to stop looking for options, anything remaining on the command line is assumed to be a file specifications. This one is useful for filenames that just happen to start with a dash. If calling AU from another program, the -- option should be used just before the file specification. ***************************************************************** On/Off option parameters ***************************************************************** Many of the options take and ON/OFF value. The value "ON" can be replaced with "+" or "Yes", the value "OFF" with "-" or "No" as in: AU U -d- -r+ round42 AU U -Dno -Ryes round42 ***************************************************************** -? command line option: ***************************************************************** Quick reminder of the command line options for a specific operation. Examples: AU U -? Help for the Unarc operation AU T -? Help for the Test operation ***************************************************************** File Specification: ***************************************************************** The file specification (abbreviated as file_spec) is the list of file(s) that will be acted upon. AU handles regular DOS wildcards in addition to the extensions listed below. AU's file_spec is improved to take wildcards beyond what dos would normally allow. For example r*42.* does not get converted to r*.* as DOS would do. AU also handles Unix like wildcards. Characters between brackets [] specify a set of characters that are allowable at the spot the brackets are used. If the first character between the brackets is a carat (^), the logic is reversed. For example: AU U *.??[0-9] will unarc *.??1, *.??2, *.??3 to *.??9 6 AU U [abc]*.* will unarc a*.*, b*.* and c*.* AU U [^d-f]* will unarc everything except d*.*, e*.* and f*.* A list of file specification can be placed in a response file. Response files are specified by a preceeding @ symbol. For example if the file LIST.DAT contained the following: c:\download\ibm\games c:\download\ibm\utils then "AU T @list.dat" will test all the files in both these directories. Response files within response files are allowed. A list of BBS directories may be specified using the -# file_spec. You must be in the directory containing the directory list. At this time, Maximus 1.02, 2.00, RBBS, Opus 1.03 and 1.1x are supported. Arcmail wilcard *.SU[0-9] *.MO[0-9] etc. can be abbreviated using the $ file_spec. For example: AU U $ will unarc all the arcmail in the current directory. The Unarc operation will sort the files by date and time if $ is used. If no file_spec is specified, then *.* is assume by most of the operations (unless Default_File_Spec is changed, see option below). If a file_spec has no extension, then .* is appended automatically. ***************************************************************** AU116.CFG Configuration file ***************************************************************** AU116.CFG Contains the control information needed by many of the operations. The options placed below the BEGIN GLOBAL statement are used by all of the operations. The options between the other BEGIN statements are used only by the individual operations (ie BEGIN UNARC, BEGIN CONVERT). Any settings set in these sections override the global section. The AU116.CFG file should be placed in one of the these places: 1 - The current directory. 2 - The same directory AU.EXE is located in (except DOS 2.x) 3 - In your APPEND data file path (handled automatically by DOS) 4 - The directory specified by the environment variable AUPATH (ie SET AUPATH=c:\utility\temp) 5 - In a directory specified by your PATH It will be searched for in that order. Anywhere inside the .cfg file, an environment variable may be embedded by placing percent symbols around it (ie %variable%). The variable must be at least 2 characters long, and between the percent symbols no whitespace may exist. 7 ***************************************************************** Commands in the global section ***************************************************************** The following set of options define the archivers. You can change the executable names and add paths to them if necessary. The archiver options can be tweaked too at your risk. The ones provided work for me. ==== Type ==== This is the internally used archive number. Refer to the table at the top of the config file. At this time there is no way to add your own types. ========= Extension ========= This is the default extension for the archive method. ================= Strict_Ext Yes/No ================= Specifies if the file's extension must match the specified extension for the archiver (option above) in order for operations that call the archives to work. Currently, DWC, HAP and LBR impose such a restriction. In such cases the file is temporarily renamed, the archiver called, and then the file is renamed back to it's original. ===================== Over_Int_Check Yes/No ===================== Specifies if the internal checking should be done to see if files will be overwritten during an Unarc operation. For most archivers, this option can be set to YES. Some do not allow an option to overwrite, and UC2's internal's are unknown, for these, the option is set to NO. ===== CRC n ===== Where n is 0, 16, or 32. Specifies the number of CRC bits for this type of archive. It is used by the view operation to format data, and is used by the dupes operation so that archives that don't store CRCs will not have their contents processed. You should have no need to change this value. ============= Memory_Needed ============= This is the minimum amount of conventional memory in kilobytes that the most extensive operation (in all cases the compression operation) of the archiver will need. If free memory is insufficient or within 100K safety margin of being insufficient, 8 AU will swap itself out to upper memory (or to your HD it there isn't enough), using Ralf Brown's SPAWNO library. If there is less memory still, then AU will not attempt to run the program, and will return with an errorlevel of 99. ===== Unarc ===== This is the executable command plus parameters to unarc the files. %p is replaced with the unarc_path/unarc_no_path option (explained below). %f is replaced with the file to be unarced. The executable must be in the path, or the path must be specified as part of the command. %y is replaced by the Yes_Queries option. ========== Unarc_Path ========== This is the option or string of options to use when paths are wanted in the unarcing process. If the archiver defaults to including paths then this option can be left out and the unarc_no_path option should be used instead. It is possible to have both unarc_path and unarc_no_paths options as the archiver (such as PAK). ============= Unarc_No_Path ============= This is the option or string of options to use when no paths are wanted in the unarcing process. =========== Yes_Queries =========== This is the option or string of options for the archiver to use when you want the unarchiver to automatically answer yes to any question it asks you (such as "Create directory xxxxxx?"). Anywhere "%y" appears, it is replaced by the string following this option. If not specified, AU will use a less efficient brute force mechanism. It builds a file containing 100 Y + carriage return lines and redirects the input into the command (ie pkunzip file.zip < y_file). ========= Overwrite ========= This is the option or string of options for the archiver to use when you want the unarchiver to automatically overwrite any existing files. Anywhere "%o" appears, it is replaced by the string following this option. This option is very similar to Yes_Queries except it is a little more specific. 9 === Arc === This is the executable command to create or add to an archive. Once again, the executable must be in the path, or the path included with this option. =========== Arc_Path ARC_No_Path =========== Same idea as the unarc_path and unarc_no_path. ==== Test ==== This is the executable command plus options to test archives. ====== Header ====== This is the executable command to change the archive comment. Attach '<' for the redirection method, and @ for the response file method. Some archivers allow neither method. These are not supported at this time. ========== Whatis_Err ========== Specifies the errorlevel that the whatis operation will return for this archiver type. This is not really an error condition in this case, simply a return value that can be checked an acted upon. ============ Whatis_Color ============ Specifies the color that the whatis operation will display for the file name for this type of archive. Legal values are 0 through 15. See the section on Whatis for a color listing. The following options are for AU in general: ============================== ========= Output_Log -O ============================== ========= This option lets you redirect the output of the archive programs. If left blank or commented out, the output will go to the standard output device (your screen unless > is used). All that mess that comes up when archiving, unarcing, testing, deleting, adding, etc will go to this place. Examples are NUL where output goes to never never land. PRN where output goes to the printer and FILENAME.EXT where output goes to that file. LHA's output is written directly to stderr (normally the screen) so it 10 does not redirect, and ARC ver 7.0 brings up a fancy window for its output, but other than that it redirects everything else.. - Onul -Oprn -Ounarc.log are the corresponding command line options. ============================== Action_Log ============================== This option lets you send a terse one line action statement to a log file. Unarc, Scan and Test operation are currently the only operations that write to this log file. ======================= Problem_Log ======================= While executing, AU may find archives that it is unable to read. It flags these as being possibly corrupt. It displays a warning at the time it finds it and once again when the program has finished. The archive is then tested (if Retest_Suspicious is ON) using the archiver Test operation. If it fails this test the archive is treated as definately damaged. AU may think an archive is corrupt because it is a new version and AU does not know how to read the internals of it, or simply that all circumstances may not have been accounted for and coded. This option specifies a log file in which to write this information so it can be inspected at your leisure. AU always appends to this file. ================= Default_File_Spec ================= This is the default file specification when none is specified on the command line. Generally this option would be simply "*.*". However, you may feel that this is too dangerous for some operations and may choose to comment this line out. If this option is commented out and no files are specifically specified, AU will display the warning message "Nothing to do" and exit to DOS. This forces a conscious decision as to what files AU will process. Another usage of the option would be to specify certain types of files such as *.ZIP *.ARJ etc. Multiple filespecs can be used on this option. @ response and -# file specs can be used as well. ======= Scanner ======= This is the virus scanner and its options to be used by AU. =================== SC_Virus_Errorlevel =================== Specifies the errorlevel that the scanner returns when a virus is detected. If commented out, then anything the scanner returns other than 0 is considered a virus. 11 ===================== SC_NoVirus_Errorlevel ===================== Specifies the errorlevel that the scanner returns if the file is fully checked and no virus is found. If not specified, then 0 is assumed. If the errorlevel returned by the scanner is neither the value specified by SC_Virus_Errorlevel nor SC_NoVirus_Errorlevel, then it will be assumed that the virus scanner had some other problem such as not having enough memory, or being aborted by the user. AU will report all files to the screen and problem.log for which the scanner did not work when it is finished running. ================ SC_Memory_Needed ================ This is the minimum amount of convention memory in kilobytes that the virus scanner will require. If free memory is within 100K of being insufficient, AU will swap itself out to upper memory (or to your HD it there isn't enough), using Ralf Brown's SPAWNO library. If there is less memory still, then AU will not attempt to run the scanner, and will return with an errorlevel of 99. ======================== Retest_Suspicious ON/off ======================== If set on, AU will retest (using the archiver Test operation) all the archives it flagged as suspicious (potentially damaged) when finished processing. Archives that fail this test will be reported as being damaged, the ones that pass will be reported as files that AU failed to fully recognize. If the file is small, please sent it my way so that the problem can be corrected. =============================== =========== File_List [+append] -F[+] =============================== =========== Specifies a file that holds a listing of your files. This file is modified when a change to an archive file occurs when running the Add, Convert, DElete, Header, Redate, Test, SCan, and STrip operations (and regardless with the Patch operation). For example, the Maximus BBS program uses a file called FILES.BBS to hold all the files in a directory available for download. By using this option, all occurrences of the old file name in FILES.BBS will be replaced with the new file name, (size and date too for RBBS and GT). It works with Opus 1.0x and 1.1x, RBBS, and Gt-Powercomm file listings... You take your chances otherwise.... The +append specifies that AU is to append a new line containing filename (date and size) and description for files that do not already exist in the file listing file. You may specify up to 10 such files. -F and -F+ are the equivalent command line parameters. 12 ======================= Force_Mode RBBS/OPUS/GT ======================= Normally AU will will try to detect what type of file_listing file is being appended to. If this option is used, AU will append this type of line to the file_list file(s) regardless. Evidently the detect fails in some cases, so this option was supplied mostly as a work around for now. ===================== Desc_File ===================== Specifies a file inside the archive that contains the description to add to the File_List file. For example the file file_id.diz is fairly standard in the Pcboard world right now. A wildcard is accepted, in which case the first file matched would be used. The File_List +append option is required for this to work. =========== Description =========== Description to attach to lines that are appended to the files_listing files when Desc_File doesn't exist. The File_List +append option is required for this to work. ==================== ========== Self_Extracts ON/off -Xon -Xoff ==================== ========== AU is capable of recognizing when a .COM or .EXE file is a self extracting archive file. This option is available with most of the operations. When set ON, it will process this type of file. It has been made to work with LHA[RC], PKZIP, ARJ, RAR, PKARC, and PAK with most version produced. It also works with SEZ 2.30 self extractors. This is a seperate product that creates self extracting files for ZOO. The corresponding command line options are -Xon and -Xoff. 13 ***************************************************************** Operations ***************************************************************** ***************************************************************** AAA DDDD DDDD A A D D D D AAAAA D D D D A A D D D D A A DDDD DDDD ------ Operation=ADD This operation allows you to add file(s) to archive(s). If adding to only one archive and it does not exist, the archive is created. ***************************************************************** The following are the options in the .cfg file: ============ Default_Type ============ This is the archive type to build if creating a new archive and the extension was not specified. The value can be either the name of the extension such as LZH, or the AU internal archive number (useful for where the same extension is used by multiple archivers such as .ARC). ============ ============ Paths ON/off -PAon -PAoff ============ ============ Use this option to specify whether paths should be stored with the files when added to the archives. The following are the command line parameters: ========= -D ON/off ========= Specifies whether or not to retain the old date after processing takes place. ----- The following format is used: ----- AU Add [options] archive_file_spec [files_to_add]... Examples: AU Add new.ZIP *.dat ==================== Add to the file new.Zip (create if it does not exist) all the *.dat files in the current directory 14 AU add -# c:\temp\mysys.txt =========================== Add to all archive files in all the download directories the file c:\temp\mysys.txt. Make sure you have sufficient space before attempting something like this. The path is important in this case as AU has to change directories for the -# filespec. AU a newfile ============ Add all files in the current directory to archive file(s) newfile.* If none match, then generate a new archive of the type specified by the Default_Type option in the .cfg file. 15 ***************************************************************** CCCC OOO M M PPPP AAA RRRR EEEEE C O O MM MM P P A A R R E C O O M M M PPPP AAAAA RRRR EEEE C O O M M P A A R R E CCCC OOO M M P A A R R EEEEE ------------------- Operation=COMPARE This operation allows you to compare two file listings to find the differences. ***************************************************************** This option assumes that the names of the archive files are at the front of the lines and are capitalized. Lines that start with space, a dash, or a non file name are ignored, these are assumed to be comments, stats and other information. Lines starting with "area x" where x is a number are detected and the area number is displayed with the filenames. ----- The following format is used: ----- AU COmpare file1 [file2] [file_spec] file1 and file2 are the 2 file listings you wish to compare. If file_spec is specified, then only files matching will be listed. For example all (or at least most) of the apogee games have a file spec of #1*.*. You can find the apogee games that you are missing that somebody else has this way. If file2 is not specified then a listing of files matching file_spec (*.* if not specified) from file1 are listed. 16 ***************************************************************** CCCC OOO N N V V EEEEE RRRR TTTTT C O O NN N V V E R R T C O O N N N V V EEEE RRRR T C O O N NN V V E R R T CCCC OOO N N V EEEEE R R T ------ Operation=CONVERT This operation allows you to change your archived files from one format to another. ***************************************************************** The following are the options in the .cfg file: ==================== ========== Archive_Type nn/.ext -An -A.ext ==================== ========== Specifies the format you want to convert to. You can specify this one of two ways. You can use the archive number (listed at the top ot the .cfg file), or you can specify the archive extension such as .zip or .lzh (the dot is not necessary). If the option is commented out, or -A0 is used, then the archives will be converted (if necessary) such that they retain their original type (ie .zip files will convert to .zip files, .lzh files will convert to .lzh files). AU will ask you if this was intentional before proceeding. ============================== ========================= Date_Retain ON/off/last/first: -Don -Doff -Dlast -Dfirst ============================== ========================= When set to ON, this option allows you to retain the date of the old archive on the new. If it is set to LAST, then the new archive file will be marked with the date of the most recent file contained inside it. FIRST likewise chooses the oldest. If it is set OFF, the new archive is marked with the current system date and time. =============== ========== Recurse ON/off: -Ron -Roff =============== ========== Works similarly to the way unarc does except that the files are left grouped in the same grouping (only with a different archive format). If you had two .PAK files within one .ZIP file and you converted to the LZH format, you would end up with two .LZH files within one .LZH file. ==================== ========== Self_Extracts ON/off -Xon -Xoff ==================== ========== Specifies whether or not self extracting archives should be converted as well as regular archives. 17 ============ ============ Paths ON/off -PAon -PAoff ============ ============ Used to turn on/off the conversion of archive paths if they exist. Normally you want this on, TURNING THIS OFF COULD RUIN YOUR ARCHIVES on a couple of levels. First the programs inside the archive are likely expecting the data to be stored in certain subdirectories, and when they are not, chances are something won't work. Secondly you can lose files if the same file exists in two subdirectories and you choose to turn paths off, the archiver is going to have to discard one of the files. The only reason this option was left in is if somebody wanted to purposefully collapse out all the paths from an archive. ===================== ============ Keep_Smallest on/OFF: -KSon -KSoff ===================== ============ If the new archive is actually larger than the old and Keep_Smallest is ON, the old archive will remain and the new one will be discarded. With this option ON, you ensure optimum space savings at the possible loss of consistency (as in all archives being the same type). ================ ============ Keep_Old on/OFF: -KOon -KOoff ================ ============ If turned ON, this option allows you to keep the old archive as well as the new (provided they do not end with the same extension). This option is useful for comparing archivers, otherwise it wastes disk space. =================== ============ Convert_Old ON/off: -VOon -VOoff =================== ============ This option specifies whether archives of the same type, but of an older format, should be converted. An example of this would be an archive that was created under pkzip version 1.0. If you were converting to zip (AU assumes you have the newest of each) and this option is turned on, then that file would be converted, otherwise it would be passed by. In most instances converting to a newer version will save disk space, in some cases 10-15%. Not all of the archive types allow for detection of the version in which the archive was made. For example, it is not possible to distinguish a version 1.0 arj file from a 2.0 arj file (at least none that I know of). =========================== ============ Convert_Non_Optimal ON/off: -VNon -VNoff =========================== ============ Some of the archivers have extra options which allow you to compress the file just a little bit more, usually at the cost of some speed. Set ON, this option allows you to convert archives which were not build this way. For example pkzip comes with an extra compression option (-ex) which gives you about a 1-3% better compression ratio. With this option turned ON, archives 18 which were not built with the -ex compression option would be converted and you would save a little space. For some archivers, it is not possible to recognize if a file was built optimally. ========================== ============ Convert_Regardless on/OFF: -VRon -VRoff ========================== ============ For reasons listed above you may want to convert regardless of whether AU believes an archive is new or old, optimal or not. AU simply can't tell in some cases, plus AU cannot magically handle versions of archivers which appear after its release. ========================= Execute_Before : ========================= If you include this, AU will execute this command just before the archive file is dearchived. Inside the command, %f is expanded to the file name (before the conversion). The current directory when this command executes is the directory in which the file to be converted resides. You can use as many execute_before statements as you need. AU will execute them in the order you have them listed. ========================= Execute_During : ========================= Similar except the command is executed after decompressing and before recompressing. The current directory, when this command executes, is a temporary that AU creates (AU94). This is the root directory in which the dearchived files reside. There may be additional sub-directories under this directory if the original archive contained paths and the paths option is turned on. Once again, you may specify as many of these commands as you like. %f substitution does not take place on this option (it doesn't make sense in this case). ======================== Execute_After : ======================== Same as the Execute_Before option except the command is executed after the file has been converted. %f in this case is translated into the new archive file name. ===================== ==================== Warn_Path on/OFF/skip -WPon -WPoff -WPskip ===================== ==================== Use this if you would like AU to warn you if the archive it is about to convert will generate additional paths (and Paths option is set on). Set ON, it will list out all the paths that will be generated, then askes if you would like to proceed. This is for information only as the paths will be cleaned up behind. If set to SKIP, the archive will not be converted if it contains paths. 19 ========================= ==================== Warn_Non_DOS ON/off/skip -WPon -WPoff -WPskip ========================= ==================== Use this if you would like AU to warn you if the archive it is about to convert contains file names that are foreign to DOS, such as Amiga files names which can be up to 32 bytes long. These file names will be truncated if you go ahead and convert, and it is possible you could lose file(s) if more than one start with the same 8 characters. If this option is set ON, it lists out all the files that are non-DOS and lets you decide if you would like to proceed. If set to SKIP, such files will not be converted. ======================= ==================== Warn_Hidden ON/off/skip -WHon -WHoff -WHskip ======================= ==================== Use this if you would like AU to warn you if the archive it is about to convert contains files that have hidden or system attributes. These could be a potential problem if the target archiver skips over these files. If this option is set ON, it lists out all the files that have these attributes and lets you decide if you would like to proceed. If set to SKIP, such files will not be converted. ======================== Dont_Process ======================== Specifies files NOT to process. Full AU wildcards (refer to file_specs section) are allowed, The current limit is 50 dont_process commands. Qmodem Docs are an example of where it is crucial not to process (particularly in convert). ============= Threshold ============= Where n is a number. If the number of files matching your file_spec matches or exceeds this number, then you are given a warning and asked if you want to continue or not. =============== ========== Summary ON/off: -Uon -Uoff =============== ========== When set ON, this option gives you a display of how many bytes you saved (or unfortunately lost) when it is through, and the effective number of bytes you saved in diskspace. It also shows how much time was spent in the archiving process (so you can compare different archivers), and how much total time it took (ie archiving time + unarchiving time + time to load and change dates etc...). 20 The following are the command line parameters: ===== -N ===== If you do not wish to do the whole directory, this option will allow you to specify how many files it is to convert before stopping. If you run a BBS, you can put this in your daily maintenance and do only a handful a day. Do not use this option with Convert_Regardless ON, otherwise it will convert the same first n files each time you run it. CAUTION!: Backup your files before you run any mass conversion program. As with any program that does intense disk I/O, there is the potential for data loss. AU and the archiving/dearchiving programs are going to do a great variety of I/O operations including, making, deleting and removing directories, deleting files, renaming files, date stamping files, changing file listing file(s), and it does this over and over for each archive processed. There are too many variables to see every possible problem that can occur. Also make sure you have sufficient space such that the largest archive file can be fully decompressed and recompressed into yet another file. To use, type: AU C [command line options] [file_spec(s)] If the file_spec is left blank it will convert the whole current directory. Wildcards are allowed if you want to convert only part of the directory. The file_spec can also take a source directory so you can convert a directory other than the current. If converting a large number of files, plan on it taking a while, even on a fast machine. 21 ***************************************************************** DDDD EEEEE L EEEEE TTTTT EEEEE D D E L E T E D D EEEE L EEEE T EEEE D D E L E T E DDDD EEEEE LLLLL EEEEE T EEEEE ------ Operation=DELETE This operation lets you remove file(s) from archive file(s). ***************************************************************** The following are the command line parameters: ====== -@File ====== Specifies a list of files that are to be deleted. One of the best uses is for "garbage" cleanup. As archives bounce from BBS to BBS they tend to accumulate ads and other nonsense files, sometimes to the extent that the original files took less space than the appended junk. To solve this problem, build a file containing a list of junk files, then use this option to do a mass deletion. In conjunction with the strip operation, archives can be kept relatively clean in a fairly automated fashion (You still need to keep an eye out for new junk filenames and add them to the list). Use caution when using this option. Wildcards are legal inside the @file, and you can delete more than was intended if care is not taken. ========= -D ON/off ========= Specifies whether or not to retain the old date after processing takes place. ----- The following format is used: ----- AU DElete [options] archive_file_spec files_to_remove... 22 ***************************************************************** DDDD IIIII RRRR D D I R R D D I RRRR D D I R R DDDD IIIII R R ------------- Operation=DIR This operation displays a list of files similar to the DIR command that comes with DOS. This option allows you to control the order in which file components such as name, size, date, time, and CRCs are displayed. ***************************************************************** The following are the options in the .cfg file: =================== ========== List_Order xxxxxxxx -Lxxxxxxxx =================== ========== This specifies the file components and the order in which they are displayed. xxxxxxxx is a string of characters up to 50 long which control the display. The following is a list of the characters and what they display: A - Age in days of file D - Date E - file Extension N - file Name P - file Prefix S - Size T - Time X - 16 bit CRC Y - 32 bit CRC _ (underscore) - one extra space . (period) - no spaces between items In front of each of these characters, an optional size specifier may be pre-appended. This can be used, for example, to shrink the file size display from 10 characters (default) to 8 (i.e. - LN8S) For example to display a directory of filenames and 32 bit CRCs the command would be: AU dir -LFY ----- The following format is used: ----- AU DIr [options] [file_spec]... 23 ***************************************************************** DDDD U U PPPP EEEEE SSSS D D U U P P E S D D U U PPPP EEEE SSS D D U U P E S DDDD UUU P EEEEE SSSS ------------- Operation=DUPES This operation helps you in locating duplicate files. It does not base its search on the name of the file but rather the contents of the file. The CRC and file size for each file is kept in a data file. When the process is finished, it looks inside this data file for duplicates. The CRC is taken directly out of the archive files, and is calculated for the files not inside an archive. A mixed set of 32 bit type archives (such as store different CRC's. The archive files themselves are included in this search. For example, 2 identical .LZH files will appear as duplicates as would their contents. ***************************************************************** The following are the command line parameters: ============== -A ON/off/only ============== This switch lets you specify whether it should look inside archives or not. If this option is set to "only" it will include only files included inside the archive files. This way it will not find duplicate archive files, just the files inside, but it will execute faster. Set OFF it will not look inside the archive. This way it will find duplicate archive (and other non archive) files but not duplicate files within archives. Once again, a little faster than with the option set ON, but the least powerful of the 3. Set ON it will process all files inside and outside archives as well as the archive files themselves. ===== -T ===== This option sets the size threshold. Files smaller than this size are ignored. Smaller files like some of the .BGI files and such seem to make up a lot of the duplicates. This will let you filter so you can find the larger files without having to weed through a sea of small files. The default is 1 byte so that empty files will be ignored. === -16 === Specifies that non-archive files are to have 16 bit CRC's taken on them as opposed to 32 bit. If you are checking mostly .LZH files and non-archive files then you want to use this option. 24 === -32 (default) === Specifies that non-archive files are to have 32 bit CRCs taken on them as opposed to 16 bit. If you are checking a mixture of mostly .ZIP and/or .ARJ and non-archive files then you want to use this option. It will simply not find duplicates between 16 bit CRC archives and 32 bit CRC archives. If you have lots of is to run through twice, once with the -1 option, once with the - 3 option. This at least will find the duplicates in the non archives. == -V == Specifies that a verbose listing of all the files processed will be displayed as they are processed. ======== -W ======== This is the work path directory. If you have a good sized ram drive you can improve the speed and save a little wear and tear on the HD. The dupes operation stores all its info in a data file, each record consuming 120 bytes. Make sure you have enough space on the HD or work directory left to hold this data file. One record is required for each file including the files inside the archives. From experience you can count on about a meg per 100 megs searched. The process also takes a while, about 30 minutes per 100 megs on a faster machine. ======== -D ======== This is the data file to use. If not specified then a temporary data file will be created for you then removed when it is done displaying a listing of the duplicates. If specified then the file will not be deleted and can be used again to incrementally search for dupes as you obtain more files. Do not process the same set of files in the same data file, they will appear as duplicates of themselves. ======== -L ======== This is the log file to use. The log file will contain only the duplicate file information. It will not contain the verbose listing of files processed, or the stats. 25 ----- The following format is used: ----- AU DUpes [options] [file_spec]... Example: AU du -dc:\dupes\dupes.dat -t1000 -# ==================================== Check for duplicates in all the downloadable files in a BBS system. Place the information in a data file called c:\dupes\dupes.dat. Ignores files under 1000 bytes. 26 ***************************************************************** FFFFF IIIII N N DDDD F I NN N D D FFF I N N N D D F I N NN D D F IIIII N N DDDD ------------- Operation=FIND This operation finds files including those inside archive files (one level deep). ***************************************************************** The following are the command line parameters: ============== -R on/OFF/only ============== This option specifies if AU should look for regular files (files not included in archives). Set ON it will, set OFF it will not, set to ONLY and it will only search for regular files (it will not search inside archive files). If you know the file is not inside an archive, the operation will run faster with -Ronly. ========= -M on/OFF ========= Specifies whether or not to mention only the archive file it was found in. This can cut down on the amount of information printed. ========= -Q on/OFF ========= If set on, this option will force AU to quit after the first match and change to the directory found. Filters on the searches: ------------------------ The following allow you to find files not so much by their names but by their properties. ========= -N on/OFF ========= Search for Non-dos file names only. This can help you locate files from other systems. ========== -PA on/OFF ========== Search for files (inside archives) containing paths 27 == -V == Specifies that a verbose listing of all the files processed will be displayed as they are processed. In this case, it will show "(Not found)" for each archive that does not contain the file(s) being sought. ----- The following format is used: ----- AU Find [options] [filespec(s)] match_pattern 28 ***************************************************************** FFFFF IIIII X X CCCC RRRR F I X X C R R FFF I X C RRRR F I X X C R R F IIIII X X CCCC R R -------------------- Operation=FIXCR This operation fixes text files that have carriage returns without linefeeds. Such files often comes from other operating systems and when typed in DOS are hard to read (all the lines are smudged together) ***************************************************************** ----- The following format is used: ----- AU FIXcr [file_spec]... Only files that need changing are changed, and binary files (such as executables) are confirmed before processing. This is a very simple utility. There are no options at this time. It does not process files inside archives. 29 ***************************************************************** H H EEEEE AAA DDDD EEEEE RRRR H H E A A D D E R R HHHHH EEEE AAAAA D D EEEE RRRR H H E A A D D E R R H H EEEEE A A DDDD EEEEE R R ------ Operation=HEADER This operation lets you add or replace header comments in archive files. ***************************************************************** I have only played with archive comments a little bit so far and only know how to get good results with .ZIP, .PAK, .ARJ, and .ZOO files. PAK uses an echo response file method, the others use redirection. Pkzip senses multiple lines, the rest of the archivers max out at 1 line so I am sure I have plenty of work left to do on this operation. Self-extracting files are not supported at this time. The following are the options in the .cfg file: ================== Header_File ================== This specifies the file that contains the comment you want placed into your archive files. If you specify more than one, then it chooses between them randomly (unless the -H or -N option is used.) Use full paths on the file if you plan on doing more than one directory worth of archives. If you are adding large comments to many files, make sure you have sufficient space left. The following are the command line parameters: ======== -H ======== Lets you select a single Header_file to use exclusively. It does not need to be in the .cfg file. ======== -A ======== Lets you add to the list of Header_files in the .cfg file. ===== -N ===== Specifies that the nth header file should be used exclusively. If you have not specified that many in the .cfg file, an error will be displayed. ----- The following format is used: ----- AU Header [options] [file_spec]... 30 ***************************************************************** RRRR EEEEE DDDD AAA TTTTT EEEEE R R E D D A A T E RRRR EEEE D D AAAAA T EEEE R R E D D A A T E R R EEEEE DDDD A A T EEEEE ------ Operation=REDATE This operation allows you to change the date/time on archive files to that of either the most recent or the oldest file in the archive. ***************************************************************** The following are the options in the .cfg file: =========== ========== Time on/OFF -Ton -Toff =========== ========== Specifies whether or not you want the time of the file changed as well. The AU SCan operation changes the time of archive files as a mark that the file has been checked, so use this option only if it is important to you and you do not want to use the virus scanner part of AU (with the option to mark). =================== ========== Allow_Future on/OFF -Lon -Loff =================== ========== Specifies whether or not to allow files to be dated into the future. Some files are occasionally dated wrong for whatever reason and can end up causing the archive file to be redated into the future. This option prevents that from happening. ======= ===== Age -A ======= ===== This option specifies that an archive file must be at least n days old before being redated. This allows BBS operators to keep new additions from being redated for a while. The default in the The following are the command line parameters: ============= -D LAST/first ============= Specifies whether to redate the archive file as the oldest (last) or newest (first) file inside the archive. Last is the default and is what is most typically used. ----- The following format is used: ----- AU Redate [options] [file_spec]... 31 ***************************************************************** SSSS CCCC AAA N N S C A A NN N SSS C AAAAA N N N S C A A N NN SSSS CCCC A A N N ------------- Operation=SCAN This operation allows you to test the files within the archives for viruses. It also allows you to test the self extract archives themselves. ***************************************************************** The following are the options in the .cfg file: ============== ========== Recurse ON/off -Ron -Roff ============== ========== This option specifies whether or not archives within archives should be scanned for viruses as well. Normally it is a good idea to have this option turned on since the scan is more complete. However the operation is a little slower with it turned on because AU needs to test each file to see if it is an archive. ==================== ========== Self_Extracts ON/off -Xon -Xoff ==================== ========== Specifies whether or not self extracting archives should be tested as well as regular archives. Normally this is a good idea. ============ ========== Pause ON/off -Pon -Poff ============ ========== Specifies whether or not to pause and wait for a keystroke after each infected archive is found. The infected files are listed again at the end of execution so there is no critical need to leave this option on. =========== ========= Version -Vn =========== ========= Specifies the version of the virus scanner software you are running. This number (added to the random number explained below) will be used to modify the time stamp of the file as a way of marking the file so that it does not need to be tested again under the same version. Using a value of 0 will leave the timestamp untouched but the file will be rescanned every time. ========== Random ========== This is a number you choose that will be added to the version 32 number to make it harder for a hacker to time stamp a file to pass through the scanner as if it had already been tested. AU will not let you use the scan operation until you have replaced the value of 0 with your own number (1-32000). ============== ========= Newer_than -Nn ============== ========= Specifies the number of scanner versions that must go by before the archive file is rescanned. This allows you to scatter your virus testing a little. The number you use here is the window in which files can slip through unprocessed because their timestamp coincides with the time range that marks a file as being recently scanned. Keep it small. ======================== Virus_Rename ======================== This option if used specifies how virus infected files are to be renamed. Typically the extension is renamed by using a file_spec of *.BAD or *.?!?. Note that with *.?!? it is easier to tell what type of file it is. The following are the command line parameters: ======= -W ======= Specifies an alternate work directory were the files will be dearchived. Using a large ram drive can speed the process up and save wear and tear on the HD. ----- The following format is used: ----- AU SCan [options] [file_spec]... 33 ***************************************************************** SSSS IIIII ZZZZZ EEEEE S I Z E SSS I Z EEEE S I Z E SSSS IIIII ZZZZZ EEEEE ------------- Operation=SIZE This operation allows you to find out how many bytes are packed away inside your archived files. When finished, it displays a table of how many bytes you have stored in each of the archive types, files in self extracting archives (if -Xon is used), and files not archived. ***************************************************************** The following are the command line parameters: ========= -X ON/off ========= Specifies whether or not self extract files will be included in the calculations. ========= -N ON/off ========= Specifies if you want non-archive files included are not. This effects the totals including total compression ratio. ----- The following format is used: ----- AU SIze [options] [file_spec]... 34 ***************************************************************** SSSS TTTTT RRRR IIIII PPPP S T R R I P P SSS T RRRR I PPPP S T R R I P SSSS T R R IIIII P ------------- Operation=STRIP This operation lets you strip off the comments from archive(s). ***************************************************************** This is more or less just a short cut for making an empty file and calling the Header operation, then deleting the empty file. As with the Header operation, self_extract archives are not supported at this time. ----- The following format is used: ----- AU STrip [options] [archive_file_spec]... 35 ***************************************************************** SSSS W W EEEEE EEEEE PPPP S W W E E P P SSS W W W EEEE EEEE PPPP S W W W E E P SSSS W W EEEEE EEEEE P ------------- Operation=SWEEP This operation allows you to execute a command on a set of directories. ***************************************************************** Refer to the @ response file and -# BBS directory as they are what make this more than an ordinary sweep utility. Use the global -SD option to recurse into subdirectories. The options that are used with the SWeep operation MUST come before the execution command since the command may have parameters that are the same as the options for AU. The following are the command line parameters: ========= -B ON/off ========= This option allows you to break and wait for a keypress before each directory change takes place. When it does ask for a keystroke, pressing control C will abort the program entirely. The process may also be stopped by pressing any key then answering N to the continue question. The command you are running may "consume" your keystrokes and so the -B was introduced. ========== -G, -L, -P ========== The command line options -G, -L, and -P are used to define the character you wish to set up as the Greater than, Less than, and Pipe (|) characters respectively. >, <, and | when used in the command, such as AU SW DIR | SORT apply to the entire command including the output of AU. In this case the entire contents are dumped into the SORT filter because DOS grabbed the | and AU never even gets to look at it. If you need the | SORT to apply to each directory then you need to specify a character which AU will internally convert to the |. DOS does the same thing with > and < so the same thing applies. The defaults that are used are } for >, { for <, and ~ for |. The internal }, { and ~ override the external >, < and |, so doing something like: AU SWEEP DIR *.LZH }}temp.dat >temp1.dat will put the directory contents in temp.dat and the BBSWEEP title and messages in temp1.dat. Note the use of }} for >>. 36 ----- The following format is used: ----- AU SWeep [options] path(s) command [parameters for that command] Some Examples: ============== AU SWEEP -# FILL *.* A: ---------------------- Runs FILL *.* A: on all your BBS directories. AU SW @list.rsp DIR }}c:\listing\files.lst ------------------------------------------ Runs DIR >>c:\listing\files.lst on the directories inside the file list.rsp AU SW c:\ -SD del *.bak ----------------------- Runs del *.bak on the whole C: drive. No memory swapping is done at this time for the command you are calling. Figure that the command being executed will have about 100K less conventional memory to work with than it would if executed raw. It is not a good idea to run AU SW AU add/convert/test/unarc/scan, as now the archiver is down 200+ K. 37 ***************************************************************** TTTTT EEEEE SSSS TTTTT T E S T T EEEE SSSS T T E S T T EEEEE SSSS T ------ Operation=TEST This operation allows you to test your archive files to make sure they are not corrupt or damaged. ***************************************************************** The following are the options in the .cfg file: ============ ========== Pause ON/off -Pon -Poff ============ ========== Specifies whether or not to pause and wait for a keystroke after each corrupt or damaged archive is found. The corrupt files are listed again at the end of the execution so there is no critical need to leave this option on. ===================== Rename_To ===================== Specifies what the corrupt files should be renamed to when found. If this option is commented out, then the file is not renamed. The can contain wildcard characters and the default is *.?$?. This way you can tell what the format of the file is (.Z$P, .L$H, P$K, .A$C, .A$J, .Z$O, .D$C are all recognizable). The following are the command line parameters: === -Q === Use this option for a quick test only. AU will not call the archiver's test option, but will take a cursory scan of the file's header info to see if any of the files inside have negative sizes or whatnot. This option should find severely damaged archive files. ----- The following format is used: ----- AU Test [options] [file_spec]... AU exits with an errorlevel of 1 if any damaged archives are found and 0 if everything tested passed. If an archive file fails the test, AU then checks the file to see if it is password encrypted. If so, the file is not renamed and the error will specify that the file is encrypted, not corrupt. Currently only Zip and Arj passwords can be detected. PAK and ARC7 passwords encrypt the data but leave no other indicator that 38 a password is required. 39 ***************************************************************** U U N N AAA RRRR CCCC U U NN N A A R R C U U N N N AAAAA RRRR C U U N NN A A R R C UUU N N A A R R CCCC ------ Operation=UNARC This operation allows you to unarchive files compressed under all the archivers without having to remember how to unarc it. ***************************************************************** AU does not do the actual uncompressing, but acts as a shell (or glorified switch) that automates running the uncompressing programs. The following are the options in the .cfg file: ======================== Dont_Process ======================== Specifies files NOT to process. Full AU wildcards (refer to file_specs section) are allowed, The current limit is 50 dont_process commands. Qmodem Docs are an example of where it is crucial not to process (particularly in convert). ============= Threshold ============= Where n is a number. If the number of files matching your file_spec matches or exceeds this number, then you are given a warning and asked if you want to continue or not. This should stop an accidental run-away unarc of a download directory for example. ==================== ========== Delete_Behind on/OFF -Don -Doff ==================== ========== This option specifies whether you want the original archive file deleted after it is successfully unarced. -Don and -Doff are the command line options. Note: If the program stops, then it is likely waiting for you to press Y or N to override a file that already exists. This is no longer the problem it once was, but may still happen on some archivers that don't provide an overwrite option. ============== ========== Recurse on/OFF -Ron -Roff ============== ========== Sometimes archives files contain other archives. Some of the PC Magazine Volume disks come like this, and there are a variety of other examples. You may wish to unarchive those files as well. With recurse set ON this is exactly what happens. After unarcing 40 the main archive file(s) it will proceed to check the files that it/they split into. It will go as many levels deep as necessary. ==================== ========== Self_Extracts ON/off -Xon -Xoff ==================== ========== AU is capable of recognizing when a .COM or .EXE file is a self extracting archive file. When set on, it will unarc this type of file (by simply executing it for you). Refer to the AU in general section for the specifics of what it can and can't do. ========================= Scan_Self_Extracts ON/off ========================= Tells AU whether or not to scan self extracting archives before unarcing them (ie running them). Normally this is a good idea, but if you have no virus scanner available to you, then turn this option off. ============ ============ Paths ON/off -PAon -PAoff ============ ============ Used to turn on/off the creation of archive paths if they exist. Normally you want this off when unarchiving mail packets, otherwise keep this option on. ===================== ==================== Warn_Path on/OFF/skip -WPon -WPoff -WPskip ===================== ==================== Use this if you would like AU to warn you if the archive it is about to unarc will generate additional paths (and Paths option is set on). If this options is set ON, it will list out all the paths that will be generated, then askes if you would like to proceed. If set to SKIP, archive files that contains paths will not be unarced. ======================== ==================== Warn_Non_DOS ON/off/skip -WPon -WPoff -WPskip ======================== ==================== Use this if you would like AU to warn you if the archive it is about to unarc contains file names that are foreign to DOS, such as Amiga files names which can be up to 32 bytes long. These file names will be truncated if you go ahead and unarc, and it is possible you could lose file(s) if more than one start with the same 8 characters. If set ON, it lists out all the files that are non-DOS and lets you decide if you would like to proceed. If set to SKIP, such archives will not be unarced. ======================= ==================== Warn_Hidden ON/off/skip -WHon -WHoff -WHskip ======================= ==================== Use this if you would like AU to warn you if the archive it is about to unarc contains files that have hidden or system attributes. This is a potential problem since you may end up with files you cannot see. If set ON, it lists out all the files 41 that have these attributes and lets you decide if you would like to proceed. If set to SKIP, such archives will not be unarced. ========================= ==================== Warn_Existing ON/off/skip -WEon -WEoff -WEskip ========================= ==================== Use this if you would like AU to warn you if the archive it is about to unarc contains files that already exist on the destination. If set ON, it lists out all the files that will be overwritten if you proceed. If set to SKIP, such archives will not be unarced. This is somewhat different from what the archiving programs do. AU lists out all of the files for the archive instead of asking the user at each file. This is perhaps not as flexible, but it is more convenient. This also solves the problem of pkunzip returning an ambiguous errorlevel when the user chooses Yes to overwrite. Note that -Yon overpowers this option. The following are the command line parameters: ======= -A ======= Although not recommended, the -A may also be used to pass in additional parameters to the uncompressing program. ========= -Y on/OFF ========= Specifies whether or not you want AU to answer Y (for yes) to the questions the unarchiving programs may ask. Such questions include "file already exists, Overwrite?" and "Do you wish to continue self extraction?". AU will also not stop and verify on a threshold exceeded condition, nor will it bring up the warnings as controlled by the WARN_xxx options. Normally you would not want to use this option as those "yes/no" questions that are asked are there for good reasons. The only good reason to set this on is if you have an automated process. The ASCAN operation calls the UNARC operation with -Yon because it is a process that can take several hours, plus it deletes the extracted files when finished anyway. ----- The following format is used: ----- AU U [options] [[dir\]file_spec] [extract_file_spec] [dest_dir\] If you leave the file_spec blank AU will unarc the whole directory (the files that are in archive format that is). If you want move one file off to a temporary area for examination, unarchive it, then move it to a download area, then just type AU U at the temporary directory. You can use wildcards if you find the need to. Also, you do not have to specify the extension if you are doing just one file. ie: AU U ROUND42 will automatically add .* to the end for you. The filename can also have a path 42 attached in front of it. ie AU U d:\test will unarc all the archive files on the d: drive under the \test directory. The extract file_spec is a filter on which files to pull from the archive. If none are specified it extracts *.* from the archive. Both the command line options and the destination are optional. The destination is where you want the archived files to unarc to. If the destination path is used, the archive files must be specified otherwise it will treat the destination as the source. Examples: AU U *.* c:\temp ================ Will unarc all archive files in the current directory that and place their uncompressed files in c:\temp. The *.* is necessary for without it AU would try to unarc the c:\temp directory.... AU U d:\download\recent\round42 =============================== Will unarc the file round42.* from the d:\download\recent\ directory (or all the files in d:\download\recent\round42 if round42 is in fact a directory) and put its uncompressed files in the current directory. AU U \file\net\nodediff f:\ =========================== Will unarc nodediff.* from the \file\net directory onto the f:\ directory. AU U c:vol*n21 *.com .. ======================= will unarc the .com files from vol*n21.* residing on the c: drive and put them on the parent directory of the current drive. 43 ***************************************************************** V V EEEEE RRRR SSSS IIIII OOO N N V V E R R S I O O NN N V V EEEE RRRR SSS I O O N N N V V E R R S I O O N NN V EEEEE R R SSSS IIIII OOO N N ------------- Operation=VERSION This operation attempts to determine a product's software version number. It uses some matching techniques to try and determine the probability that a number appearing in a file is a version number, then displays the version number that it believes is most likely to be correct. At this time the operation is about 60-70% accurate. Sometimes numbers other than the correct version number simply overwhelm the stats table and it will display an incorrect result. Ironically enough this operation returns the wrong value for the AU package itself. ***************************************************************** The following are the options in the .cfg file: =========================== Weight_File =========================== AU give you a certain amount of control as to how files are weighed when taking version numbers into account. .EXE files for example are set in the .cfg to be weighed much less than .DOC files which are in turn weighed less than FILE_ID.DIZ. The defaults in the .cfg file are best overall guesses which should be effective for most instances. There are no doubt files for which these weights will actually prove a hinderance rather than a help, but this operation can never be 100% accurate. ========================== Weight_String ========================== You can also control the relative weight of a version based on the string that appears just in front of it. Once again, these are only best guesses. A string containing simply "v" or "r" has proven not to work where binary files are concerned. There are other internal weightings used to improve the odds of finding the correct string. Version strings that start with a period, contain more than 2 periods, are longer than 7 characters, contain wierd sequences of numbers and alphabet characters are weighed less than normal looking version strings. For example, 1.16 is going to be weighed more heavily than .7.e which itself will be weighed more than .e7f4.3.f. The more rules the string breaks the less it will be weighed. The following are the command line parameters: 44 ========= -D on/OFF ========= If this option is turned on, it will display all the version strings that it took into account and how it weighted each of them. This is more of a debugging tool than anything else, but with this option turned on you can get a feel for why AU returned an incorrect value. ===== -N ===== This option lets you determine how many version strings AU will save in memory. The default is 20. This is also use mostly as a debugging tool. If the correct version does not appear when using 20 then upping this number may cause it too appear. AU's correct version does not appear in the list until this number is set to about 50 because it contains so many other numbers inside this doc file and the executable. Examples: AU VE AU116.ZIP --------------- Attempt to determine the version of the archive AU116.ZIP. It will process all the files in the .ZIP the accumlate the results. AU ve readme.1st -d+ -n50 ------------------------- Determine the version of the single file readme.1st. Display the results and store 50 version numbers in memory. 45 ***************************************************************** V V IIIII EEEEE W W V V I E W W V V I EEEE W W W V V I E W W W V IIIII EEEEE W W ------ Operation=VIEW This operation allows you to view the contents of archives. It removes the need to remember which options to use on which archivers, and in fact the archive programs do not need to even be present since AU parses the archive contents on its own. ***************************************************************** The following are the options in the .cfg file: ==================== ========== Self_Extracts ON/off -Xon -Xoff ==================== ========== Specifies whether or not to view self extract archives. ============ ============ Paths ON/off -PAon -PAoff ============ ============ Used to turn on/off the listing of paths inside the archive. The files that have a path attached to them normally take 2 lines (and therefore ruin any type of sort you want done on it). =============== ===== Name_Length -N =============== ===== Lets you specify the length of the filename before 2 lines are required. Useful for displaying non-dos archives where the file names can be lengthy. In order for this to look nice, the -L command should be used so that the information doesn't wrap to the next line (this means you have to decide what pieces are not important). =================== ========== List_Order xxxxxxxx -Lxxxxxxxx =================== ========== This specifies the archived file components and the order in which they are displayed. xxxxxxxx is a string of characters up to 50 long which control the display. The default is "- LNOP%DTCMS". The following is a list of the characters and what they display: % - percent compression C - CRC D - Date M - Method N - file Name O - Original Size P - Packed Size 46 S - Special archive attributes T - Time _ (underscore) - one extra space Examples: AU V round42.lzh ---------------- View the contents of round42.lzh normally AU V -NE -LDTNOP% *.lzh |sort >temp.dat --------------------------------------- Produce a file called temp.dat containing all the files contained inside .LZH files in the current directory sorted by date+time+name The following color scheme is used: For the method: optimal archive methods are shown in green, an example would be "defl -ex" which is the -ex option used in pkzip 2.x. Non optimal methods are shown in cyan, and example would be "Imploded", the method used in pkzip 1.x. Unknown methods are shown in yellow, "Stored" is shown in white. Realize the optimal is only as good the release of AU you are using. For the archive type: Green is for the latest version (or close enough to the latest version that these is no difference in compression), cyan is for older versions, yellow is for undeterminable versions. For example "lha 2.x" would show in green, where "Lharc 1.x" would show in cyan. For the special archive attributes, a purple P indicates that the file is password encrypted. 47 ***************************************************************** W W H H AAA TTTTT IIIII SSSS W W H H A A T I S W W W HHHHH AAAAA T I SSS W W W H H A A T I S W W H H A A T IIIII SSSS ------ Operation=WHATIS This operation identifies the type of a file. ***************************************************************** It identifies all the known archive types, plus the config file has been set up to do a variety of other files as well. It returns an errorlevel depending on the type of the last file it identified. It first checks for formats that it would check for inside other operations such as view. If it finds one, it will return an errorlevel specified by the "whatis_err" for the archive in the global section of the config file. If it does not find it in that list it then looks through the user defined section. The config file currently allows for 200 entries. Each entry takes the form of: TYPE "description" ERRORLEVEL xxx [COLOR xx] [NO_CASE] "description" is the string to display when a file of this type is found ERRORLEVEL is the errorlevel in which to exit the program when found COLOR specifies the color to show the filename and description as. Can be in the range from 0 to 15. Where 0 = black, 1 = Blue, 2 = green, 3 = cyan, 4 = red, 5 = purple, 6 = orange, 7 = grey and 8 through 15 are the same but bright (14 = yellow). NO_CASE makes the comparison non-case sensitive. The position and match allows for: START xxx go to byte xxx in the file END xxx go to byte xxx from the back of the file xxx read one character from file and match against ascii character xxx (range 0 to 255). You may put many of them back to back. xxx can be a regular integer constant, octal constant starting with a 0 or a Hex constant starting with a 0x. xxx can also take the form of "string". 48 ***************************************************************** Last But Not Least: =================== A thousand thanks to the beta testers for taking time to beta test these programs (which have been in less than working order at times), find bugs, and suggest improvements...... 49