home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-07 | 137.9 KB | 3,061 lines |
- FWKCS(TM) Contents_Signature System, Ver. 1.09, 1991 Mar 07.
- Copyright (C) 1988-91 by Frederick W. Kantor. All rights reserved.
- Your use of this program is at solely your own risk: PLEASE HAVE PROPER BACKUPS
- ........................ C A V E A T O P E R A T O R ........................
-
- All of the FWK and .BAT programs cited or listed herein, this document, and
- this Authenticity Verification Zipfile FWKCS109.ZIP,
- are,
- in accordance with their respective dates of creation or revision,
- Copyright (C) 1988, 1989, 1990, 1991 by Frederick W. Kantor.
- All rights reserved.
-
- This material is being distributed in an Authenticity Verification Zipfile,
- with the name FWKCS109.ZIP. In a true copy, every file in the zipfile must
- test OK -AV and the AV code =
- "# OFT466 Frederick W. Kantor (founder/information mechanics)"
- No one has any permission from me to add to, subtract from, or modify, the
- contents of this zipfile.
-
- "|" on the left denotes some new material which has been inserted, below;
-
- -----------
- | Version 1.09 is a maintenance release, primarily to add operation under
- | Microsoft Corp.'s MS-DOS 4.01.
- | I thank Dave Orcutt for his help in alpha testing FWKCS Version 1.09 using
- | "Lantastic" and DOS 4.01.
- |---
- |
- |Note: for those who have already set up FWKCS Ver. 1.06 - 1.08 and loaded
- |command_line macros (/d) [b], [c], [d], or [e], a batch program KEEPMACS.BAT
- |is included in this file FWKCS109.ZIP, to automatically extract those macros
- |from your working copy of FWKCS.COM and install them in your new copy.
- -----------
-
- ...........
- : Version 1.08 is a maintenance release, to correct a bug in age_testing
- : of non_zip files.
- ...........
-
- ...........
- :Version 1.07 is an upgrade, providing some new capabilities and options:
- :---
- :
- :Zipfiles which contain different files with the same filename are now
- :automatically handled, by unzipping them in groups which have the same
- :internal path information and no overlapping filenames. This prevents one file
- :from overwriting another, so that McAfee's SCAN can check each one for
- :viruses.
- :
- :This freed the /a5 and /a6 t suboption, which is now used in
- :
- : t,trashold; subdirectory to hold files rejected as redundant or duplicate.
- :---
- :
- :FWKCS now saves internal path information for a file in a zipfile when making
- :a contents_signature line. This internal_path appears after the external path,
- :separated from it by a comma:
- :
- :CONTENTSIGNATURE FILENAME.EXT FILENAME.ZIP D:\PATH,INNER_PATH
- :
- :To accomodate this additional information, the line can now be up to 253
- :characters long, followed by carriage_return__line_feed.
- :
- :Availability of internal_path supports automatic deletion of unwanted material
- :from zipfiles in which the file to be deleted has a path zipped with it.
- :---
- :
- :A new flag has been added for use in column 17 of CSLIST(1):
- :
- : k Keep full line. This can be used to protect extended line structure when
- : using the /vs or /vp reVise suboptions (the /v option by itself preserves
- : a full line).
- :---
- :
- :For convenience in using column_17 flags, a new auxiliary function, with
- :suboptions, has been added (third screen of FWKCS/a):
- :
- :7. format: FWKCS (infile) /a7.n(flags) (outfile1 (outfile2))
- : for use with CSLIST column 17 flags:
- : if no INFILE, uses "standard input".
- : if no OUTFILE, uses "standard output".
- : /a7.0 strip all flags.
- : /a7.1flag insert (lower_case) flag.
- : /a7.2flags (in /a7.2, flags are compared independent of case):
- : if no specified flag, default is all flags.
- : if no outfile2, output only lines with a matching flag;
- : else put lines without matching flag in outfile2.
- :---
- :
- :The deletion_log capability under /a5 and /a6 has been modified to only open
- :the log file briefly when making its entries, so that the log file is not
- :held open during an upload. This supports use of a single log file
- :for keeping track of deletions made from uploaded zipfiles on systems which
- :have multiple nodes. To direct all deletion entries to a single log, specify
- :the log file with path information, e.g., d:\path\deleted.log.
- :---
- :
- :The o,oust; suboption of /f, /g, /a3, and /a4 has been modified so that, if
- :there is no output to the specified OUST file, the file is deleted. This can
- :be used to control branching in a .BAT program, by testing for whether the
- :file exists.
- ...........
-
- ..........some important changes introduced with Version 1.06:
- :Version 1.06 is an upgrade, providing new capabilities and options.
- :
- :Previously, the system used FWKCSF.COM and FWKZCS.COM, each entirely in
- :assembly_language, with FWKCSF calling FWKZCS. The two program have been
- :merged into a single assembly_language program, FWKCS.COM.
- :
- :To provide for using the new options, the command line can now call four
- :macros, each of which can be up to 73 bytes long, which can be separately set
- :by means of FWKCS /d. If FWKCS has been compressed without destroying its .COM
- :structure (for example, if it has been compressed using Phil Katz's
- :PKLITE(R)), it will still accept changes by means of /d in its internal
- :defaults and write itself out as an uncompressed .COM file.
- :
- :FWKCS is now able to read commands from files and make them part of the
- :command line. These command files can make use of the /d macros, which are
- :expanded as part of the command line.
- :
- :For convenience in tailoring the program to specific applications, the full
- :expanded command line can be written to an output file, which can be edited
- :and then used as a configuration file which is read as part of the command
- :line.
- :
- :The command line can now override the default log file for uploads, whether
- :directly, or by a configuration file, or by a macro.
- :
- :Special flags have been added to the contents_signature lists. Each of these
- : flags is in lower_case, in decimal_column 17, counting the left column as
- : "1":
- :
- :e keeps a specific name with its contents_signature, so that subsequent
- : logical decisions can be based on both the cs and the name.
- :
- :r establishes a cross_reference, providing a way to link one cs to one or
- : more other cs's. On retrieval, they are transcribed into a form which can
- : be fed back again to chain references together.
- :
- :w wipe_flag: this can be used to label a cs so that, if a file with matching
- : cs is found in an uploaded non_AV zipfile, that file may be deleted.
- :
- :x exclusion_flag: this can be used to label a cs so that, if a file with
- : matching cs is found in an uploaded zipfile, that zipfile will be excluded
- : from the system. For example, this can be used to block the acceptance
- : of commercial software, to block known trojans which can't be caught by
- : virus programs, etc.
- :
- :The integrity of these flags and their reference data is preserved during
- :consolidation of files using /v, /vp, and /vs.
- :
- :These flags are used in new or enhanced features for accessioning files and
- :automatically operating an electronic "bulletin board" system.
- ..........end of sublist re Ver. 1.06.
-
-
- Introduction:
- ~~~~~~~~~~~~~
- Every physical process may be regarded as transcription of information
- from one representation to another. One may regard this present work as an
- application of this conceptual picture.
-
- One use is to provide a convenient solution to a problem which faces many
- Electronic Bulletin Board System Operators: duplicate or redundant material.
-
- This solution is presently in use on The Invention Factory BBS
- (212-431-1194), where it automatically processes zipfiles uploaded to the
- system, accepting or deleting them, prepares messages for the users, updates
- its reference material, and keeps a log.
-
- All the file_contents in an uploaded zipfile are checked against all the
- file_contents in all the publicly accessible zipfiles on the system -- well
- over one hundred thousand files, contained in over twenty_five thousand
- zipfiles. If the new zipfile's contents all appear in a single zipfile
- already on the system, the zipfile is treated as a duplicate, and deleted. If
- each of the contained files appears to be a duplicate of a file appearing
- within the prior zipfiles, but they do not make a one_to_one matching with all
- the ones from a single zipfile, then the new file is treated as redundant, and
- deleted. These pieces could come from 16000 different zipfiles and still be
- recognized as forming a redundant composite.
-
- This comparison process also includes files which have been retired from
- the system: using the /vs option, contents_signatures unique to the older
- files are carried forward into the new master_list, but the drive\path part of
- the older material is dropped.
- (These specially retained lines can be collected separately by
- using the command FIND /v ":" <cslist.srt >carried <enter>,
- where "FIND" is the IBM/MS DOS FIND.)
-
- The search and analysis time for a typical zipfile comes to less than the
- time it takes to use PKUNZIP (R) (Phil Katz's) to test the zipfile integrity.
-
- This is made possible by use of what I call "contents_signatures", so, I
- will explain a little about what they are, and then I will give some examples,
- including the specific application of running an EBBS. After that, I will give
- a step_by_step guide to commands which appear on the different screen
- displays, and to two which don't.
-
- First, let me thank other people whose programs are used in connection
- with these programs:
- Phil Katz, for PKZIP, PKUNZIP, and ZIPfiles
- Ben Baker, for QSORT
- Vernon Buerg, for LIST
- Fred Clark, for PCBoard
- McAfee Associates, for SCAN
- International Business Machines Corporation and Microsoft Corp., for
- DOS 3.3, ATTRIB, FIND, CHKDSK, BASICA
-
- And let me also thank Eric Isaacson, for A86 and D86, with which (under proper
- license) my .COM programs were assembled and checked; and American
- Cybernetics, for Multi-Edit, with which I was able to concurrently write the
- many pieces which are quickly assembled by A86.
-
- For those of you who are interested in the conceptual structure behind
- this work, you might look in your library for a copy of Frederick W. Kantor,
- "Information Mechanics" (Wiley, 1977): they asked permission to publish as a
- book my personal research notes on representation of information in physical
- systems; it is literally the defining work for what has become the fourth
- mechanics our civilization has had in more than five hundred years. Further
- discussion of that subject would be outside the scope of these program DOCs.
-
- This file, version 1.09, includes a set of programs for creating and
- manipulating "contents signatures". For this reason, this DOC provides the
- combined DOCS for:
-
- FWKCS(TM) Contents_Signature System, Ver. 1.09, 1991 Mar 07,
- which makes Y.BAT, ACCESION.BAT, ACCESZIP.BAT, PCBTEST.BAT.
- FWKDG(TM) Dirguide.txt Drives C:- Z:, Ver. 1.08, 1990 Feb 21.
- FWKDG108.BAT
- FWKC17D(TM) ("Column 17 Delete") selective deletion program
- KEEPMACS.BAT, NULSTART.BAT, ZIPSTART.BAT, FULSTART.BAT, REVERT.BAT,
- CSLIST.BAT, CSDUPS.BAT, ZCSLIST.BAT, ZCSDUPS.BAT, ZCSDUPSC.BAT
- FWKCSKIT(TM) Contents Signature Kit (batch file)
-
- (including suggestions for use of, and full listings of, these .BAT programs)
-
-
- FILE Contents:
-
- README.1ST A short note to the reader
- | REGISTER.DOC Registration prices, forms of payment, address
- FWKCS109.DOC <--- you are here
- FWKCS.COM used as master program which also calls others
- FWKDG.COM used here for listing files on drives C:-Z:, and in
- supporting FWKCS option /a1
- KEEPMACS.BAT to transfer macros from Ver. 1.06 of FWKCS.COM to new copy
- NULSTART.BAT for quick initial setup with empty reference files
- ZIPSTART.BAT for initial setup with working reference files about zips
- FULSTART.BAT for initial setup with working reference files about all
- accessible files on system, both zipfiles and non_zip
- files
- REVERT.BAT sets all defaults on the right of "=" in FWKCS /d to the
- initial conditions on the left of "="
- FWKCSKIT.BAT to run some contents_signature programs (except FWKC17D) in
- one pass; see full listing ~~~~~~~~~~~~~~
- CSLIST.BAT to make contents signatures for files on C:-Z:
- CSDUPS.BAT to find non-unique CS's for files on C:-Z:
- ZCSLIST.BAT to make contents signatures for zipfiles on C:-Z:
- ZCSDUPS.BAT to find non-unique CS's for zipfiles on C:-Z:
- ZCSDUPSC.BAT like ZCSDUPS, but also makes a multiplicity count + report
- FWKC17D.BAS "column 17 delete" : to delete designated files (section 9)
- FWKDG108.BAT to make DIRGUIDE.TXT
- FWKDG108.SCR displayed after making DIRGUIDE.TXT
- FINDUNAV.BAT to find non_AV files in AV_zipfiles
- AVONLY.BAS to make TOREJECT.BAT to delete non_AV files from AV_zips
- LISTMAKR.BAT uses fwkcs /1x option
- REVCSLST.BAT to carry forward cs's of retired files
- FWKTDR19.BAS for cleaning up text directories after deleting duplicates
- DSA.COM Directory Spacing Adjust, Copyright 1988 by Fred Kantor
- (Frederick W. Kantor), may be called by FWKTDR19.BAS
-
- Various .BAT examples listed in this DOC are illustrated using the sorting
- program "QSORT" (please see thanks below); to run them, please have QSORT, or
- another sorting program which you modify those batch files to call, available
- in the current directory or via PATH.
-
- For those who have already set up using macros in FWKCS Ver. 1.06 - 1.08, to
- run KEEPMACS.BAT, please have your working copy of FWKCS.COM Ver. 1.06 - 1.08
- available via PATH and not in the default subdirectory; unzip FWKCS.COM Ver.
- 1.09 and KEEPMACS.BAT from FWKCS109.ZIP; and then run KEEPMACS<enter>. This
- does not set the /d paths on the right side of the "=" sign -- it only
- transfers the /d macros [b], [c], [d], and [e] to your new copy.
-
- To run NULSTART.BAT, please have FWKDG and FWKCS available in the current
- directory (it copies all three and runs FWKCS), with ATTRIB available via
- PATH.
-
- To run ZIPSTART.BAT, please have FWKDG and FWKCS available in the current
- directory; with (IBM/MS DOS) FIND and QSORT or their replacements, and
- ATTRIB, available via PATH.
-
- To run FULSTART.BAT, please have FWKDG and FWKCS available in the current
- directory; with QSORT, or its replacement, and ATTRIB, available via PATH.
-
- To run FWKCSKIT.BAT, CSLIST.BAT, or CSDUPS.BAT, please have the "FIND" and
- "SORT" commands, or their substitute which you modify those batch files to
- call, available in the current directory or via PATH.
-
- DOCS Contents:
- 1. What is a contents signature?
- 2. What are some uses? (with some working examples and .BAT listings)
- 2.1 Finding files and adding new files
- 2.2 Running this with an electronic bulletin board system: PCBoard 14.n
- 2.2.1 Broader use under EBBS with plain ascii output for sending
- 2.3 Accessioning zipfiles
- 2.4 Accessioning general files
- 2.5 CSLIST
- 2.6 CSDUPS
- 2.7 ZCSLIST
- 2.8 ZCSDUPS
- 2.9 ZCSDUPSC
- 2.10 FWKCSKIT
- 3. FWKCS.COM options
- 4. FWKCS screens
- 5. FWKDG.COM options
- 6. FWKDG screen
- 7. FWKC17D.BAS specialized selective deletion
- 8. FWKCS/1m multiplicity report MULTCNT.RPT
- 9. Listings for NULSTART.BAT, FULSTART.BAT, LISTMAKR.BAT,
- REVCSLST.BAT, and KEEPMACS.BAT
- 10. Cleaning up text directories
- 10.1 FWKTDR19.BAS
- 10.2 DSA.COM
-
- Purpose: FWKCS can produce a kind of "contents signature" which does not
- depend on file names, dates, order of collection, nor method nor amount of
- compression. Sorting the output groups names of files having the same
- contents. ~~~~~~~~
- ~~~~~~~~
-
- FWKCS manipulates contents_signatures and performs many operations based on
- them.
-
- Please be careful:
- ~~~~~~~~~~~~~~~~~~
- >>> Please bear in mind that a zipfile which contains only one file will have
- >>> a zipfile contents signature which is the same as the file contents
- >>> signature of the single file which it contains; and a storage zipfile
- >>> which has the same file contents as a self-extracting zipfile will have
- >>> the same zipfile contents signature.
-
- Thanks:
- ~~~~~~~
- To Phil Katz: I wish to take this oportunity to thank Phil Katz for
- introducing the ZIP file format and writing software to make and use zipfiles,
- for recognizing and incorporating the 32_bit CRC for use with compressed
- files, and for dedicating the ZIP format to the public domain. Please remember
- to properly reward him for his work.
-
- To Ben Baker: In some of the examples given below, the sorting program
- indicated by way of example is "QSORT", tested with version 3.20, which is
- copyright 1985,86,87,88 by Ben Baker. Other sorting programs can be used.
- Please remember to properly reward the author of whatever sorting program you
- use with this software.
-
- This FWKCS109 software is specifically not accompanied with a sorting program.
-
-
- 1. What is a contents signature?
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- A "contents signature" is a string of bits generated from the
- contents of a file, long enough and suitably generated so as to provide some
- desirably low probability that two different files would give rise to the
- identical string of bits. One example which you may be familiar with is the
- cyclic residue check or cyclic redundancy check ("CRC") often used for
- detecting errors in storage or transmission of data. e.g., the zipfile format,
- which was introduced by Phil Katz and dedicated to the public domain, uses a
- 32-bit CRC. That means that, statistically, the probability that two files
- which were different would accidentally come out with the same CRC would be
- about one part in 2^32, that is, about one part in 4,294,967,296.
-
- The contents signatures generated by FWKCS usually use more than 32
- bits. They are generated by using the 32-bit CRC together with the
- uncompressed file_length. These numbers are expressed in hexadecimal, forming
- a 16_character_long structure, such as 1E44E652 1FD0 , in which the first
- 8 characters express the 32_bit CRC and the second 8 characters express the
- uncompressed_file_length with the leading zeros blanked. Those blank spaces
- are part of the signature_structure.
-
- Because the number specifying that file_length is often (usually) 8
- bits or more, the total number of bits available for distinguishing one such
- contents signature from another is often (usually) 40 or more. This means
- that, statistically, the probability that two files which were different would
- accidentally result in the same contents signature would often (usually) be
- down around one part in 2^40 or better, that is, about one part in
- 1,099,511,627,776 or better.
-
- In the case of a zipfile, FWKCS generates a special "zipfile contents
- signature", which is made by adding together all the 32-bit CRC's for the
- files in the zipfile, modulo 2^32, and adding together their uncompressed
- file_lengths modulo 2^32. This has the desirable property that the resulting
- zipfile contents signature ("zcs") does not depend on the names of the files,
- the dates of the files, the order in which they appear in the zipfile, nor on
- the method nor amount of compression, nor does it depend on comments. This is
- especially valuable when one is running a large system and wishes to delete
- duplicate zipfiles uploaded under different names (an example of this is
- discussed below). This zcs is also useful in evaluating whether a collection
- of files in an upload corresponds to one zipfile already known to the system,
- or whether, although all are recognized, they are found spread among several,
- different, zipfiles.
-
- FWKCS provides a contents_signature for each file within a zipfile,
- and this collection of contents_signatures with entries (e.g., a file more
- than 9 Megabytes long) is relatively quickly manipulated by FWKCS.
-
- 2. What are some uses? (with some working examples and .BAT files)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- 2.1 Suppose you have a set of 20,000 zipfiles in your system, and have a text
- or executable file of uncertain ancestry and name.
- Just type:
- Y filename.ext <ENTER>
-
- and read the display on the screen. If the file is unfamiliar, it's added
- and indexed.
-
- To make Y.BAT, just type FWKCS /a2m <ENTER>.
-
- To run Y.BAT recursively, you can use "wildcards" *, ?, in specifying the
- file(s) to process, and just press the y or n key(s) when asked, to
- control whether you see a particular report. The y and n keys can be
- pushed ahead of time up to the DOS buffer capacity. A .BAT program can
- append or rename the reports so that they are kept for later.
-
- In order to keep the update response time short, occasionally (perhaps
- every few days or if CSLIST1.SRT gets over about 50k) run
-
- FWKCS /v<enter>
-
- to revise the allocation of information for storage and retrieval,
- consolidating the material into master_list CSLIST.SRT, and restarting
- CSLIST1.SRT, with a new index for each.
-
- Suboption:
-
- d reDate zipfile to that of latest file in zipfile.
-
-
- If you wish to use suboption d routinely as part of Y.BAT, change Y.BAT to
-
- FWKCS %1 /a2d
-
- 2.2 Suppose you have an electronic bulletin board system with more than ten
- thousand zipfiles, and have an ongoing problem of people accidentally
- uploading zipfiles which contain the same files as ones which you already
- have, although possibly with different names, different comments,
- different dates, and/or different ordering of the files in the respective
- zipfiles, and even made of pieces from several different zipfiles.
-
- First, configure your system so that there are no duplicate paths to the
- same files (large systems with networks).
-
- Then, to do a partial clean up, you could run
-
- fwkdg/l|fwkcs/1cz|qsort|fwkcs/1sm >multis
-
- - - - - - - - - - - - - - - - NOTE
- Note: if your system keeps one or more files open and not shared
- for reading, you can put a pipeline filter between fwkdg/l and
- fwkcs/1cz. Suppose your system keeps open files EX.1 and
- XCL.TOO. You could exclude these two filenames by inserting a
- two_stage pipeline filter, for example,
-
- fwkdg/l|find /v "EX.1"|find /v "XCL.TOO"|fwkcs/1cz|qsort|fwkcs/1sm >multis
- - - - - - - - - - - - - - - - NOTE ENDS
-
- to put all the duplicate zipfiles together in groups, in the file MULTIS;
- and to make a report, MULTCNT.RPT, showing number of probably duplicate
- zipfiles. Then, you could use a word processing program to look at the
- MULTIS file, and to put a lower case "d" in column 17 on each line
- containing a file you wished to delete. For example, here are 9 lines
- copied from the beginning of the IFBB MULTIS list (see discussion, below):
-
- ----------------------------------------------------------------
- 014FF56D 158AC LAWN2.ZIP z cs J:\RBBS
- 014FF56D 158ACdLAWN200.ZIP z cs M:\RBBS
- ----------------------------------------------------------------
- 0249E9AB 486D EQIPVIEW.ZIP z cs H:\RBBS
- 0249E9AB 486DdVIS.ZIP z cs K:\RBBS
- ----------------------------------------------------------------
- 02FF6937 522E7dCHEMIC20.ZIP z cs E:\RBBS
- 02FF6937 522E7 CHEMICAL.ZIP z cs E:\RBBS
-
- Then, at solely your own risk, you could run
-
- basica fwkc17d (or use a different BASIC with your system)
-
- to delete all of those marked files, and to save those lines (without the
- "d") in a file named DELETED.LOG . For example, here are the
- corresponding 3 lines copied from the beginning of the IFBB DELETED.LOG
- (see discussion, below):
-
- 014FF56D 158AC LAWN200.ZIP z cs M:\RBBS
- 0249E9AB 486D VIS.ZIP z cs K:\RBBS
- 02FF6937 522E7 CHEMIC20.ZIP z cs E:\RBBS
-
- Then, you could choose what drive you will keep your cslist files on.
- For what follows here please have all the files from this AV Zipfile
- FWKCS109.ZIP in a single subdirectory.
-
- There are three ???start.bat programs:
-
- NULSTART.BAT fastest, sets up empty files to which
- contents_signatures can be added
-
- ZIPSTART.BAT selectively adds only contents_signatures which come
- from files which end with ".ZIP", and the respective
- zipfile_contents_signatures.
-
- FULSTART.BAT does all the ZIPSTART does, plus calculates the CRC for
- every non_zip file which it is able to open and
- generates the contents_signature for each of those
- files.
-
- Note: if you are using a system which keeps one or more files open, you
- may wish to insert a pipeline filter to exclude those filenames from the
- pipelined list of files processed in FULSTART. These may be "hidden"
- files: when FWKDG scans the system, it includes "hidden" files.
-
- Now, you can proceed in two ways. You can ignore the cross_redundancy in
- which all the pieces of a file may be present in others, and skip to use
- ZIPSTART or FULSTART, below. Or, you can use NULSTART, and then
- recursively accession all the files in your system one by one. This is
- (much) slower, but catches some of the cross_redundancy. The order in
- which you accession the files affects the result, and you may wish to give
- some thought to which kinds of files you wish to have left (e.g., large,
- or narrowly defined).
-
- Working in a subdirectory with FWKCS.COM, FWKDG.COM, and the three
- ???START.BAT files, you can pick which one you wish to use to set up your
- contents_signatures system.
-
- Suppose, for example, you choose to use ZIPSTART.
-
- Then, type ZIPSTART d<enter>
-
- where d is the drive letter without a ':'. It uses the /d option on FWKCS
- to modify defaults #1-4, so that they will be in a subdirectory \cs, and
- then presents the /d screen for you to see if they came out the way you
- wanted. If not, you can run REVERT, which puts all the defaults back to
- their original condition (the resulting copy of FWKCS.COM is then
- byte_for_byte the same as when shipped, with the same contents_signature
- as when shipped). Depending on the details of your system, the speed of
- access to files may depend on how deep the subdirectory is in your calling
- procedure, e.g., "d:\this\that\another\yet\further\cs" may take longer to
- reach then "d:\cs". This is because each subdirectory is itself a file
- which, in many cases, would have to be read to find where the next
- subdirectory is locate so that it, in turn, can be read. For this reason,
- the defaults are set to a first_level subdirectory of the root directory.
- The executable programs can be placed elsewhere on your PATH.
-
- Here is a full listing of ZIPSTART.BAT:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- echo off
- cls
- if %1: == : goto message
- echo - i will need FIND and QSORT available on your path to use for this, and
- echo - FWKDG and FWKCS here where i am now
- echo - (please see FWKCS109.DOC for explanation and credits)
- echo -
- echo - if any of these four is not set up that way, please press Control_Break
- echo - and then press y
- echo -
- pause
- cls
- fwkcs %1:\cs\cslist.ndx /d1
- fwkcs %1:\cs\cslist.srt /d2
- fwkcs %1:\cs\cslist1.ndx /d3
- fwkcs %1:\cs\cslist1.srt /d4
- cls
- fwkcs /d
- echo ------
- echo -
- echo - do defaults #1-4 on the right of the "=" look OK?
- echo - if not, press Ctrl_Break, then y
- pause
- cls
- md %1:\cs
- attrib -r %1:\cs\cslist*.*
- del %1:\cs\cslist*.*
- copy fwkcs.com %1:\cs
- copy fwkdg.com %1:\cs
- %1:
- cd %1:\cs
- fwkdg /l | find ".ZIP" | fwkcs /1cfxz | qsort > %1:\cs\cslist.srt
- fwkcs %1:\cs\cslist.ndx %1:\cs\cslist.srt /i
- attrib +r %1:\cs\cslist*.*
- fwkcs /u
- cls
- dir
- echo -
- echo ------- Please put the copy of FWKCS which is here in this subdirectory
- echo - on your path. Its internal defaults have been set to point to the files
- echo - created in this subdirectory.....
- echo ------- As a precaution, please make sure either that it is the ONLY copy
- echo - of FWKCS on your path, or that such copies come from this cloned copy
- echo - (the date and time on the program have been changed, and provide a simple
- echo - test; also, you can type "FWKCS/d<enter>" to check its defaults). For more
- echo - complicated configurations, please see FWKCS109.DOC.
- echo ------- Also, be sure that FWKCS can call QSORT, PKZIP, PKUNZIP, SCAN,
- echo - and, optionally, LIST. If you wish, set a path for FWKUPLD.LOG.
- echo - (i suggest that you run CHKDSK *.*, to see if any of my files contains
- echo - non_contiguous blocks; if so, please make each of my files contiguous...)
- goto end
- :message
- echo -
- echo - i need to have a single letter, without ":", for the drive
- echo - where you want me to set up my system...
- echo -
- :end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Here is a full listing of REVERT.BAT:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @echo off
- rem For use with FWKCS(TM) Ver 1.09:
- rem REVERT FWKCS.COM to initial defaults.
- fwkcs /d1
- fwkcs /d2
- fwkcs /d3
- fwkcs /d4
- fwkcs /d5
- fwkcs /d6
- fwkcs /d7
- fwkcs /d8
- fwkcs /d9
- fwkcs /da
- fwkcs /db
- fwkcs /dc
- fwkcs /dd
- fwkcs /de
- fwkcs /d
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- After you have run ZIPSTART (or whichever you choose; the other two are
- listed at the end of this DOC), and run CHKDSK *.*, and done such disk
- consolidation as is appropriate, then....
-
- Study the FWKCS/d screen, and choose paths which will quickly reach the
- programs listed there. If you do not put a path on FWKUPLD.LOG, then it
- can be kept separately in each of the multiple defaults for the respective
- nodes on your system; if you prefer to keep a single, central log, you can
- specify its path. Using the l,uplog; option, you can override this default
- via the command line.
-
- For multiple nodes, one can group an array of nodes to a specific log for
- that array, for example, by putting a different copy of PCBTEST.BAT to
- serve each specific node, calling respectively one of several different
- configuration files which are then respectively incorporated into the
- command line. A specific array of nodes can be set up with its own
- contents_signatures system, with its own lists and indexes, to serve a
- specific group of users, by using the settable defaults in FWKCS displayed
- using the /d option.
-
- Check to see that you have FWKDG and FWKCS; and SCAN, FIND and QSORT or
- their replacements; on your path or in the default directory.
-
- Choices the options to run your EBBS, and make a .BAT file to load them
- into defaults /dd and /de (if you need more space, you can use all of
- b,c,d,e, and change PCBTEST.BAT so that the square brackets "[]" include
- the macros in their proper sequence).
-
- After you have your lists set up, type FWKCS /a5m <enter> to make
- PCBTEST.BAT, make any needed changes in the macro calls "[]", and put it
- where your system can call it properly.
-
- To see that it's working properly, take a piece out of each of several
- different zipfiles on your system, put the pieces together to make a
- single zipfile, and upload it. The system should catch it as being
- redundant. You can do this directly by typing
-
- FWKCS d:\path\filename.ext upload /a5[cde]<enter>.
-
- The word "upload" is necessary for the file to be treated as an upload.
- You can read the resulting PCBFAIL.TXT file, and look in FWKUPLD.LOG. The
- redundant file is automatically deleted, unless you have used the "s"
- suboption.
-
- You can use a recursive DOS command line to have a multiplicity of files
- be treated as uploads, e.g.,
-
- for %x in (*.zip) do fwkcs %x upload /a5[cde]
-
- This would cause entries in the upload log, and delete or sequester the
- files which were not accepted, unless you have used the "s" suboption.
-
- - - - - - - - - - -
- Note:
- On some systems, you may find it more effective to make a second .BAT
- program which does one file at a time and is called repeatedly, along
- these general lines:
-
- rem BAT1.BAT.
- rem This repeatedly calls BAT2.BAT.
- for %%x in (%1) do call bat2 %%x
-
-
- rem BAT2.BAT
- fwkcs %1 upload /a5[cde]
-
- To use this combination, type
-
- bat1 *.zip <enter>
-
- or specify the files to process in some other way, wildcards OK.
- - - - - - - - - - -
-
- If you have used default "a" to set a path to the uploads log (see
- FWKCS/d), and have not overridden in with a command_line entry, then you
- can modify the recursive call so as to create or add to a local upload
- log, e.g.,
-
- for %x in (*.zip) do fwkcs %x upload /a5[cde]l,uplog
-
- to make or add to local upload log UPLOG. Check to make sure that the
- punctuation is correct at the end of default [e], so that you can run it
- into the "l" without syntax problems. One easy way to see the full,
- expanded command line without carrying out the rest of its operation is to
- intercept execution and write the expanded line into a text file, and then
- look at that. To do this, you could type
-
- fwkcs filename upload /a5[cde]l,uplog [-zzz] <enter>
-
- and then type
-
- TYPE zzz <enter>
-
- To use this recursive call from inside a .BAT program, you would replace
- the "%x" with "%%x".
-
- Here is a partial example of what the log may look like:
-
- 1990-11-04 14:29:32.84 Duplicate 2488 J.ZIP zcs = AA99D801 BE2
- 1990-11-04 14:30:47.65 Redundant 11641 ASDF.ZIP
- 1990-11-04 14:33:16.88 Failed Zip 2488 FOOEY.ZIP
- 1990-11-04 14:37:41.35 Accessioned 17040 QWERTY.ZIP zcs = 00A4266D 45AF
-
-
- What is done with the file in the various cases depends on options you
- have set up; option "s" saves rejected files, otherwise rejects are
- typically either deleted or sequestered. Entries which can appear in
- the upload log comment column include
-
- Accessioned the (zip)file was accepted and entered into the system.
- for zipfile, its zipfile_contents_signature (zcs) is given
- for non_zip file, its cs is given.
-
- Age> mo failed age test; the number of months specified for the test
- gets put there; if NOT s, then deleted.
-
- Duplicate a duplicate zipfile was found; if NOT s, then deleted; its
- zcs is given.
-
- Excluded a lower_case "x" was found in column 17 of CSLIST.SRT or
- CSLIST1.SRT next to an entry with matching
- contents_signature, flagging that item for exclusion; if NOT
- s, then deleted; the cs for the x_flagged file is given.
-
- Failed Zip failed when tested using PKUNZIP; if NOT s, then deleted
-
- FailedVirus if non_zip, then it failed on first test by SCAN;
- if a zipfile, it failed either on the first test by SCAN
- (e.g., as a self_extracting zipfile) or on testing of its
- contained files after unzipping.
-
- Redundant it was a zipfile containing only files which could be found
- on the system either in a larger zipfile or spread among
- more than one zipfiles; if NOT s, then deleted.
-
- RedundantNZ it was non_zip, and its contents_signature matched a cs in
- CSLIST.SRT or CSLIST1.SRT; if NOT s, then deleted; its cs is
- given.
-
- Zip in Zip it was a zipfile which contained another zipfile; depending
- on how /a5 or /a6 suboption e was set up, (if NOT s) either
- the file was put in a special subdirectory for further
- consideration, or deleted.
-
- n/ ttt it was a zipfile, and did not pass the novelty test; the
- numerical fraction is (not_cs_match)/(total_entries);
- depending on how the novelty_test option was set up,
- (if NOT s) the file was sequestered or deleted.
-
-
- When the zipfile is a duplicate or is accessioned, its
- zipfile_contents_signature is well_defined, and the zcs is provided. In
- the case of a defective zipfile, its zcs is not generated. In the case of
- a redundant zipfile, the material would not necessarily fit on one line,
- so, for convenience, it is not provided in the log.
-
- You can use the zcs or cs to find which file in your system was duplicated
- by or matched with the deleted upload, by typing, to use an example from
- above,
-
- echo AA99D801 BE2|fwkcs /g<enter>
-
- The spacing is important: the single space after "echo" causes the zcs or
- cs to be read starting with the first character and correctly alligned;
- the blank spaces are used as part of the 8_character hexadecimal
- representation of the uncompressed file_length, and come from blanking the
- leading zeros. The whole structure of 16 characters, in the correct
- geometric relationship, is required to form the contents_signature.
-
- If you have a large collection of zipfiles, you may have a file with the
- cs of 00000000 0 on your system. You can try this and see, using
- the 8 zeros, 7 spaces, and 1 zero.
-
- 2.2.1 Suppose you have an electronic bulletin board system using software
- which is able to shell out to a batch program, and which provides as %1
- the full d:\path\filename.ext for the zipfile to be tested, and provides
- as %2 the name of a file which serves as an error_flag; but does not
- provide the "UPLOAD" instruction used by PCBoard, and is only able to
- process pure ascii files created by FWKCS. Then, you can make a .BAT
- program something like this:
-
- ------------
- if exist %2 del %2
- if exist sendme.txt del sendme.txt
- fwkcs %1 /a6[cde]
- if exist pass.txt goto good
- echo ERROR >%2
- ren fail.txt sendme.txt
- goto sendit
- :good
- ren pass.txt sendme.txt
- :sendit
- (here you put your program to send SENDME.TXT )
- del sendme.txt
- ------------
-
- The /a6 option performs all the tests etc. that are provided under
- #5 UPLOAD, but it generates PASS.TXT or FAIL.TXT, both of which are pure
- ascii files without any special control flags. The sample .BAT program
- listed above then uses the existence of the PASS.TXT file to control
- whether it creates an error_file. Whichever name was used for the output
- text file, it is renamed to SENDME.TXT, which you then send to your COM
- port. After that, SENDME.TXT is deleted, and the .BAT program returns
- control to the system.
-
- 2.3 Suppose you want to evaluate and possibly incorporate, e.g., fifty new
- zipfiles which you have downloaded from various other boards. You can put
- them all in their own subdirectory, go there, and type
-
- ACCESZIP *.zip<enter>
-
- The ones which pass the tests retain their .ZIP extension, and the new
- contents_signatures are added and indexed. Those which do not pass the
- various tests you have set up (see section 3, "a", below) are renamed
- according to the results of the tests, unless you have used the "s" option
- - in which case, the corresponding ERRORLEVEL is displayed if the filename
- would otherwise have been changed. You can then dispose of them
- appropriately. This does not get automatically entered in the uploads log.
-
- To make ACCESZIP.BAT, type FWKCS /a4m<enter>.
-
- Then, choose the options and load them into the macro [b]:
-
- FWKCS option_string /db<enter>
-
-
- 2.4 Suppose you have some files, some of which are not zipfiles, to add to
- your contents_signatures system. You can choose a way to call all of them,
- such as by isolating them in a subdirectory or by using suitably chosen
- "wildcards", and type, for example,
-
- ACCESION n?me*.b* <enter>
-
- If the program runs into a relabelling name_conflict, it reports it to the
- screen. Otherwise, with a statistical error rate per file comparison
- usually better that one part per trillion, those zipfiles which pass the
- tests retain their respective extensions. According to the options used,
- and following a set of relative priorities, redundant zipfiles are labeled
- ".RED"; duplicate zipfiles are labeled ".DUP"; redundant non_zip files are
- labeled ".RNZ"; too_old files are labeled ".OLD"; exclusion_flagged
- (zip)files are labeled ".XFL"; viruses are labeled ".VIR"; etc., as
- discussed in more detail, below.
-
- To make ACCESION.BAT, type FWKCS /a3m<enter>.
-
- Then, set the options in a macro, as in 2.3 above.
-
- The SYSOP (Michael Sussell) of The Invention Factory BBS did a file purge,
- of the kind discussed above as preliminary clean_up, processing more than
- 11,000 (eleven thousand) zipfiles and deleting more than 600 (six hundred)
- redundant zipfiles. It helped protect users against wasting time and
- telephone money. The MULTIS and DELETED.LOG from that cleanup operation
- can be seen in FWK-IFBB.ZIP, made by and available on The Invention
- Factory BBS. That's part of why IFBB uses ZIP. If you are on the IFBB,
- BULLETIN.02 reports their experience and policy on this.
-
- The IFBB has since grown, with a current collection more than twice
- that size, and uses FWKCS to process its uploads automatically.
-
- I wrote some special software to help clean up the text directories after
- a lot of deletions were made. To help those of you who face this problem,
- I have included two programs, FWKTDR19.BAS and DSA.COM, in this
- AV_zipfile. (See Section 10, near end of this file.)
-
- 2.5 Suppose you wished to make a full, sorted set of contents signatures for
- all the files on drives C:-Z: on your system, with special sublists
- according to whether they were zipfile contents signatures, plain file
- contents signatures, internal file cs's, or combined plain and internal
- file cs's. Then, you could run
-
- CSLIST
-
- which does the following (full listing):
-
- rem To run, i need to have FIND, FWKDG, FWKCS, and QSORT available in the
- rem default directory or via the path (for credits please see fwkcs109.doc).
- rem If any of the top 4 is missing, please press Control-Break and then y
- pause
- fwkdg/l|fwkcs/1cfpxz|qsort >cslist.srt
- find "z" <cslist.srt >zcs_list.srt
- find "f" <cslist.srt >fcs_list.srt
- find /v"c" <cslist.srt >ics_list.srt
- find /v"z" <cslist.srt >ficslist.srt
-
- where the names used for the output files have these meanings:
-
- 1. cslist.srt sorted list of contents_signatures;
-
- from which come:
-
- 2. zcs_list.srt subset listing only zipfile_contents_signatures;
- 3. fcs_list.srt subset listing only contents_signatures for directly
- accessible files which are not zipfiles;
- 4. ics_list.srt subset listing only contents_signatures for files which
- are contained within directly accessible zipfiles;
- 5. ficslist.srt subset including both 3 and 4 above, in sorted orded.
-
- 2.6 Suppose you wished to make a full, sorted set of contents signatures for
- all the files on drives C:-Z: on your system, and make specialized
- searches for non-unique contents_signatures in the special subfiles which
- would be prepared by running CSLIST, but not make and keep those subfiles.
- Then, you could run
-
- CSDUPS
-
- which does the following (full listing):
-
- rem To run, i need to have FIND, FWKDG, FWKCS, and QSORT available in the
- rem default directory or via the path (for credits please see fwkcs109.doc).
- rem If any of the top 4 is missing, please press Control-Break and then y
- pause
- fwkdg/l|fwkcs/1cfpxz|qsort >cslist.srt
- find "z" <cslist.srt |fwkcs/1s >zcs_dups
- find "f" <cslist.srt |fwkcs/1s >fcs_dups
- find /v"c" <cslist.srt |fwkcs/1s >ics_dups
- find /v"z" <cslist.srt |fwkcs/1s >ficsdups
-
- 2.7 Suppose you wanted just a sorted list of zipfile contents signatures for
- all the zipfiles on drives C:-Z: on your system. Then, you could run
-
- ZCSLIST
-
- which does the following (full listing):
-
- rem To run, i need to have FWKDG, FWKCS, and QSORT available in the
- rem default directory or via the path (for credits please see fwkcs109.doc).
- rem If any of the top 3 is missing, please press Control-Break and then y
- pause
- fwkdg/l|fwkcs/1cxz|qsort >zcs_list.srt
-
- 2.8 Suppose you wanted just a list of probably redundant zipfiles on drives
- C:-Z: on your system. Then, you could run
-
- ZCSDUPS
-
- which does the following (full listing):
-
- rem To run, i need to have FWKDG, FWKCS, and QSORT available in the
- rem default directory or via the path (for credits please see fwkcs109.doc).
- rem If any of the top 3 is missing, please press Control-Break and then y
- pause
- fwkdg/l|fwkcs/1cxz|qsort|fwkcs/1s >zcs_dups
-
- Because it is pipelined, it does not leave any of its intermediate files.
-
- 2.9 Suppose you wanted a list of probably redundant zipfiles on drives C:-Z:
- on your system, plus a report on the clustering of probably redundant
- zipfiles. Then, you could run
-
- ZCSDUPSC
-
- which does the following (full listing):
-
- rem To run, i need to have FWKDG, FWKCS, and QSORT available in the
- rem default directory or via the path (for credits please see fwkcs109.doc).
- rem If any of the top 3 is missing, please press Control-Break and then y
- pause
- fwkdg/l|fwkcs/1cxz|qsort|fwkcs/1sm >zcs_dups
- ren multcnt.rpt zcs_dups.rpt
-
- It does not leave any of its intermediate files.
-
- 2.10 Suppose you wished to make a full, sorted set of contents signatures for
- all the files on drives C:-Z: on your system, with special sublists
- according to whether they were zipfile contents signatures, plain file
- contents signatures, internal file cs's, or combined plain and internal
- file cs's; scan each of these sub_files for non-unique contents_signature
- entries; and make a set of reports on the clusterings of matching
- signatures that were found in each of the sub_lists. Then, you could run
-
- FWKCSKIT
-
- which does the following (full listing):
-
- rem To run, i need to have FIND, FWKDG, FWKCS, and QSORT available in the
- rem default directory or via the path (for credits please see fwkcs109.doc).
- rem If any of the top 4 is missing, please press Control-Break and then y
- pause
- fwkdg/l|fwkcs/1cfpxz|qsort >cslist.srt
- find "z" <cslist.srt >zcs_list.srt
- fwkcs/1sm zcs_list.srt zcs_dups
- ren multcnt.rpt zcs_dups.rpt
- find "f" <cslist.srt >fcs_list.srt
- fwkcs/1sm fcs_list.srt fcs_dups
- ren multcnt.rpt fcs_dups.rpt
- find /v"c" <cslist.srt >ics_list.srt
- fwkcs/1sm ics_list.srt ics_dups
- ren multcnt.rpt ics_dups.rpt
- find /v"z" <cslist.srt >ficslist.srt
- fwkcs/1sm ficslist.srt ficsdups
- ren multcnt.rpt ficsdups.rpt
- find "v" <cslist.srt | find /v "a" | find /v "z" >unavinav.lst
-
- unavinav.lst contains a list of un_AV files which have been inserted in
- AV_zipfiles
-
- Note: the output file FICSDUPS provides a fairly broad potential scope of
- bulk operation, as distinct from the case_by_case handling used, for
- example, in 2.1 above.
-
- 3. FWKCS.COM options
- ~~~~~~~~~~~~~~~~~~~~
-
- First, how the command line can be used:
-
- Because square brackets "[]" have literal meaning in the command line,
- optional material is enclosed in parentheses "()".
-
- Format 1: FWKCS (CSLIST.NDX CSLIST.SRT) /option ((<)in ((>)out)) <ENTER>
- where CSLIST.NDX is index for CSLIST.SRT sorted contents_signature_list.
-
- Starting with FWKCS Ver. 1.06, FWKCS can open input and output files
- which come after the /option(s).
-
- 2: FWKCS f1 f2 (f3) /m <ENTER> |Format 1,2,3 grammar: /(r)(t)other_options.
-
- the r for redirect and t for timespan options come in a definite order
- near the "/". This lets the letters be used with other meanings as
- suboptions for other functions.
-
- 3: FWKCS (files)([b])([+file1])[c](options)([de])([+file2]) (files) ([-file3])
- where "[]" are literal characters; [b][c][d][e] are macros (see /d);
- [+file] includes file's contents (/d macros OK) in command line;
- [-file] prevents execution, writes (expanded) command line to file.
-
- This command_line format was introduced with FWKCS Ver. 1.06.
- There are 4 macros, each of which is a contiguous character sequence
- up to 73 bytes long. This gives a total of 292 bytes of rapidly
- accessible information for use in making a command line. This is more
- than DOS normally handles, and helps support the use of (many) options
- for the f and g functions and the /a auxiliary functions.
-
- To see these macros, type FWKCS /d <enter>.
-
- The command line can include one or several files, which are read into
- the internal command interpretation region. They are included in the
- command line by using square brackets "[]" and the "+" sign. For
- example, to load a macro from a file named MACROB into FWKCS macro
- [b], type
-
- FWKCS [+macrob] /db <enter>
-
- A file which is read into the command line for controlling execution
- can, itself, include citations to macros [b],[c],[d], and/or [e]. The
- macros are expanded during interpretation of the file.
-
- And, execution can be intercepted and the entire, expanded command
- line can then be written to a text file, by using a minus sign "-" in
- front of the filename, within square brackets, as the last entry on
- the line. To see what this command line is when fully expanded, up to
- the last non_blank text character of the part which would be used in
- executing the line, you can write it to text file ZZZ by typing, e.g.,
-
- FWKCS d:\path\filename.ext upload /a5[cde] [-zzz]
-
- You can then edit ZZZ, and use it as a configuration file for
- subsequent execution. If you wish, you could have FWKCS read ZZZ as
- the command line, by typing
-
- FWKCS [+zzz] <enter> ,
-
- and carry out the execution which you had intercepted when you
- captured the command line into ZZZ.
-
- This ability to read and write files can be used in editing macros.
- For example, if you wish to edit macro [e], you could type
-
- FWKCS [e] [-file_e] <enter> ,
-
- then edit FILE_E, ending the line with a carriage_return line_feed,
- and then type
-
- FWKCS [+file_e] /de <enter>
-
- to load the edited material back into FWKCS as macro [e]. Or, you
- could use it as another macro, e.g., as [b], and call them from the
- command line as appropriate.
-
- The ability to load macros still applies when FWKCS.COM is a
- compressed file, provided that its .COM structure has not been
- damaged. For example, if you compress FWKCS.COM using Phil Katz's
- PKLITE(R), you can run the example above, FWKCS [+macrob] /db <enter>.
- FWKCS makes the changes, and writes itself to wherever it was called
- from, if permitted, with the resulting .COM file in uncompressed form.
- (The ability for FWKCS to write macros to a text file does not depend
- on whether FWKCS.COM is stored on disc in compressed form.)
-
- This flexibility helps support the applications which the FWKCS
- contents_signature system makes feasible, including, by way of
- example and without limitation, the /a auxiliary functions.
-
- The options can be upper or lower case.
-
- For various suboptions, there is an initial letter, followed by a
- number or a comma ",", followed by further information used by that
- suboption (such as where a subdirectory is to put a file in,
- d:\path\subdir or where to find a file d:\path\filename.ext or
- some numbers to use, etc.) ending with a semicolon ";", after which
- the next option starts. If the suboption does not need such
- information, then the next option is put immediately after it. The
- whole sequence of options forms one contiguous string.
-
- When the command options are pieced together from macros, if there is
- no space between the macros, then they are put together to form one
- string. To see an example of this, you can put material into [c] [d]
- and [e], then type
-
- FWKCS [cde] [-sample]<enter>
-
- and then type
-
- TYPE sample <enter>
-
-
- Error messages are logged to FWKCS.ERR. Error information is returned on exit
- via the errorlevel, which can then be used by the calling program (or .BAT
- file). For more information on this, see FWKCS /e.
-
-
- a - Auxiliary functions
-
- The auxiliary functions provide an errorlevel on exit (see FWKCS/e).
-
- Typing FWKCS /a<enter> brings up 3 screens listing auxiliary functions
- which make use of various parts of the program, and which may call other
- programs to perform work which this program sets up for them; and
- continues on the third screen with credits to people whose programs are
- used with these auxiliary functions.
-
- Here is a brief discussion of each of these auxiliary functions:
-
- ----------------------------- discussion of /a
-
- Auxiliary Functions, FWKCS ... /an(...), "n" at left of item, below.
-
- AF 2-6 use defaults #1-4 listed on FWKCS /d; for AF 2,3,4, * ? OK.
-
- 1 format: FWKCS filelist /a1 (>)nonmatch ; to find filenames not on
- system. this uses a local copy of DIRGUIDE.TXT(TM) (from FWKDG) and
- calls QSORT.
-
- This is for finding filenames in a new list which are not on your
- system. Suppose, for, example, that you have downloaded 300k of text
- directory listings in the format used on PCBoard, including
- multi_line file descriptions, into a file called FILELIST, and you
- want to compare the list with, e.g., some 20 or 30 thousand names of
- zipfiles on your system. This does that for you, preserving the
- multi_line comments to help you decide which you want to download.
-
- To run this, first use FWKDG to make DIRGUIDE.TXT. To do this,
- change to the default directory in which you have PCBoard text
- directories DIR0 - DIR999. Then, with FWKDG and QSORT (or its
- equivalent) on your path or in that subdirectory (using the name of
- whatever sort program you chose, where I have indicated QSORT)
-
- to make short form of DIRGUIDE.TXT containing only text directories,
- type
-
- FWKDG /t | QSORT >DIRGUIDE.TXT<enter>
-
- Having made this shorter DIRGUIDE.TXT, type
-
- FWKCS filelist /a1 nonmatch<enter>
-
- to put the non_matched names, with their (multi_line) comments, into
- the file NONMATCH.
-
- DIRGUIDE.TXT has other uses, discussed in detail in sections 4 - 5,
- below. ~ ~
-
- 2 format: FWKCS (d:)(\path\)filename(.ext) /a2(d) ; * ? OK;
-
- Note: the () means that it is optional; this is not macro [d].
-
- Subcommand:
-
- d reDate zipfile(s) to the latest date of the files inside.
-
-
- #2 is to make contents_signature(s), get matching, add new
- signatures, make new index, make report; this uses default files #1-4
- (see FWKCS /d); may call QSORT, LIST.
-
- format: FWKCS /a2m - make Y.BAT = " FWKCS %1 /a2 " to call #2.
-
- This is for finding existing files and adding new material, by a
- one_key command which, for my own convenience, I named Y. (x was
- already in use for cross_referencing an assembler_language program,
- and z for freshening the corresponding zipfile)
-
- To make Y.BAT, type FWKCS /a2m<enter>
-
- (This defaults to not use the d subcommand; you can insert it using a
- convenient text processor.)
-
- Then, just type Y file<enter>,
-
- where "file" = "(d:)(\path\)filename(.ext)"
-
- You can use wildcards in specifying the filename.ext.
-
- When the program is ready, it summarizes its findings, and asks if
- you would like to see the report called d:\path\MATCHING.RPT, telling
- you where the report is. If you type n, it skips displaying the
- report. If you type y, then, if you have LIST and have not specified
- the use of internal scroll, it calls LIST to show you the report, and
- if you have specified that the display be by internal scroll, as
- discussed below, then the report is scrolled on the screen for you.
-
- Then, it asks you if you wish to delete the report. If you type y,
- it deletes the report. If you type n, then it does not delete the
- report. If you have used wildcard(s) in specifying the file(s) to
- process, the program looks for the next file. If it finds one, the
- new material may be used to overwrite the existing MATCHING.RPT. So,
- if you want to collect the reports, you may want to do them one at a
- time, or to write a .BAT program which adds the report to a
- collection file, and then call that .BAT program using a recursive
- DOS command line (see example of recursive DOS command in example
- 2.2, above).
-
-
- 3: {} /a3aNNNNdj,junked;nN,NN(NN);o,oust;mpr,refs;sv(,vdat;)v1,telsysop;w
-
- where {} denotes FWKCS (d:)(\path\)filename(.ext)
-
- Note: FWKCS /a3m makes a .BAT file. To use the m suboption with only the o
- suboption, place the m after the o. (You need the o to impliment execution of
- the m, so this does not reduce your number of options.)
-
- Suboptions:
-
- aNNNN Age in months of latest file in zipfile,
- if older than that, rename file ".OLD"
-
- d reDate zipfile to latest file in it.
-
- j,junked; append to file (d:)(\path\)Junked(.ext) the listing for each
- entry in the zipfile which has been deleted, giving the name which it
- had in the zipfile, together with its contents_signature. This
- provides a record which may be used to support retrieval of the
- same material from other files on the system, regardless of the name
- used elsewhere on the system.
-
- m delete file from zipfile if a cs_match was found in CSLIST.SRT or
- CSLIST1.SRT
-
- nN,NN(NN); novelty test, based on comparison of contents_signature(s) of
- all entries in a zipfile against the full list for the whole system.
-
- This is actually three, different tests:
-
- n1,NN bad if <NN% new; NN is a 1 or 2 decimal_digit percent value
-
- n2,NNNN bad if <=50% new AND <=NNNN new; this may be especially
- useful in cases where a few files are stuck into a zipfile which
- otherwise only contains files which are already on the system, e.g.,
- where someone has put in an ad, or a contrived "introductory" blurb.
-
- n3,NNNN bad if >=NNNN cs_matched; this might be used in situations
- where people have a collection of items, such as music, and one wants
- to catch and stop duplication of internal files.
-
- if question as to sufficient novelty arises, rename file ".QSN".
-
- o,oust make a list of files to be deleted from a zipfile, giving their
- names inside the zipfile. "oust" can have full d:\path\filename.ext
- To operate under /a3 or /a4, the "o" command must be accompanied by a
- filename as a target to which to send names for deletion from the
- zipfile, else it is cancelled.
-
- The o subcommand prepares a list for deletion according to
- subcommands m, p, and w.
-
- NOTE: the o subcommand employs internal path information for
- selective operation if a zipfile contains different files which have
- the same name (see discussion about virus testing, in relation to
- /a4, below).
-
- p Purge non_AV file(s) from Authenticity Verification Zipfile.
-
- r,refs collect references with matching contents_signature cited in
- CSLIST.SRT and CSLIST1.SRT. These are marked with a lower_case "r"
- in decimal_column 17, and have this format:
-
- | 16 characters| | 16 characters|
- CONTENTSIGNATUREr CONTENTSIGNATURE
- |4s| (four spaces or markings)
-
- |<-- column 17
-
- In each output line, the two contents_signatures are swapped, so that
- the one which was on the right is at the beginning of the line, where
- it can be used for finding another cs_match; and the lower_case "r"
- is capitalized to "R", to help avoid confusion.
-
- Because FWKCS can search a roughly 10 Megabyte file in typically a
- fraction of a second, this ability to make cross_references against
- the entire system is potentially a remarkably powerful tool.
-
- s keep Same extension (don't rename file); but still sets ERRORLEVEL:
- if it would have renamed the file, then if s, it displays the
- errorlevel on the screen. In either case, it returns the errorlevel
- when it exits. This subcommand is useful for integrating the FWKCS
- contents_signature system into .BAT programs, etc.
-
- v(,vdat;) call SCAN for plain_file Virus (use external virus_data_file)
- where vdat indicates (d:)(\path\)filename(.ext), an external
- virus_data_file made according to McAfee Associates instructions.
- Otherwise, it just calls SCAN. NOTE: "v" can be used without the
- external data file. It is a separate command, and has a different
- capability than "v1", below. If v is not explicitly given and
- "v1,telsysop;" is specified, v without external data is assumed.
-
- v1,telsysop; d:\path\file for warning about "virus"
-
- w Wipe (tell o to delete) from a zipfile every file which has a
- contents_signature which matches a cs in CSLIST.SRT or CSLIST1.SRT
- which is marked in decimal_column 17 with a lower_case "w".
-
- if NOT s, renames files:
-
- >NNNN months old ".OLD"
-
- duplicate_zcs ".DUP" - the file is a zipfile and all the files in it
- seem to be in one_to_one correspondence with a set of files
- appearing in a zipfile which is known to the system, regardless
- of name, order, comments, compression ratio, or dates
-
- question sufficient novelty ".QSN"
-
- redundant".RED" - the file is a zipfile and all of the files in it
- are not new, but they do not all appear as the only contents of a
- zipfile known to the system
-
- redundant_non_zip ".RNZ" - the file is non_zip and not new
-
- virus ".VIR" - in the case of /a3, this refers to the outer shell,
- because a zipfile would not be unzipped during an /a3 test
-
- exclusion_flagged ".XFL" - in searching for matches for the
- contents_signature(s) for a file or for the files in a zipfile, a
- lower_case "x" was found in decimal_column 17 of a matching cs in
- CSLIST.SRT or CSLIST1.SRT.
-
-
- To make ACCESION.BAT to call this collection of functions, type
-
- FWKCS /a3m <enter>
-
- ACCESION.BAT = " FWKCS %1 /a3[b] "
-
- Then, prepare the macro [b], by typing
-
- FWKCS ContiguousStringOfOptionsUpTo73BytesLong /db <enter>
-
- and check to see that it came out OK by typing
-
- FWKCS /d <enter>
-
-
- This is for accessioning files into the contents_signature system,
- and can process both zip and non_zip files together. It accepts
- wildcards. It summarizes its results to the screen as it goes, and
- treats the filename.ext for each file as follows:
-
- If the file passes the various tests which you have specified,
- the name is unchanged, and the contents_signature(s) are made
- part of the system;
-
- -----
-
- If the program tries to change a name and runs into a name
- conflict, it reports this to the screen; else, if not s, the
- filename is changed as listed above.
-
- To run it, type ACCESION *.*<enter>, or you can be more specific, if
- you wish.
-
- It can handle a single file, or, if you wish, be turned loose on
- part of, or a whole, (sub)directory.
-
- After running this on a collection of files, you may want to run
- FWKCS /v, as discussed below, to help keep your update_time
- conveniently short.
-
-
- 4: {} /a4aNNNNdf,free;j,junked;nN,NN(NN);o,oust;mpr,refs;sv(,vdat;)v1,tsysop;wz
-
- like #3, but PKUNZIPs zipfiles; can test for virus in file which was
- inside zipfile, and for zipfile in zipfile.
-
- f,Free; subdirectory into which to unzip files; default = ##CELLAR
-
- z ZIPs_only, else can handle both zip and non_zip files.
-
- In addition to all the operations which can be performed by /a3,
-
- if NOT s, renames
-
- failed ziptest ".FZT"
-
- virus ".VIR" - including both virus in shell and virus inside zipfile
-
- Discussion:
- It is possible to put two different files with the same
- filename into a zipfile, by using the PKZIP -r and -p options
- to recurse subdirectories and retain the paths. Because of
- this, it is not necessarily sufficient to just unzip all of a
- zipfile together into a single subdirectory. If you use the
- PKUNZIP -o option, so that the system does not "hang", a
- second occurrence of the same filename causes the first file
- with that name to be overwritten. Thus, SCANning the
- subdirectory for viruses would not find a virus hidden in the
- first of those two files. For many systems, it could be a
- security risk to let a node create a large number of
- subdirectories, and the individual nodes are not given CREATE
- rights for making subdirectories.
-
- When testing for viruses, preparing to delete material from
- within a zipfile, or searching for zipfile(s) inside a
- zipfile, FWKCS uses contents_signatures to test for whether
- the zipfile contains different files with the same filename.
- Under /a4, /a5, and /a6, such zipfiles are processed by
- separately unzipping and scanning groups of files which have
- the same inner_path and different filenames.
-
- zip in zip ".ZIZ" - a zipfile was found inside a zipfile
-
- if z, nonzip".NZ" - this extension is to avoid confusion which might
- be caused by forcing a zipfile test on a file which is non_zip.
-
- format: FWKCS /a4m - make ACCESZIP.BAT = " FWKCS %1 /a4[b] " to call #4.
-
- with the same prodecure described for /a3 above for making macro [b].
-
- 5 --- auto test + accession files:
-
- FWKCS file (UPLOAD) /a5aNNNNc(,zcom;)de(2),zizdir;f,free;j,junked;l,uplog;
- nN,NN(NN)(,qsndir);ompq,potvir;r,refs;st,trashold;v(,vdat;)v1,telsysop;wz (out)
-
- (options are contiguous; command_line can use macros + config. file(s); see /h)
- The default macros for this are [cde], providing 219 bytes of internal
- storage available for inclusion in the command line.
-
- runs under PCBoard v14.n; may call QSORT, PKZIP, PKUNZIP, SCAN.
-
- default output: can make PCBPASS.TXT or PCBFAIL.TXT.
-
- (out) if present, receives message and suppresses PCBPASS.TXT, PCBFAIL.TXT.
-
- Whether or not UPLOAD,
-
- --- sets errorlevel (see /e)
-
- | f,Free; empty subdir, defaults to ##CELLAR. Note that normally there is
- | no path for the ##CELLAR. For a multi_node system, such as an
- | electronic bulletin board, a ##CELLAR subdirectory is placed
- | directly under the default directory of each node. All of these
- | free workareas have the same name, for example, ##CELLAR.
- | Because the free workarea does not have PATH specification,
- | each separate node automatically does its work in its own,
- | separate ##CELLAR. This lets the system handle simultaneous
- | uploads without overlapping the workareas.
-
- v(,vdat;) call SCAN for Viruses (use external virus_data_file).
-
- Note:
-
- under /a5, if UPLOAD, then o or v invokes test for whether a
- zipfile contains different files with the same filename, so that
- such a zipfile can be sequestered or deleted.
-
- under /a5, if NOT upload, then does not test for whether a zipfile
- contains different files with the same filename, so as to not
- interfere with providing results of PKUNZIP test of file integrity
- for a file already on the board.
-
- v1,telsysop; d:\path\file for warning about "virus".
-
- z Zipfiles only, forces PKUNZIP test; else handles both plain and zip.
-
- --- if UPLOAD:
-
- excludes (zip)file if cs_match x_flagged;
-
- o run deletions m,w on non_AV zipfile, or Purge non_AV file(s) from
- Authenticity Verification Zipfile. (when running under /a5 or /a6,
- "o" uses a temporary file which is automatically generated and
- deleted)
-
- Note: To avoid accidentally calling /a5m (which makes a .BAT file),
- if you use the m suboption, it can be put after the o. This does not
- reduce your number of options, because o is required to enable
- deletions selected with m.
-
- j,Junked log
-
- m delete file from zipfile if any cs_Match is found for it in
- CSLIST.SRT or CSLIST1.SRT. (see Note above re position of m relative
- to o)
-
- p Purge non_AV files from AV zipfiles
-
- r,Refs xref - cross_referencing is discussed under /a3
-
- w Wipe if w_flagged.
-
- aNNNN Age test in months.
-
- d reDate zipfile to latest file in it.
-
- c(,zcom;) strip (replace) zipfile Comment; else keep. "zcom" can have
- full path.
-
- e(2),zizdir; upload crEdit for zipfile(s) with zipfile(s) inside:
- if and only if the subdir exists, then e2=yes.
-
- l,uplog; overrides default upload Log, can use full path.
-
- nN,NN(NN)(,qsndir); novelty test, as described above for /a3. If
- subdirectory (here listed as qsndir; the subdirectory can have full
- path) is provided to receive the uploaded file (for further
- consideration), then, if the file does not pass this test, the file
- is put into that subdirectory and upload credit is given; otherwise,
- an uploaded file which does not pass this test is deleted and upload
- credit is not given.
-
- q,potvir; Quarantine, subdirectory for Potential virus; subdir can have
- full path.
-
- s Save rejects, else delete or sequester (that's what those special
- subdirectories are for).
-
- t,trashold; optional subdirectory into which is put an uploaded zipfile
- rejected as redundant or duplicate (errorlevels 8, 9, 10).
-
- --- ELSE, for file integrity test or contents_signature.
-
- a zipfile is tested for file integrity using PKUNZIP -t .
-
- a non_zip file is processed to produce a FWKCS contents_signature,
- which is provided to the user - this can then be compared with other
- contents_signatures, to avoid downloading duplicates.
-
- To run this, type
-
- FWKCS /a5m <enter>
-
- to make PCBTEST.BAT =
-
- FWKCS %1 %2 /a5[cde]
-
- Then, choose which options you are going to use, and prepare the macros
- [cde], by running
-
- FWKCS ContiguousStringOfOptionsUpTo73BytesLong /dc <enter>
-
- FWKCS ContiguousStringOfOptionsUpTo73BytesLong /dd <enter>
-
- FWKCS ContiguousStringOfOptionsUpTo73BytesLong /de <enter>
-
- Or, if you wish, you can make a .BAT program to do this, or read material
- from text files [+file] into the command line to load each macro separately
- (see example(s) near the beginning of Section 3).
-
- When these macros are called by using [cde] (the square brackets "[]" are
- literal) on the command line, they are run together to make a (contiguous)
- string. That gives you a total of 219 bytes to work with directly; more is
- available, if needed, by using macro [b] and/or by reading material from a
- file into the command line at time of execution.
-
- To check the macros, type
-
- FWKCS /d <enter>
-
- A macro can be replaced with another macro, using the same procedure.
-
- A macro can be deleted by typing its hexadecimal label which appears on the
- left of the FWKCS /d screen. For example, to delete macro [b], type
-
- FWKCS /db <enter>
-
- To reset all of the defaults, you can run REVERT.BAT, which is provided as
- part of FWKCS109.ZIP.
-
- Please see also the detailed discussion in example 2.2, above.
-
- This automates the evaluation and testing of uploads onto an
- electronic bulletin board system operating PCBoard 14.n, including
- preparation of messages to users, testing new zipfiles, updating the
- contents_signatures system, keeping a log, and deleting rejects. It
- is able to create a contents_signatures analysis of a new zipfile and
- compare that with the contents_signatures for all the files in all
- the available zipfiles on the system, and recognize as redundant a
- zipfile made of pieces which appear as separate pieces within
- separate zipfiles on the system, quickly enough to make a timely
- response to the user and to play a role in controlling the
- disposition of the incoming file.
-
-
- 7. format: FWKCS (infile) /a7.n(flags) (outfile1 (outfile2))
-
- To make it more convenient to use flags in column 17 of CSLIST.SRT
- and of CSLIST1.SRT, FWKCS has an auxiliary function to strip flags,
- insert a flag, select all entries which have a flag in a search list,
- and split a file according to whether each line has a flag in a search
- list.
-
- if INFILE is not specified, "standard input" is assumed.
- if OUTFILE is not specified, "standard output" is assumed.
-
- Because INFILE and OUTFILE are separated by the /option, it is
- possible to omit either without affecting the other. This lets FWKCS
- open an output file at the end of a pipeline.
-
- /a7.0 strip all flags.
-
- /a7.1flag insert (lower_case) flag. The flag can be put into the command
- line in upper or lower case; the flag as written into the output file
- in column 17 is in lower case.
-
- /a7.2flags (in /a7.2, flags are compared independent of case):
- if no specified flag, default is all flags.
- if no outfile2, output only lines with a matching flag;
- else put lines without matching flag in outfile2.
-
- Suppose, for example, you had a set of commercial files which you
- wanted to exclude from your system. You could put just those files
- all together into one subdirectory, and then enter them for automatic
- exclusion by running this command pipeline:
-
- dir | fwkcs /1cefp | qsort | fwkcs /a7.1x |fwkcs /u <enter>
-
- If you wish, you could do these steps one at a time,
-
- dir >list1
- fwkcs /1cefp list1 cslist.tmp
- del list1
- qsort cslist.tmp cslistmp.srt
- del cslist.tmp
- fwkcs cslistmp.srt /a7.1x xcslist.srt
- del cslistmp.srt
- fwkcs /u xcslist.srt
-
- You can make the XCSLIST.SRT file available to others, and they can
- perform the single (last) step to load it into their systems.
-
- Similarly, if there are ads which you wish to automatically delete
- from non_AV zipfiles when processing incoming uploads, you can use
- /a7.1w instead of /a7.1x , and mark their contents_signatures for
- automatic Wipe.
-
- If FWKCS is on your PATH, you can install such a marked file on your
- system by typing, for example,
-
- fwkcs /u wcslist.srt <enter>
-
- from anywhere on your system from which you can call FWKCS -- the
- rest is handled automatically.
- ----------------------------- END of discussion of /a
-
-
-
- d - Default names, paths, macros (discussed further, below)
-
- To change any one of the entries, use its single hexadecimal digit on
- the left. For example, to specify a path D:\TIMBER\ for the uploads
- log, item A, type
-
- FWKCS d:\timber\fwkupld.log /da<enter>
-
- To change it back to what it is on the left (the initial default), type
- FWKCS /da<enter>.
-
- To put in a path C:\DOS\ for finding PKUNZIP.COM, item 7, type
-
- FWKCS c:\dos\pkunzip.com /d7<enter>
-
- and so on.
-
- For safety, the location of the specific copy of FWKCS which you are
- working with is presented at the bottom of the display. If you type
- FWKCS/d<enter> just before you make the change, the place where you
- will be making your entry will be directly below a display of this
- specific d:\path\name.ext information, to help you be aware of which
- copy you will be making a change in. This can be particularly important
- on networks.
-
- For speed of execution, please use the /dn option to specify efficient
- paths to reach the programs called by FWKCS.
-
- There are two special cases of using /dn to suppress an operation:
-
- FWKCS has an internal scrolling capability which it can use if it
- does not find LIST. If you wish to use this scrolling instead of
- LIST, you can prevent a search for LIST by putting a "." (period) in
- place of the filename, by typing FWKCS . /d8<enter>
-
- Similarly, if you do not wish to keep an uploads log, you can
- suppress this option by putting a period in place of item A, by
- typing FWKCS . /da<enter>
-
- macros: these provide a way for you to use longer command lines than are
- supported by DOS. Each of the macros can be a contiguous string up to
- 73 bytes long. They can be loaded in just the same way as the paths,
- etc, above are put in, using FWKCS /dn, where n designates the macro,
- so you would use /db, /dc, /dd, or /de.
-
- Macros can be loaded from files prepared separately, using the ability
- of FWKCS to accept a file as part of the command line. For example,
- suppose you used a word processor to prepare a file called NEWMACRO.
- To put the contents of that file into macro [b], you could type
-
- FWKCS [+newmacro] /db <enter>
-
- To write the contents of macros [cde] together to a single file DID,
- you could type
-
- FWKCS [cde] [-did] <enter>
-
-
- e - Errorlevels + messages
-
- This screen specifies the meanings for various errorlevel values which
- FWKCS can provide. Various of these errorlevels can be used to control
- a .BAT program, providing considerable versatility in applications.
-
- The statements of meanings for the errorlevels also are themselves
- strings of characters which are used in creating messages delivered
- by FWKCS under the various circumstances to which they refer. Thus,
- they serve two purposes.
-
- f - Find if contents_signature(s) in CSLIST.SRT match the input, set
- errorlevel.
-
- This provides a way to incorporate FWKCS into .BAT programs, to
- provide greater flexibility as to the response which the system makes
- under the specific conditions reported via the errorlevel. The f
- command does not gather material into a report; its output is via the
- errorlevel setting.
-
- g - Get all contents_signature(s) in CSLIST.SRT matching input, set
- errorlevel.
-
- This provides the same errorlevel information to control .BAT
- execution, and gathers (sometimes a lot of) matches, delivered either
- to a file named in the command line after the options, or via the
- 'standard output'. This output can be used for a variety of purposes,
- such as sending reports to users, or preparing reports, or looking for
- waste, etc.
-
- f,g suboptions:
-
- j,Junked;mnN,NN(NN);o,Oust;pr,Refs;w
-
- j,Junked keep a log of what is proposed for deletion.
-
- m collect for deletion from a non_AV zipfile every file in that
- zipfile for which a contents_signature Match was found in CSLIST.SRT
- or CSLIST1.SRT.
-
- nN,NN(NN) Novelty test, see discussion under /a3, above.
-
- o,Oust list of names as they appear inside the zipfile, to use with
-
- PKZIP zipfile.zip -d @oust
-
- to carry out the deletions.
-
- p include in the oust list every non_AV file found within an
- AV_zipfile.
-
- r,Refs cross_Referencing, see discussion under /a3, above.
-
- w collect for deletion all files found in non_AV file for which a
- matching contents_signature in CSLIST.SRT or CSLIST1.SRT was marked
- in decimal_column 17 with a lower_case "w".
-
- These are the same as discussed for /a3. They provide the ability to
- remove unwanted material from a zipfile, and to collect
- cross_references against the entire system.
-
- h - Help (or FWKCS <ENTER> sans option); see also /a , /d , /e , /l, /1h, /1t.
-
- i - make Index CSLIST.NDX for use with CSLIST.SRT. (i m u v may take a while)
-
- The reason why the program can search for matches as quickly as it does
- is because it does not have to search sequentially. It uses information
- properties of a contents_signature to find where to look in the files,
- and the index files are generated according to that system.
-
- l - License and dedication.
-
- Reformatted (see the /l screen):
- - - - - - - - - - - - -
- FWKCS(TM) Ver 1.09: Provided that no fee is charged for the use,
- copying, or distribution; and provided that they are not modified in
- any way; then, EXCEPT FOR USE IN A COMMERCIAL, SCHOOL, OR GOVERNMENTAL
- ENVIRONMENT, you are free to use and copy FWKCS(TM) and FWKDG(TM), and
- to distribute them solely in their original Authenticity Verification
- Zipfile named FWKCS109.ZIP with AV code = "# OFT466 Frederick W. Kantor
- (founder/information mechanics)"
-
- Frederick W. Kantor disclaims any and all warranties as to this
- software, whether express or implied, including by way of example and
- without limitation any implied warranties of merchantability, fitness
- for a particular purpose, functionality, data protection, or data
- integrity.
-
- Dedication: The file format of the files created by this program,
- which file format is original with the first release of this software;
- and the related nomenclature, "contents signature", "zipfile contents
- signature", "file contents signature", "cs", "zcs", and "fcs"; are all
- hereby dedicated to the public domain.
-
- If you have any questions or comments re FWKCS(TM) or FWKDG(TM),
- please send them to Fred Kantor via The Invention Factory BBS,
- 212-431-1194.
-
- If you find FWKCS(TM) quick and useful in private, personal use,
- your payment of $25 by check or money order to Fred Kantor, 523 West
- 112 Street, New York, NY 10025-1614, would be appreciated. Licensing
- available.
-
- - - - - - - - - - - - -
-
- Discussion:
-
- First, PLEASE TAKE NOTICE, that use of this software in a commercial,
- school, or governmental environment, without payment and registration,
- is not permitted.
-
-
- |
- | R E G I S T R A T I O N
- | - - - - - - - - - - - -
- |
- |
- |
- | FWKCS Registration Prices effective 1991 Mar 07
- | -----------------------------------------------
- |
- |
- | Application Registration
- | ----------- ------------
- |
- | Personal private use $ 25.00
- |
- | Electronic Bulletin Board 1 Node $ 25.00
- |
- | 1-3 Nodes $ 48.00
- |
- | 1-6 Nodes $ 70.00
- |
- | 1-9 Nodes $ 92.00
- |
- | 1-99 Nodes $ 194.00
- |
- |
- | For Electronic Bulletin Board use, the registration fee depends
- | on the capacity of the BBS software installed, such as may be
- | seen on the welcome screen or otherwise remotely noted.
- |
- | The registration upgrade price on going to a larger capacity is
- | just the current new registration price minus the current
- | registration price for the smaller system.
- |
- |
- |
- |
- | Registration is by Firt Class U.S. Mail addressed to
- |
- | Fred Kantor
- | 523 West 112 Street
- | New York, NY 10025-1614
- |
- |
- | Payments
- | --------
- | Preferred forms of payment are Money Order, Cashier's Check, or
- | Personal/Company Check, made payable to "Fred Kantor" or to
- | "Frederick W. Kantor".
- |
- | For safety, Please mark all checks, "For deposit only."
- |
- | Please do not send cash through the U.S. Mail.
- |
- |
- | Support
- | -------
- |
- | Telephone support is available for registered users only.
-
-
-
- All who wish to use this software in a commercial, school, or
- governmental environment, contact me in writing.
-
-
- To contact me in writing and/or to send payment, please use either my
- address as it appears above, at the bottom of the FWKCS /h or /l screen
- or, if you prefer:
-
- FREDERICK W KANTOR
- FOUNDER
- INFORMATION MECHANICS
- 523 W 112 ST
- NEW YORK, NY 10025
-
- That is my address as used by The American Physical Society and, with
- small variation in punctuation, elsewhere; by using the same address,
- you may help keep down the number of ways my name is included in
- numerous time_wasting listings.
-
- m - Merge unique full lines from sorted files: f1 into f2, or f1 f2 make f3.
-
- This is used internally for options /u and /v, and for some auxiliary
- functions.
-
- For example, the two_file form, f1 into f2, lets you merge a 100k
- sorted file into a 9.5 Meg sorted file to produce a 9.6 Meg sorted
- file, all done within a total space of less than 10 Meg. This is
- especially convenient if you wish to run the whole system up in memory,
- e.g., using a ram_disk.
-
- Another example: if you are writing a program, with 16 portions which
- are kept in a zipfile, and add to one of the parts, only that file is
- added to the zipfile by the PKZIP -f command. When you accession that
- revised file into the contents_signature system, only two lines finally
- get added: one carrying the new contents_signature for that modified
- file, and one carrying the new zipfile_contents_signature for the whole
- zipfile as a collection. This may take two steps: if you have used the
- /v option between the two entries, then final consolidation would not
- take place until you ran the /v option again, for reasons which are
- discussed below.
-
- r /1r - Redirect screen a,d,e,h,l,1h,1t to "standard output";
- e.g., FWKCS/rd >filename, FWKCS/1rt >>filename.
-
- This provides a convenient way to redirect the screen messages into a
- file. The default is to send them to the "standard error output", which
- usually means that they are sent to the screen. The reason for making
- the default go to the screen rather than be redirected to a file was to
- help keep the output file, or output pipeline, relatively clean.
-
- This is convenient for documentation. For example, before and after you
- use the /d option to change the defaults, you can send a copy of the
- screen to a file or to a printer, to make a record for future
- reference. For example,
-
- FWKCS /rd >before
-
- FWKCS s:\logs\fwkupld.log /da
-
- FWKCS /rd >after
-
- t,nnnn.nn decimal 0 - 9999.99 seconds of retry (networks)
-
- This is related to network systems, to provide some control of how long
- the program will retry.
-
- u Update FWKCS (CSLIST1.NDX CSLIST1.SRT) /u (<) CSNEW.SRT , can create full ().
-
- This accepts a single_line or sorted input, of contents_signatures,
- adds them to one of the two default sorted contents_signatures files,
- and makes a new index for that file. If the file and its index are
- missing, it creates them. This is used in NULSTART, ZIPSTART, and
- FULSTART to create CSLIST1.SRT and CSLIST1.NDX.
-
-
- v - reVise default files #1-4;
- vp add only unique cs(+flag+ref)'s with Path;
- vs Sans path.
-
- Revise default files #1-4, consolidate into masterlist, restart
- CSLIST1. This makes use of the default filenames for the two
- contents_signatures files and their respective indexes. This system
- accomodates rapid updating by maintaining two sorted files of
- contents_signatures. One of them is used as a master_file, and is
- updated only occasionally. The other is kept conveniently short, so
- that it can be quickly added to and re_indexed. Redundant lines are
- dropped on the transfer of lines from the rapid_update file to the
- master_file. The program is able to keep track concurrently of whether
- a match was found for each of 16000 (sixteen thousand) signatures from
- the zipfile being evaluated, regardless of which of the two lists the
- match was found in. Thus, a zipfile containing no more than 16000
- files, some of which are in one list and the rest in the other, can be
- recognized as redundant.
-
- vp add only unique cs(+flag+ref)'s with Path;
- This accepts inputs from two possibly large files, one in the default
- location for CSLIST.SRT, the other in the default location for
- CSLIST1.SRT. It makes a new CSLIST.SRT, by scanning CSLIST1.SRT and
- finding lines which start with unique contents_signatures (+flag),
- which are transferred into CSLIST.SRT complete with their paths. It
- then makes an index for CSLIST.SRT and restarts CSLIST1. If a flag is
- found in decimal column 17, the comparison is made according to the
- requirements for that flag.
-
- For comparison includes
-
- e contents_signature + flag + filename
-
- k entire line
-
- r contents_signature + flag + 4_byte_note + contents_signature
-
- w contents_signature + flag
-
- x contents_signature + flag
-
-
- vs Sans path.
- This is like vp, but, except in case of flag k, it leaves off the
- d:\path part of the line when it copies it into the new CSLIST.SRT.
- This is intended to provide the ability to carry forward the
- content_signatures of files which have been retired from the system,
- e.g., because they were obsolete. The presence of these cs's protects
- against accidental uploads of the older files being accepted again as
- if they were new. Because the files would in fact not be present,
- there would seem relatively little reason to keep the d:\path as part
- of the new cslist. The absence of that part of the line then provides
- an easy way to identify which lines they are: those lines do not have
- the ":" which separates the drive letter from the path. Thus, a simple
- search, using the IBM/MS DOS FIND function,
-
- FIND /v ":" <CSLIST.SRT >CARRIED<enter>,
-
- would collect all of those entries into the file CARRIED. It is worth
- noting that the only part of CSLIST.SRT which cannot be reconstructed
- by scanning the system is the part which would be copied into CARRIED
- by this command line. If you are pressed for time or cost concerning
- backing up your system on a regular basis, this might help. If you wish
- to be able to use the master_list as part of checking to see that you
- have restored all your files, then a back_up of that master_list would
- probably be in order.
-
- A sample of a setup for a complete revision, carrying forward cs's from
- retired files, is presented in REVCSLST.BAT, a full listing of which
- appears near the end of this DOC. You may need to rewrite parts of it,
- according to how you have set up your system.
-
- From the /d screen, with labels added:
-
- FWKCS /d - display this screen, showing current defaults on right of "=".
- 1. C:\CS\CSLIST.NDX = C:\CS\CSLIST.NDX <---<< index for master_list
- 2. C:\CS\CSLIST.SRT = C:\CS\CSLIST.SRT <---<< sorted master_list
- 3. C:\CS\CSLIST1.NDX = C:\CS\CSLIST1.NDX <---<< index for quick_update_list
- 4. C:\CS\CSLIST1.SRT = C:\CS\CSLIST1.SRT <---<< sorted quick_update_list
-
- For example, you might choose to put both index files, with the
- quick_update_list, into a ram_disk. If you have the space, all four
- files can go into ram_disk.
-
- If you are using hard_disk or slower, try to avoid having the index
- files all the way across the radial traverse from where you keep their
- associated lists, and "dress" your disk to make each of the files
- contiguous, to reduce head travel time.
-
-
- FWKCS.COM /1options
- ~~~~~~~~~~~~~~~~~~~
- Options h,t suppress acdefmpsvwxyz. /1r Redirect screen to "standard output".
- The single "/1" with option letter(s) are all contiguous.
-
- aNNNN = if latest file in zipfile is older than NNNN months, set errorlevel=2.
-
- NNNN is decimal. This /1 option makes available, via the errorlevel,
- information used internally in support of various of the /a auxiliary
- functions discussed above. It can be used, for example, to control a
- .BAT program in testing the "age" of zipfiles.
-
- c = expect a Control_list; if its filename is not given, use 'standard input'.
-
- You can make a list of files in root and sub directories for drives
- C:-Z: by using FWKDG/l, and feed it in as a pipelined input (please see
- examples above). You can use the directory command DIR to feed a
- pipeline, and use the e option together with the c option, so as to
- parse the DIR output and accept it as a list of files to process -- in
- this way, you can use the DIR wild-characters ? and * . You can use the
- c option without any pipeline or filelist, and the program will wait
- for you to type in one or more [d:\][\path\]filename.s, which can be
- separated by ^E and followed by <enter>.
-
- d = reDate zipfile to latest file in it.
-
- This is handy when you have zipfiles respectively with dates different
- from the last date of the files contained, as often happens when you
- get programs from an electronic bulletin board.
-
- e = Edit input from control_list.
-
- This is for use together with the c option, so that you can accept
- the output of the DIR command, which makes filenames which may have
- a gap between the filename and the ext. This option gets the d:\path\
- from the directory listing header, and parses the file to use the
- names.
-
- f = make a "File contents signature" for (each) File in zipfile(s).
-
- This looks inside the zipfile named on the command line, or inside each
- file in the control list; tests to see if the file is a zipfile
- (including both storage zipfiles and self-extracting zipfiles); and
- then uses information stored in the ZIP format to make a contents
- signature for each of the files in the zipfile; the zipfile format
- already provides the 32-bit CRC, so this is a relatively quick
- operation. The output includes the contents signature for the file
- inside the zipfile (which uses the 32-bit CRC and the uncompressed
- length of that file), the name of that file, the name of the zipfile in
- which it was found, and, if a drive\path\ was specified, the drive\path
- where that zipfile was found.
-
- For example, when this is run with FWKDG/l, you can get the contents
- signatures for all the files in all the zipfiles on all the drives
- C:-Z: by using a single pipelined command line:
-
- FWKDG/l|FWKCS/1cf >outfile
-
- m = Make MULTCNT.RPT; cancels acdefpvwxyz
-
- This accepts as input a sorted contents_signature file, and makes a
- report of how many files had the same contents_signature, and therefore
- probably had the same contents. Please see an example of an output
- report shown in 8 below.
- ~
- p = make a "file contents signature" for (each) Plain file (non_zip).
-
- In this case, unlike the case of a file in a zipfile, FWKCS can't just
- look up the 32-bit CRC: it calculates it. This is written in assembly
- language, and, even with an 8088, it carries the running variables in
- the CPU chip. Then, it makes a contents signature. The output contains
- the contents signature; then the filename; then a designation "f cs",
- to mark that it is an independent file contents signature rather than
- the signature for a file contained in a zipfile; and, if it was told a
- drive\path for that file, the drive\path.
-
- r = Redirect messages to standard output.
-
- s = Scan a sorted signature_file for signature_multiple(s); cancels cdefpyz
-
- This is for use after the signature file has been sorted. It looks for
- non-unique content signatures. These usually mean that there is the
- same contents in the two (or more) files. The probability of error on
- this is discussed above. One should bear in mind that a storage zipfile
- which has the same file contents as a self extracting zipfile will also
- have the same contents signature; and that a zipfile which contains
- only one file will have the same contents signature as the single file
- which it contains. This scan is written in assembly language, for
- speed. The input can come from the pipeline. For example, this single,
- pipelined command line:
-
- fwkdg/l|fwkcs/1cz|qsort|fwkcs/1s >zcs_dups
-
- is sufficient to find all the redundant zipfiles on drives C:-Z:, and
- list them, grouped together, in ZCS_DUPS.
-
- The output contains spacer lines made of hyphens, and line entries for
- only those input lines which have matching contents signature. This can
- tell you, for example, if the same file contents is present in files
- located in different zipfiles, or tell you that an ordinary file has
- the same contents as a file with a different name and date, even if
- that file is stored in a zipfile.
-
-
- v = if any zip, set errorlevel=1 (sans cs output).
-
- This bring outside, via setting the errorlevel, part of the
- interpretation of files, and might be used externally for controlling a
- .BAT program. For example, it is used in testing whether any file
- unzipped into a subdirectory is itself a zipfile.
-
- w = set errorlevel = 1 if apparently nonzip file.
-
- The /1 default for FWKCS is to do options f, p, x, and z. To do this,
- the program distinguishes between zipfiles and non_zip files, and then
- generates the contents_signature(s) accordingly. If the w option is set
- as part of an explicit command string, FWKCS /1fpwxz [file] and so on,
- then this internal decision is made available to the calling program
- by setting the errorlevel.
-
- x = eXpress if Authenticity Verification available for file and zipfile.
-
- This option causes notations to be made as to the availability of AV
- for the file and for the zipfile, by using lower_case letters "a"
- and/or "v":
-
- For example,
-
- CONTENTSIGNATURE FILENAME.EXTaZIPFILE.EXT v(D:)(\PATH)(,INNERPATH)
-
- "a" designates a file with Authenticity Verification available in a
- zipfile.
-
- "v" designates a zipfile containing at least one AV file.
-
- Because the AV status of the zipfile and the AV status of the file in
- it are separately indicated, if you scan your system to make a new
- CSLIST.SRT using this x option (which updated .BAT files herewith do),
- you can use this command line (FINDUNAV.BAT, in this AV_zipfile)
-
- FIND "v" <C:\CS\CSLIST.SRT | FIND /v "a" | FIND /v "z" >toreject.tmp
-
- to collect into TOREJECT.TMP the identifications, paths, etc., of all
- the non_AV files which have been inserted into AV zipfiles on your
- entire system.
-
- If you find any, then you can run a short .BAS program,
-
- BASICA AVONLY<enter> (or another BASIC for your system)
-
- to use the entries in TOREJECT.TMP to make TOREJECT.BAT, which calls
- PKZIP to delete those non_AV files from the respective AV zipfiles.
- This has been revised to also be able to delete files which were zipped
- with path.
-
- Here is a full listing of AVONLY.BAS:
- ----------------------------------------------------------------------------
- 10 CLS:LOCATE 10,1:PRINT "found:"
- 20 OPEN "toreject.tmp" FOR INPUT AS 1
- 30 OPEN "toreject.bat" FOR OUTPUT AS 2
- 40 WHILE NOT EOF(1):LINE INPUT #1,A$
- 50 J=200:N=INSTR(44,A$,","):IF N>0 THEN J=N-44
- 60 B$="pkzip "+MID$(A$,44,J)+"\"+MID$(A$,31,12)+" -d -k "
- 70 IF N=0 GOTO 90
- 80 B$=B$+MID$(A$,N+1)+"\"+MID$(A$,18,12):GOTO 100
- 90 B$=B$+MID$(A$,18,12)
- 100 PRINT #2,B$:I=I+1:LOCATE 10,7:PRINT USING "#######"; I
- 110 WEND:CLOSE
- 120 SYSTEM
- ----------------------------------------------------------------------------
-
- Then, you can run TOREJECT<enter> to clear out such non_AV files
- without changing the zipfile date(s).
-
- Thanks to what Phil Katz has provided, this use of the /1x option in
- FWKCS provides a way to remove a certain kind of pollution from your
- files.
-
- After you do that, if you find only a few, you may want to test the
- resulting zipfiles one by one using the Y .BAT_file described above,
- and look at the display to see if every remaining entry in the
- laundered zipfile is a duplicate of some other file. If you have a lot
- of files which were laundered, or prefer to handle it more nearly
- automatically, then you may want to run a full preliminary screening
- for zcs_duplicates.
-
-
- y - make "file contents signature" for both zip and plain files as if for
- plain files;
-
- This option is different from options f and z in that it is
- deliberately made to be sensitive to details which f and z are
- designed to avoid. It can be used for looking for exact duplicate
- (zip)files: unlike z, the contents signature made using option y on a
- zipfile depends on compression, names, dates, and order of files in the
- zipfile, and on comment(s). In this case, FWKCS reads every byte in
- the zipfile and calculates its 32-bit CRC, rather than look up CRC
- value(s) in the zipfile. Options p and y can be used in looking for
- change, e.g., in monitoring equipment performance, etc.
-
- z - make a "Zipfile contents signature" for (each) Zipfile.
-
- This is done by reading the 32-bit CRC's for all the files in the
- zipfile, adding them together mod 2^32, reading all the
- uncompressed_file_lengths listed in the zipfile, adding them together
- mod 2^32, and then putting the two pieces together to make a special
- zipfile contents signature. This has special features which are
- discussed above in section 1. The output line is like that for the
- option f , except that the line is marked with a "z cs" to indicate
- a zipfile contents signature.
-
-
- 4. FWKCS screens
- ~~~~~~~~~~~~~~~~~~~~
-
- FWKCS provides seven (sets of) help and information screens, which can
- be generated using these commands:
-
- fwkcs(/h) the default with no command_tail input is the /h help
- screen
-
- fwkcs/a auxiliary functions, including making .BATs to call some
-
- fwkcs/d default names, paths, macros, and how to change them
-
- fwkcs/e errorlevels and messages. various of these messages are
- used by fwkcs in preparing text output.
-
- fwkcs/1h subset of functions for generating and manipulating
- contents_signatures
-
- fwkcs/1t special_purpose commands, and some technical information
-
- fwkcs/l license and dedication
-
- Here is roughly what the screen displays may look like:
-
- this command line: fwkcs/h
-
- may give approximately this screen:
-
- FWKCS(TM) Contents_Signature System, Ver. 1.09. 1991 Mar 07. FWKCS/h for help.
- Copyright (C) 1989,1990,1991 by Frederick W. Kantor. All rights reserved.
- Your use of this program is at solely your own risk: PLEASE HAVE PROPER BACKUPS
- ........................ C A V E A T O P E R A T O R ........................
- Format 1: FWKCS (CSLIST.NDX CSLIST.SRT) /option ((<)in ((>)out)) <ENTER>
- where CSLIST.NDX is index for CSLIST.SRT sorted contents_signature_list.
- 2: FWKCS f1 f2 (f3) /m <ENTER> |Format 1,2,3 grammar: /(r)(t)other_options.
- 3: FWKCS (files)([b])([+file1])[c](options)([de])([+file2]) (files) ([-file3])
- where "[]" are literal characters; [b][c][d][e] are macros (see /d);
- [+file] includes file's contents (/d macros OK) in command line;
- [-file] prevents execution, writes (expanded) command line to file.
- Options: (upper or lower case OK) | Error messages are logged to FWKCS.ERR.
- a Auxiliary functions. d Default names/paths/macros. e Errorlevels + messages.
- f Find if cs_match. g Get cs_matches. h Help (see also /a,/d,/e,/l,/1h,/1t).
- f,g subopts: j,Junked;mnN,NN(NN);o,Oust;pr,Refs;w. (re jmnoprw, see /a #3,5)
- i make Index CSLIST.NDX for use with CSLIST.SRT. (i m u v may take a while)
- m Merge unique full lines from sorted files: f1 into f2, or f1 f2 make f3.
- r Redirect screen a,d,e,h,l to "standard output"; e.g., FWKCS/rd >filename.
- tNNNN.NN 0-9999.99 seconds of retry (networks). l License and dedication.
- u Update FWKCS (CSLIST1.NDX CSLIST1.SRT) /u CSNEW.SRT , can create full ().
- v reVise /d files #1-4; vp add unique cs(+flag+ref)'s with Path; vs Sans path.
- If you find FWKCS(TM) quick and useful in private, personal use, your
- payment of $25 by check or money order to Fred Kantor, 523 West 112 Street,
- New York, NY 10025-1614, would be appreciated. Licensing available.
-
-
-
-
- this command line: fwkcs/a
-
- may give approximately this sequence of screens, with pauses between them
- indicated below as "(pause)":
-
- FWKCS(TM) Contents_Signature System, Ver. 1.09. 1991 Mar 07. FWKCS/h for help.
- Copyright (C) 1989,1990,1991 by Frederick W. Kantor. All rights reserved.
- Your use of this program is at solely your own risk: PLEASE HAVE PROPER BACKUPS
- ........................ C A V E A T O P E R A T O R ........................
- Auxiliary Functions, FWKCS ... /an(...), "n" at left of item, below.
- AF 2-6 use defaults #1-4 listed on FWKCS /d; for AF 2,3,4, * ? OK.
- 1: FWKCS filelist /a1 (>)nonmatch ; to find filenames not on system.
- this uses a local copy of DIRGUIDE.TXT(TM) (from FWKDG) and calls QSORT.
- 2:{FWKCS (d:)(\path\)filename(.ext)} /a2d ;to make contents_signature(s),
- get matching, add new signatures, make new index, make report;
- d reDate zipfile to latest file in it; may call QSORT, LIST.
- format: FWKCS /a2m - make Y.BAT = " FWKCS %1 /a2 " to call #2.
- 3: {} /a3aNNNNdj,junked;nN,NN(NN);o,oust;mpr,refs;sv(,vdat;)v1,telsysop;w
- to accession files|aNNNN months|d reDate zip|s Same .ext|m del if cs_Match|
- j,Junked log|nN,NN(NN) novelty|o,Oust list|p Purge non_AV|r,Refs xref|w Wipe.
- v(,vdat;) call SCAN for plain_file Virus (use external virus_data_file)
- v1,telsysop; d:\path\file for warning about "virus"|if NOT s, renames files:
- >NNNN mo ".OLD"; duplicate_zcs ".DUP"; question sufficient novelty ".QSN";
- redundant".RED";redundant_non_zip ".RNZ";virus ".VIR";exclusion_flagged ".XFL".
- format: FWKCS /a3m - make ACCESION.BAT = " FWKCS %1 /a3[b] " to call #3.
- 4: {} /a4aNNNNdf,free;j,junked;nN,NN(NN);o,oust;mpr,refs;sv(,vdat;)v1,tsysop;wz
- like #3, but PKUNZIPs|f,Free; subdir, default = ##CELLAR|z ZIPs_only|if NOT s,
- renames failed ziptest".FZT"; virus".VIR"; zip in zip".ZIZ"; if z, nonzip".NZ".
- format: FWKCS /a4m - make ACCESZIP.BAT = " FWKCS %1 /a4[b] " to call #4.
- (pause)
- 5 --- auto test + accession files:
- FWKCS file (UPLOAD) /a5aNNNNc(,zcom;)de(2),zizdir;f,free;j,junked;l,uplog;
- nN,NN(NN)(,qsndir);ompq,potvir;r,refs;st,trashold;v(,vdat;)v1,telsysop;wz (out)
- (options are contiguous; command_line can use macros + config. file(s); see /h)
- runs under PCBoard v14.n; may call QSORT, PKZIP, PKUNZIP, SCAN.
- default output: can make PCBPASS.TXT or PCBFAIL.TXT.
- (out) if present, receives message and suppresses PCBPASS.TXT, PCBFAIL.TXT.
- --- sets errorlevel (see /e) | f,Free; empty subdir, defaults to ##CELLAR.
- v(,vdat;) call SCAN for Viruses (use external virus_data_file).
- v1,telsysop; d:\path\file for warning about "virus".
- z Zipfiles only, forces PKUNZIP test; else handles both plain and zip.
- --- if UPLOAD: excludes (zip)file if cs_match x_flagged;
- o run deletions m,w on non_AV zipfile, or Purge non_AV file(s) from AV_zip.
- j,Junked log|m del if cs_Match|p Purge non_AV|r,Refs xref|w Wipe if w_flagged.
- aNNNN Age test in months. d reDate zipfile to latest file in it.
- c(,zcom;) strip (replace) zipfile Comment; else keep.
- e(2),zizdir; upload crEdit for zip in zip: iff the subdir exists, then e2=yes.
- l,uplog; overrides default upload Log. nN,NN(NN)(,qsndir); novelty test:
- n1,NN bad if <NN% new; n2,NNNN bad if <=50% new AND <=NNNN new;(qsndir subdir.)
- n3,NNNN bad if >=NNNN cs_matched. q,potvir; Quarantine, subdir Potential virus.
- s Save rejects, else delete or sequester. t,trashold; subdir, /e 8-10 rejects.
- --- ELSE, for file integrity test or contents_signature.
- -- format: FWKCS /a5m - make PCBTEST.BAT = " FWKCS %1 %2 /a5[cde] " to call #5.
- 6: FWKCS file /a6(); like #5 UPLOAD; can make ascii PASS.TXT, FAIL.TXT.
- (pause)
- 7. format: FWKCS (infile) /a7.n(flags) (outfile1 (outfile2))
- for use with CSLIST column 17 flags:
- if no INFILE, uses "standard input". if no OUTFILE, uses "standard output".
- /a7.0 strip all flags.
- /a7.1flag insert (lower_case) flag.
- /a7.2flags (in /a7.2, flags are compared independent of case):
- if no specified flag, default is all flags.
- if no outfile2, output only lines with a matching flag;
- else put lines without matching flag in outfile2.
- Flags:
- e Extend /vs comparison to include filename + AV_status
- k Keep whole line
- r cross_Reference
- w Wipe
- x eXclude
- ----
-
- FWKDG(TM) Ver. 1.08 is copyright 1988,1989,1990 by Frederick W. Kantor.
- LIST Ver. 7.5e is copyright 1983-90 by Vernon D. Buerg.
- PCBoard v14.5 is copyright 1985-90 by Clark Development Company, Inc.
- PKZIP, PKUNZIP Reg.U.S.Pat. and Tm.Off., Copr.1989-1990 PKWARE Inc., Ver.1.10.
- QSORT Ver. 3.20 is copyright 1985,86,87,88 by Ben Baker.
- VIRUSCAN Version 6.8 74-B is copyright 1989-1991 by McAfee Associates.
- -- please compensate properly.
-
-
-
- this command line: fwkcs/d
-
- may give approximately this screen:
-
- FWKCS(TM) Contents_Signature System, Ver. 1.09. 1991 Mar 07. FWKCS/h for help.
- Copyright (C) 1989,1990,1991 by Frederick W. Kantor. All rights reserved.
- FWKCS /d - display this screen, showing current defaults on right of "=".
- 1. C:\CS\CSLIST.NDX = C:\CS\CSLIST.NDX
- 2. C:\CS\CSLIST.SRT = C:\CS\CSLIST.SRT
- 3. C:\CS\CSLIST1.NDX = C:\CS\CSLIST1.NDX
- 4. C:\CS\CSLIST1.SRT = C:\CS\CSLIST1.SRT
- ---- for speed of execution, please set paths to reach these programs:
- 5. QSORT.EXE = QSORT.EXE
- 6. PKZIP.EXE = PKZIP.EXE
- 7. PKUNZIP.EXE = PKUNZIP.EXE
- 8. LIST.COM = LIST.COM
- 9. SCAN.EXE = SCAN.EXE
- ---- log for uploads; command_line macros BCDE: cite using "[]", e.g., [c],[cd]
- A. FWKUPLD.LOG = FWKUPLD.LOG
- B. =