home *** CD-ROM | disk | FTP | other *** search
/ HomeWare 14 / HOMEWARE14.bin / utils2 / wiz29.arj / WIZ.DOC < prev    next >
Text File  |  1994-04-21  |  35KB  |  943 lines

  1.  
  2.                 WIZ version 2.9
  3.                by Ray Van Tassle
  4.                1020 Fox Run Lane
  5.              Algonquin, Ill, 60102
  6.                 (708)-658-4941
  7.                    April 10, 1994
  8.  
  9.     WIZ program and manual copyright(c) 1990-1994 by Ray Van Tassle.
  10.  
  11.     Abstract:
  12.     WIZ is a lightning-fast file finder. It will find file(s)
  13.     based on full wildcard specifications (more powerful than
  14.     standard DOS wildcard), and can also filter by file size
  15.     and date.  It can:
  16.        * select only executable files (EXE, COM, BAT).
  17.        * select only archive files (ZIP, ARC, etc.)
  18.        * switch you to the disk\directory of a file that it found.
  19.        * execute a DOS command for each file it finds.
  20.        * look inside archives (ZIP, LZH, & ARJ)
  21.        * recursively look inside archives!
  22.        * Correct handling of the special files/directories created and
  23.          maintained by STACKER, DoubleDisk, DoubleSpace,
  24.          Norton FILESAVE, and PCTOOLS DATA Sentry.
  25.  
  26.     It will look on multiple disk drives for all matching
  27.     filenames.  You can pre-specify several default lists of
  28.     disk drives for it to search.
  29.  
  30.  
  31.     WIZ program and manual copyright(c) 1990-1994 by Ray Van Tassle.
  32.  
  33.     WIZ is shareware, NOT freeware!!!
  34.  
  35.     You are granted a limited 21 day evaluation license. At the end
  36.     of that period, you should either delete it and stop using it,
  37.     or send in the registration fee of $20 ($15 if you don't want me to
  38.     send you a disk).
  39.  
  40.  
  41.  
  42.     MANUAL
  43.     ------
  44.     I was tempted to call this program YAFF (yet another file
  45.     finder), but I settled on WIZ.  This is a funny acronym for
  46.     "where is". But it's also short for WIZARD, because it's so
  47.     fast it seems like magic, and it's filename matching is so
  48.     powerful.
  49.  
  50.     It looks on one or more disks for all filenames (including
  51.     directories) that match the specified filename. By default, it
  52.     starts on drive C, and goes up until it runs out of disks.
  53.  
  54.     It has been tested, and works, with DOS 3.x, including Zenith
  55.     DOS 3.30, DOS 3.31, DOS 4.01, DOS 5.0, DOS6.2, and On-Track
  56.     partitioning software.  DOS 3.31+ have large
  57.     (greater than 32MB) partitions with more than 65,536 sectors.
  58.     Zenith DOS 3.30 and On-Track have large partitions by virtue of
  59.     using large sectors (1024, 2048, or 4096 bytes, rather than
  60.     512 bytes).
  61.  
  62.     WIZ normally prints out, for each matching file, the filename,
  63.     date, time, size, and path.  The files are NOT ordered or
  64.     sorted.  All "special" files (hidden, system) are
  65.     flagged with a left-pointing triangle after the filename.
  66.     Optionally, it will list the files in normal fully-pathed form
  67.     (e.g., C:\UTIL\PGMS\ABC.BAT), suitable for processing by a
  68.     program which expects normal filenames.  When the found file
  69.     is inside an archive (-l flag), it will be listed in a form
  70.     suitable for the archiver (e.g.,
  71.     "C:\UTIL\PGMS\FOO.ZIP FILE.EXE")
  72.  
  73.     I deemed that most of the time, people (including me) want it
  74.     to be FAST, rather than in some particular order.
  75.     As WIZ reads the disk, it tries to optimize the head
  76.     motion, so directories are not processed in order of path, but
  77.     in the order that WIZ thinks will be quickest.  However, it will
  78.     generally look at the files in a directory before it looks at
  79.     the sub-directories.  However (especially if you have
  80.     directories with lots of files and sub-directories), it may
  81.     show some files in a directory, then show sub-directories, then
  82.     show more files in the directory.
  83.  
  84.     WIZ will ignore STACKER, DUBLDISK, and DOUBLESPACE container 
  85.     files in the count of files & MB's scanned.  This file has 
  86.     attributes of RHS, and is named "STACVOL.0??", "DUBLSPAC.0??", 
  87.     or "DBLSPACE.0??"
  88.     
  89.     Likewise, WIZ will ignore the special hidden directories where
  90.     Norton's "FILESAVE" and PCTOOLS "DATAMON/SENTRY" move files that
  91.     have been deleted.  These tools & their directories are a super
  92.     undelete, and they are reported by DOS to have been deleted, but
  93.     the respective utilities really just have them tucked away in a
  94.     hidden place.  So WIZ treats these files as not being there, too.
  95.     
  96.  
  97.  
  98.     PERFORMANCE & Comparison with other file-find programs
  99.     ------------------------------------------------------
  100.     Some tests, run on a 486/33mhz, searching for a non-existent
  101.     file on a large disk partitioned into drives C thru J,
  102.     17,000 total files, 747MB in files, in 572 directories.
  103.  
  104.     WIZ 2.9        Target15    FFF45
  105.     -------        --------    -----
  106.     19.1        83.3        53.1    No cache
  107.     
  108.        The command used were:
  109.         WIZ c-j:*qwe*
  110.         TARGET -e -hidden cdefghij: "qwe"
  111.         FFF /e cdefghij: ".*qwe.*"
  112.     
  113.        Notes:
  114.         TARGET claims to have real regexp's but they aren't.
  115.         FFF appears to have real regexp's.
  116.     
  117.  
  118.     When used with a disk cache, of 2MB (2048K).
  119.  
  120.     WIZ 2.9        Target15    FFF45
  121.     -------        --------    -----
  122.     18.7        44.3        40.2    PC-CACHE v6.01
  123.      1.3        16.3         8.3     " 2nd command
  124.  
  125.     19.7        37.4        30.2    SMARTDRV v5.0
  126.     19.5        37.8        29.8     " 2nd command
  127.  
  128.     19.7        83.3        50.9    HYPER386 v4.65 
  129.     16.1        53.5        36.7
  130.  
  131.        The first line is just after clearing the cache.
  132.        The next is running the same command again, giving maximum 
  133.        advantage to the cache. In my testing, I have found that PC-CACHE 
  134.        seems to provide the best all-around performance.
  135.        In fact, with WIZ, SMARTDRV actually takes longer!!  Starting with 
  136.        WIZ v2.9, it momentarily disables SMARTDRV while it scans a disk.
  137.        
  138.  
  139.     ERRORLEVEL exit codes
  140.     ---------------------
  141.     0 = Normal exit.
  142.     1 = Normal exit. -g changes disk/path
  143.     2 = Bad command line.
  144.     255 = Internal error.
  145.  
  146.  
  147.     Error Messages
  148.     --------------
  149.     "INVALID directory:"
  150.         Encountered what appears to be an illegal directory
  151.         entry.  This is a clue for a corrupted disk, or a file
  152.         which is NOT a directory masquerading as one.
  153.  
  154.         "Can't tell if FAT-12 or FAT-16. Assuming FAT-16!"
  155.         Just what it says.  I've only seen this on networked
  156.         disk drives.  If you know how to RELIABLY tell what
  157.         type of FAT a disk has (other than going thru DOS),
  158.         please let me know.
  159.  
  160.     "malloc failed for FAT_buf!"
  161.         Can't allocate memory to read a FAT block.  Most
  162.         likely an internal error.
  163.  
  164.      "malloc failed for dir_sec_buf!"
  165.         Can't allocate memory to read in a directory sector.
  166.         Most likely an internal error.
  167.  
  168.     "Sorry, out of memory!!!"
  169.         You lose.
  170.  
  171.     "Can't open file:"
  172.         Failure to open an archive file.  Most likely a disk
  173.         error. Run CHKDSK.
  174.  
  175.     "Internal error in ZIP/LZH/ARJ file"
  176.         The data read from in archive file isn't as expected.
  177.         Most likely the archive has a new format, and WIZ
  178.         hasn't yet been updated.  'Course, the archive file
  179.         may be corrupted.
  180.  
  181.     "INVALID directory"
  182.         A sub-directory (whose name is displayed) is not valid.
  183.         Your directory structure has been corrupted.  You should
  184.         run a utility to fix it--Norton NDD or PC-TOOLS DISKFIX.
  185.  
  186.     "Can't recurse in this!"
  187.         The archive file cannot be recursively searched, because
  188.         it is compressed.
  189.  
  190.     NETWORK DRIVES
  191.     --------------
  192.     WIZ has been tested, and runs ok under several networks: 
  193.     Pathworks (Digital Equipment Corp), $25Network (Information Modes),
  194.     EBOX (Rupp).
  195.     Version 2.7 works on Novell, Lantastic, and other networks.
  196.  
  197.     CD-ROMS
  198.     -------
  199.     WIZ works on CD-ROM's.
  200.  
  201.     BUGS
  202.     ----
  203.     No known bugs.  However, WIZ mostly does not use DOS to
  204.     process a disk, so errors on my part, or a change in the disk
  205.     structure might break it.  The most major bug reported was on
  206.     huge disk partitions under MS-DOS 4.01.  This bug caused WIZ
  207.     to read a random block from the disk, and treat it as a
  208.     directory.  It made a valiant attempt to march down all the
  209.     phony sub-directories, and would actually run for quite a
  210.     while before printing one of the "malloc failure" messages.
  211.  
  212.     If you are having problems, try 1) use the "-v" switch, to
  213.     isolate the error to a specific disk,  2) use "-vv", to see
  214.     as it hits each sub-directory,  3) use "*.*" to see all the
  215.     files, and watch until it walks off the edge of the world.
  216.     Then call or write me.
  217.  
  218.  
  219.     Command Line format and Switches
  220.     --------------------------------
  221.  
  222.     WIZ [disks:]file_pattern [-sN] [-dN] [-p] [-pp] [-gN] [-x] [-mN] 
  223.         [-e] [-qS] [-n] [-4]
  224.         [-a] [-v] [-l[b][l]]  [-cS] [-?] [>output-file-name]
  225.  
  226.     As usual, the stuff inside the square brackets "[]" are
  227.     optional and may be present or omitted. You do NOT include
  228.     the brackets in your command line.
  229.     The various fields and options may appear in any order, in
  230.     either upper or lower case.
  231.     The switch character can be either "-" or "/".
  232.  
  233.     You can have more than one set of "[disk:]pattern", and it
  234.     does the correct thing. That is, it scans each set in turn.
  235.     So you can say: "WIZ c:pyro* cd:*.cfg *.ovr".
  236.  
  237.     In order to fix a possible usage mistake (and to follow the syntax
  238.     of other filefind programs), WIZ will accept a space between the ":"
  239.     and the pattern.  So, "WIZ c:pyro" acts the same as "WIZ c: pyro"
  240.  
  241.     Except for size (-s) and date (-d), the options may be run
  242.     together.
  243.     For example: "WIZ -g20xp"   is the same as  "WIZ -g20 -x -p".
  244.  
  245.  
  246.  
  247.     If you just invoke WIZ without any parameters, it gives you a
  248.     brief help line.  For more info, include '-?'.  For even more,
  249.     include '-??'.
  250.  
  251.     If you leave out a pattern, but do have switche(s), WIZ assumes
  252.     that you want a pattern of "*".
  253.  
  254.     Disk(s): & filename_pattern
  255.     ---------------------------
  256.     1) [disks:]pattern
  257.     2) pattern
  258.     3) :pattern
  259.  
  260.     With format 1, you specify the disk(s) you want it to look at,
  261.     followed by ":".  It will look at those drives, in the order
  262.     you listed them.  If you list the same one twice, it will look
  263.     at it twice.  You can specify a range of disks by using a
  264.     dash--"C-F" is the same as "CDEF".
  265.  
  266.     With format 2, it will look at all drives beginning with C. It
  267.     will stop when it hits a drive that it cannot read.
  268.  
  269.     With format 3, it will look at all drives beginning with A. It
  270.     will stop when it hits a drive that it cannot read, except A &
  271.     B.  If the floppy drive has a disk in, it will look at it,
  272.     otherwise it will ignore the floppy drive.
  273.  
  274.     If you have only one floppy drive, WIZ will check to see if DOS
  275.     last used it as A or B, and will skip the other drive letter
  276.     (B or A).
  277.  
  278.     You do not (and cannot) specify path or directory names,
  279.     because WIZ searches an entire disk.
  280.  
  281.  
  282.     Processing Disk(s) and Environment Variable
  283.     -------------------------------------------
  284.     You can over-ride the disks that WIZ looks at, and their
  285.     order, by making an environment variable "WIZ".  Do:
  286.     "SET WIZ=floppy-disk-list:hard-disk-list". Example:
  287.     "SET WIZ=AB:C-M".  What actually happens is that WIZ will
  288.     try to read all the disks to the left of the colon, then all
  289.     those to the right of the colon.  Those on the left are
  290.     deemed to be floppies, and it will keep going if it can't
  291.     read one.  Those on the right are deemed to be hard drives,
  292.     and it will quit on the first one that it can't read.
  293.     
  294.     You may omit the "default" disk set by leaving a space after
  295.     the "=".  This is most useful when you need only to put the
  296.     "/M" switch, as: "SET WIZ= /M".
  297.     
  298.     
  299.     If you specify disks on the command line, it will try to read
  300.     them all, even if it can't read one.
  301.  
  302.     The list may be discontiguous, (e.g., "C-FL-M").  This is
  303.     mostly useful if you are on a network, which tends to make
  304.     the networked disks at the higher letters, and leaves a hole
  305.     before them.
  306.  
  307.  
  308.     Pre-defined Drive Sets
  309.     ----------------------
  310.     You can actually have several pre-defined sets of disks to
  311.     search. If the disk-specifier on the command line is a single
  312.     digit (0-9), it will look for that specifier in the WIZ
  313.     variable.  For example, you might say:
  314.         "SET WIZ=AB:C-F  1=CDEF 2=AB:  3=C-Z 4=C-Z:"
  315.  
  316.     As above, those to the left of the colon are deemed floppies,
  317.     and WIZ will keep going if it can't read one; those to the
  318.     right are hard drives, and WIZ will quit if it can't read one.
  319.     However, if there isn't a colon, then they are ALL deemed to
  320.     be hard drives.
  321.  
  322.     The command "WIZ z.z", will look on ABCDEF.
  323.     The command "WIZ 1:z.z", will look on CDEF.
  324.     The command "WIZ 2:z.z", will look on AB.
  325.     The command "WIZ 3:z.z", will look on all drives C-Z (and
  326.         will quit at the first on that it can't read).
  327.     The command "WIZ 4:z.z", will look on all drives C-Z (and it
  328.         will attempt to read each and every one of them).
  329.     The command "WIZ 9:z.z", will give an error message.
  330.  
  331.  
  332.  
  333.  
  334.  
  335.     PATTERN:
  336.     --------
  337.     I call it "pattern" rather than "filename", because WIZ
  338.     does a full pattern-match against the actual filenames it
  339.     reads from the disk.  The pattern has four special characters
  340.     (called meta-characters), plus all the other characters
  341.     possible in a filename.
  342.     (These are the same wildcard patterns as in 4DOS.)
  343.  
  344.     1)  "*" (star)
  345.     2)  "?" (question mark)
  346.     3)  "[" (square bracket)
  347.     4)  "." (dot),
  348.  
  349.  
  350.     1) "*"    This is the "rubber" wildcard meta-character.  The
  351.         star will match as many characters as possible, from
  352.         none to the entire filename.  It is "rubber", because
  353.         it will shrink & stretch to match as many characters
  354.         as required.
  355.  
  356.     2) "?"    This is the "single" wildcard meta-character.  It will
  357.         match exactly ONE character in the filename.
  358.  
  359.     3) "[...]" This will match any single character within the brackets,
  360.         including a range of characters.  For example:
  361.              [abcw-z] will match any of:
  362.             a or b or c or w or x or y or z
  363.         If the very next character after the "[" is a "!", then
  364.         it is inverted---this will match any character that 
  365.         is NOT specified.  For example:
  366.              [!aeiou] will match any character EXCEPT a vowel.
  367.  
  368.     4) "."  This is the "separator" meta-character (it is NOT a
  369.         wildcard character).
  370.         If you specify a dot in the pattern, the disk filename
  371.         (and the pattern) is treated as having two parts,
  372.         one before the dot, and one after the dot.
  373.         Each part undergoes it's own pattern matching.
  374.  
  375.     If you don't have any meta-characters in the filename pattern,
  376.     WIZ appends a "*" on the end of what you specified.
  377.  
  378.     Proper pattern matching (like WIZ does) is almost a D.W.I.M.
  379.     (do what I mean) operation.  DOS's wildcards are so primitive
  380.     that it is professionally embarrassing.  Not only that, but the
  381.     pattern-matching subroutine in WIZ is only a couple of dozen
  382.     lines of code.  And it's surprisingly fast.
  383.  
  384.     To give some examples:
  385.     *A*     means:
  386.         any file which has an A anywhere in it, on either side
  387.         of the dot.
  388.  
  389.     Z*    Any file that starts with a Z
  390.         (ZZBC.BAT    Z.Z)
  391.  
  392.     ?.    Any filename that has exactly one character in it, and
  393.         has no extent.  (A.   B.   but not    AB.   or A.BAT)
  394.  
  395.     ?*      Any filename that isn't totally blank.
  396.  
  397.     A*T    any file that starts with A and ends with T in the
  398.         extent. (ABCDE.BAT     A.T    AB.ERT but not ABCERT.)
  399.  
  400.     A*T.    any file that starts with A and ends with T, and
  401.         has no extent. (ABCERT.      but not ABCERT.RST)
  402.  
  403.     A*T.*    any file that starts with A and ends with T, whether or
  404.         not it has an extent.
  405.         (ABCERT.    ABCERT.RST    ABCDET.COM)
  406.  
  407.     A*B*Z.* any file that starts with A, then somewhere to the right
  408.         has a B, then ends with Z, and has any extent.
  409.         (ABZ.BAT    AMNOBPQRZ.   ABYXZ.COM)
  410.  
  411.     *.C    any file with an extent of C
  412.  
  413.     W*.C    any file that starts with W and has a C extent. (W.C
  414.         WIZ.C  WIZ14.C)
  415.  
  416.     W*4.C    any file that starts with W, ends with 4, and has an
  417.         extent of C.
  418.  
  419.     ???.C    any file that has exactly 3 characters in the name, and
  420.         an extent of C.
  421.  
  422.     Directories also participate in the filename matching.  A lot
  423.     of other whereis programs don't tell you about directory names
  424.     that match.  I find this annoying, because many times I can
  425.     remember the directory name (or at least part of it), but not
  426.     the file names.  This is especially true for things that I
  427.     have downloaded.  Since directories normally don't have an
  428.     extent (although they can), for matching purposes a directory
  429.     that does not have an extent is treated as if it has a blank
  430.     extent, so it has a dot.  But when it is printed out, this
  431.     implied dot isn't printed.
  432.  
  433.     POPDROP.  will match the directory name "POPDROP"
  434.           and the filename "POPDROP.", but not "POPDROP.COM"
  435.  
  436.     POPDROP.* will match all of the above
  437.  
  438.     POPDROP   will match all of the above, but also POPDROP2.COM
  439.           etc.
  440.  
  441.  
  442.  
  443.  
  444.     -s Size qualifier
  445.     -----------------
  446.     Files may be further filtered by their size. Either or both
  447.     minimum and maximum size may be specified. A file will match
  448.     only if it's size falls between the two limits, inclusive.
  449.     Note that a directory, while it is really a file, is not
  450.     considered to have a size, so directories will NEVER show up
  451.     if you give a size qualifier. This gives a way to never show
  452.     directories: just add "-s0".  All other files have a size
  453.     that is greater than or equal to zero.
  454.  
  455.     -s[low_limit][:hi_limit]
  456.  
  457.     -s100        Files that are 100 or more bytes large.
  458.  
  459.     -s:10000    Files that are 10000 or less bytes large.
  460.  
  461.     -s500:600    Files whose size is greater than or equal to
  462.             500 bytes, and less than or equal to 600 bytes.
  463.  
  464.     -s1000:1000    Files that are exactly 1000 bytes large.
  465.  
  466.  
  467.  
  468.     -d Date qualifier
  469.     -----------------
  470.     Files may also be filtered by date.  Either or both
  471.     lowest & highest date may be specified. A file will match
  472.     only if it's date falls between the two limits, inclusive.
  473.  
  474.     -d[low_date][:high_date]
  475.  
  476.     The format for date is MM/DD/YY or MM-DD-YY or "*" or "*-N".
  477.     The year can be given as either "91" or "1991".  
  478.     "*" means the current date.
  479.     "*-N" means "N" days before the current date.
  480.     
  481.     -d1/1/90    Files dated on or after Jan 1, 1990.
  482.  
  483.     -d:12-31-87    Files dated on or before Dec 31, 1987.
  484.  
  485.     -d1-1-90:12-31-1990  Files dated anytime in 1990.
  486.  
  487.     -d12/12/90:11/11/90  No files---it's impossible for a file to
  488.             be dated after Dec 12, 1990 and before
  489.             Nov 11, 1990 (inclusive)
  490.     -d*        Files dated today or after today.
  491.     -d:*        Files dated before today.
  492.     -d*:*        Files dated today only.
  493.     -d*-10        Files dated within the last 10 days.
  494.     -d*-365        Files dated within the last year (365 days).
  495.     
  496.  
  497.     -e    Extended precision in time display
  498.     ----------------------------------------
  499.     Displays seconds also in the date/time information.
  500.  
  501.     -4    Look at 4DOS file descriptions
  502.     ------------------------------------
  503.     Rather than looking at filenames, WIZ will look at the 4DOS
  504.     (and NDOS) file descriptions (found in a hidden file in
  505.     each directory, named DESCRIPT.ION).  The default without any
  506.     "?" or "*" in the pattern is changed to be "*pattern*", so that
  507.     it will find any occurance of the word(s) you give.
  508.     With this option, WIZ will just print the path, filename, and
  509.     description.  Date and size are not examined, so they can't be
  510.     used as a filter, and will not be printed.
  511.  
  512.     -n    Skip over network drives
  513.     ------------------------------
  514.     Many network drives can only be accessed in the "proper" way.
  515.     This slows down WIZ quite a bit.  This option will force WIZ to
  516.     omit any drive that it figures requires this slow access method.
  517.     Novell and Lantastic are two networks that will be slow.  
  518.     Little-Big-Lan (by Information Modes) is a great little lan that
  519.     allows WIZ to use it's fast access method.
  520.  
  521.     -p    List in canonical pathname format
  522.     ---------------------------------------
  523.     The matching files are listed in normal DOS format:
  524.         disk:\path\name.ext
  525.     If the "-l" flag ("look inside archives") is given,
  526.     the format is:
  527.         disk\path\archive-name.zip filename.ext
  528.  
  529.     Date, time, size are not given.  This type of list
  530.     is presumably going to be fed into a program as a
  531.     list of files, so directories will not be listed.
  532.     
  533.     -pp   List in pathname format, without header/trailer
  534.     -----------------------------------------------------
  535.     Same as "-p", except the header and trailer information
  536.     is omitted.  This is particularly useful when the output
  537.     is to be fed into another program, as a list of (only) matching
  538.     filenames.
  539.     
  540.     -q     Limit scan to certain path(s)
  541.     ------------------------------------
  542.     This will allow you to limit the search to certain directory
  543.     name(s).  The format is:
  544.             -qDIRECTORY-NAME
  545.       
  546.     If it starts with "\", then this is the path from the root.
  547.     If it doesn't, then this is the trailing part of the path.
  548.     If it ends with "\", then this is for all the subdirectories, too.
  549.     If it doesn't, then this is for only this directory, 
  550.     not any sub-directories.
  551.        
  552.     -qdos         Will scan files in "\dos",  "\abc\dos", but not 
  553.              "\abc\dos\xyz".
  554.     -q\dos         Will scan files in "\dos", but not "\abc\dos".
  555.     -q\abc\dos   Will scan files in "\abc\dos", but not "\dos".
  556.     -qdos\         Will scan files in "\dos", "\dos\abc", and 
  557.              "\abc\dos\xyz".
  558.     -qray\van    Will scan files in "\dos\ray\van", but not
  559.              "\dos\ray\xyz" or "\dos\ray\van\tmp".
  560.     -q\         Will scan only the root directory.
  561.  
  562.     
  563.     -g     Go to directory
  564.     ----------------------
  565.     This will change your path to the disk & directory of the
  566.     Nth file in the list of files that matched.  If you omit
  567.     N (or N is zero), it will ask you at each match if that is
  568.     where you want to go.
  569.  
  570.     If that file is a directory, WIZ will set the path to that
  571.     directory.  On the other hand, if it is a file, WIZ will set
  572.     the path to be the directory that the file is in.
  573.  
  574.     Obviously, if N is larger than the number of files that match,
  575.     nothing will happen.
  576.  
  577.     -g5    Will change to the path of the 5th listed file.
  578.     -g1    Will change to the path of the first listed file.
  579.     -g    Will ask you at each matched file if it should change
  580.         to the path of the listed file.
  581.  
  582.  
  583.     -x    Executable files
  584.     ----------------------
  585.     This switch will set a pre-filter, and select only executable
  586.     files (.BAT, .COM, .EXE) that pass the other filters (size,
  587.     date, pattern).  For this to work properly, the pattern should
  588.     either not have a dot, or terminate with ".*" (because this is
  589.     just an additional filter, albeit one with three holes).
  590.  
  591.     I added this because a lot of times I find myself looking for
  592.     a handy but seldom-used program, and I can never remember if
  593.     it's a COM or an EXE file.  And if I put "*FOO*.*", WIZ lists
  594.     everything, including the directory, DOC, README, etc.
  595.  
  596.  
  597.     -m    More (pause)
  598.     ------------------
  599.     Act like "MORE"--pause and wait for a key to be hit after each
  600.     screenful of lines have been displayed.  It checks how many
  601.     lines are actually displayed on the screen (25, 28, 43, 50, etc.)
  602.     You can give a number after the "m", and it will use that size
  603.     instead.
  604.  
  605.  
  606.     -a    Archive files
  607.     -------------------
  608.     This works just like "-x", except it's for archive files.
  609.     These are ZIP, ARC, LZH, ZOO, ARJ, PAK.
  610.  
  611.  
  612.     -v    Verbose
  613.     -------------
  614.     If you have this flag once, WIZ will print the disk name when
  615.     it starts as it starts on a disk.  If you have it twice
  616.     (-vv), it will also print the name of each directory as it
  617.     starts processing it.  This is mostly useful for trouble
  618.     shooting, or to see a progress indication.
  619.  
  620.  
  621.     -l    Look inside archives
  622.     --------------------------
  623.     This switch will make it look inside archives (ZIP, LZH, and
  624.     ARJ archives only), for a matching filespec.  Note that all
  625.     the filters apply to the file INSIDE the archive, and NOT to
  626.     the archive itself.  The disk list will, however, still
  627.     specify the disks to look at.
  628.  
  629.     Both PKZIP and ARJ come with information on the internal
  630.     format of their archive files, including the header.  Neither
  631.     LHARC nor LHA do, but it was pretty easy for me to figure
  632.     out.  I do ZIP's because that is currently the most common
  633.     type of archive.  LHA compresses smaller, but lacks a few
  634.     features, and is slower in compressing.  ARJ is the BEST.  It
  635.     packs 5% - 10% tighter than ZIP (but is slower in
  636.     compressing), and includes all the nice features of ZIP,
  637.     including encryption, comments, etc, and also can
  638.     automagically create a segmented archive, so you can put a
  639.     huge archive onto several floppy disks, without having to use
  640.     SLICE/SPLICE.  It also comes with a handy utility to convert
  641.     any other archive type to ARJ's.  I didn't do any other
  642.     archivers, because 1) I don't have information on the
  643.     internal format, 2) these three are the most common, and
  644.     best, and 3) I don't want WIZ to get any larger than
  645.     necessary.
  646.  
  647.     -ll    Look inside archives recursively
  648.     ---------------------------------------
  649.     This switch will tell WIZ that you want it to also look
  650.     inside archives that are themselves in an archive.  Naturally,
  651.     WIZ can only do this if the inside archive is "stored" (no
  652.     compression).  However, ARJ and PKZIP v2, can (and WILL)
  653.     compress a ZIP file as it adds it to an archive!!
  654.  
  655.     In the output, these show up with a "@" where you would
  656.     normally see "\", which indicates that it's "kind of like" a
  657.     path.  If this pseudo-pathname gets too long, a "+" is tacked
  658.     on at the end, instead of the actual filename; one for each
  659.     level that is being omitted.
  660.  
  661.     You can also use the "-c" switch, but the filename that
  662.     replaces the "*" in the command won't make any kind of sense
  663.     to DOS, ARJ, LHA ZIP, etc., because of the "@" characters.
  664.  
  665.     -b    Both
  666.     ------------
  667.     This switch is used with "-l" to look both at normal files,
  668.     and inside archives.
  669.  
  670.  
  671.  
  672.     -c    Execute a command
  673.     -------------------------
  674.     This lets you execute a DOS command for each matching file.
  675.     The format is '-cCOMMAND' or '-c COMMAND'. However, if the
  676.     COMMAND has any special characters (space, |, <, >, etc.) you
  677.     must enclose it in quotes: '-c"COMMAND"'.
  678.  
  679.     Each occurance (if any) of the character "*" in the command is
  680.     replaced by the complete file-name (including disk and path).
  681.  
  682.     WIZ will spawn a new copy of the command-line shell
  683.     (COMMAND.COM, 4DOS, etc.), and pass it the built command. The
  684.     one exception is that the command "del*" or "del *" (to
  685.     delete the file) is handled internally by WIZ itself.  (Note
  686.     that you can use the form: '-cdel*', and you do not need a
  687.     space before the '*', nor do you need to enclose the command
  688.     in quotes.)  For this command, WIZ will prompt you to confirm
  689.     each file to be deleted.  (I did this because deleting files
  690.     is a handy thing to do, and it's quicker to do it inside of
  691.     WIZ than to spawn a shell to do it.  But I'm no fool!! You
  692.     have to confirm that you want delete, for each file.  No
  693.     way am I going to let it merrily delete every file on my
  694.     disk(s) just because I make one little mistake on the command
  695.     line!!)   If you prefer to have the shell handle the file
  696.     deletions, use "erase *" or "delete *".
  697.  
  698.     You can't do "-cdel*" along with "-l".  If you have given the
  699.     -l switch, the '*" is replaced with the complete filename of
  700.     the archive (.ZIP, .LZH, .ARJ), a space, and then the
  701.     filename.
  702.  
  703.     Examples:
  704.         -c"type *"    -- type each matching file
  705.         -c"more <*"    -- ditto, with a pause for each page
  706.         -c"copy * a:\"    -- copy each matching file to A:
  707.         -c"set"        -- display the environment at each
  708.                    matching file.
  709.         -c"pkunzip *"    -- extract matching files from a ZIP
  710.                    archive.
  711.  
  712.  
  713.  
  714.  
  715.  
  716.     Coming Attractions
  717.     ------------------
  718.     An interactive screen interface.
  719.     It will gather the file names instead of just printing them
  720.     out.  Then you will be able to sort by name, extent, disk,
  721.     date, size.  You'll also be able to tag files and delete, copy,
  722.     move them, and find duplicates.
  723.     Plus other things I think of, or get suggested.
  724.  
  725.     This is shareware, so I'm probably more interested and 
  726.     receptive in hearing comments and suggestions than a commercial 
  727.     software publisher would be.  Just send them in, or give me a 
  728.     call.  I can't promise to fix bugs, or add specific features, 
  729.     but I'll listen to everything.  Even if you're cheap and 
  730.     haven't registered.
  731.  
  732.     
  733.     BBS Support & New Versions
  734.     --------------------------
  735.     There is no "official" support BBS.  However, I frequent a couple
  736.     of local BBS's:
  737.         Chicken Coop       (708)658-1545   RIMENET =>THECOOP
  738.         Emporium           (708)551-4275   Fidonet 1:155/551
  739.         Rainbow Draggin'  (708)854-1696      In my basement
  740.         
  741.     Update History
  742.     --------------
  743.  
  744.     1.6    1/28/91
  745.     Initial public release
  746.  
  747.     1.7    2/13/91
  748.     Bug fixes
  749.  
  750.     1.8    3/8/91
  751.     Changed "-g" operation. Quit as soon as we hit the correct
  752.     one.  Sound an alarm bell when we set disk/directory.
  753.  
  754.     1.81 (not released)
  755.     * Fix for huge disks. I tested with 100+ MB disk, but failed
  756.     to test with a nearly full disk. Result=BUG!! -- (overflow in
  757.     intermediate calculation, converting cluster to sector
  758.     number.)  Thanks, Eddie, for running DOS 4.01 with one huge
  759.     >32MB partition--which all the gurus recommend against!
  760.  
  761.     1.9    4-23-92
  762.     * Fixed bug in handling full root directory.
  763.     * Changes in walking the directory tree.  Made it
  764.       non-recursive; changed the way I collect pathname to print.
  765.     * Added -c switch.
  766.     * Fix bug in handling a sub-directory that is exactly and
  767.       evenly full, with no next cluster.
  768.  
  769.     1.91    
  770.     * Slightly faster
  771.     * Added -a switch
  772.  
  773.     2.00    6/4/91
  774.     * Slightly smaller and faster.
  775.     * Creeping featurism!!
  776.     * Added -l switch, to look inside archives
  777.     * Decided that the ability to look inside achives should
  778.       signify a new major version, so it's now 2.0
  779.  
  780.     2.1    6/23/91
  781.     * Mod for stacker container files.
  782.     * Speeded up some filename checks (2 times in some cases)
  783.  
  784.     2.2    7/4/91
  785.     * Better disk-name processing.  Added WIZ environment
  786.       variable.
  787.     * Fixed bug introduced in 1.9 on pattern matching of
  788.       directory-names, with dot in pattern & no extent.
  789.     * Reset counts at the start of each path.
  790.  
  791.     2.3    9/29/91
  792.     * Fixed matching of directory names (a very subtle bug!!)
  793.     * Added -z flag (for other programs to call WIZ).
  794.     * Changed -g0 to query at each matching file.
  795.     * Changed date format. Included seconds in the time.
  796.     * Added checking for the "other" floppy disk, if there is only
  797.       one configured on the computer.
  798.  
  799.     2.4    1/9/92
  800.     * Changed order of size/date/time to be in the same as DIR.
  801.     * Re-fixed bug in directory matching.  It was even more subtle
  802.       than I thought. 
  803.     * Removed seconds from the time.
  804.     * Added -b switch, to allow it to look at normal files, and
  805.       inside archives, on the same pass thru the disk(s).  This
  806.       was the single most requested modification.
  807.     * Added ability to recursively look in archives.
  808.     * If no pattern specified, but only switches, assume "*".
  809.     * Some more speed-up optimization; some minor bugs fixed,
  810.       including another one with HUGE disks.
  811.     * Added -m switch.
  812.     * Check for CTRL-BREAK flag (not CTRL-C!!), to bail out 
  813.       quickly.
  814.     
  815.     2.5    2/26/92
  816.     * Seems I made a "running release" of v2.4, (bad, bad me!)
  817.       This gets things back in sync.
  818.     * Allow missing default disk set in WIZ environment, and allow
  819.       "/foo" switches for RCD & WIZ.
  820.       
  821.     2.6    3/18/92
  822.     * Added check & error msg on disk error.
  823.     
  824.     2.7    4/22/93    
  825.     * Added "today's date" options to the -d switch.
  826.     * Made it work for Novell & Lantastic networked drives.
  827.     * -n switch, to bypass networked drives.
  828.     * Added ability to limit the printout by directory-name.
  829.     * Added -e option.        
  830.     * Added support for DOS 6.0 "DBLSPACE"
  831.     
  832.     2.7a    7/19/93
  833.     * Fixed bug with -q switch.
  834.     * Quit (no error message) on un-assigned DBLSPACE disk.
  835.  
  836.     2.8    12/16/93
  837.     * Fixed bug-an output character was NULL instead of a space.
  838.     * "-pp" will not print the header/trailer, for piping the
  839.       output to other programs.
  840.     * Another bug fix with "-q".
  841.     * Added DUBLDISK check.
  842.     * Check for directory validity.
  843.     * Removed "-z" flags; redirecting output and "-pp" makes more sense.
  844.     * Fixed a bug with huge directories, which popped up with DBLSPACE.
  845.     * Message for "-ll" recursion on compressed archive.
  846.     2.8a    1/25/94
  847.     * Fixed bug in -q when -ll is also given.
  848.  
  849.     2.9    4/21/94
  850.     * Added character ranges ([....]) in the filename pattern.
  851.     * Allow space between drive(s) and pattern.
  852.     * Fixed bug in scanning LHA & ARJ archives.
  853.     * Turn off SMARTDRV (read: DUMBDRV) during scan. SMARTDRV actually
  854.       takes longer!!
  855.     * Added "-4" option, to search 4DOS file descriptions.
  856.       
  857.  
  858.     ********
  859.     Programming notes (if anyone is interested):
  860.  
  861.     The way I scan thru the disk, it pretty much sweeps thru
  862.     the disk from front to back, without (much) hopping back &
  863.     forth.  So it scans the 1st cluster of ALL the directories
  864.     and sub-directories on the disk, then makes a pass thru the
  865.     FAT (from start to end within the FAT), and so on.
  866.  
  867.     This optimization of head movement really helps to speed it
  868.     up, especially if you don't have a fast disk.  The
  869.     unfortunate side effect is that it looks at a directory one
  870.     chunk at a time, interspersed with chunks of other
  871.     directories.  But it sure is fast!!
  872.  
  873.  
  874.  
  875.                            --------------------------
  876.                              INVOICE / REGISTRATION
  877.                            --------------------------
  878.  
  879.  
  880.  
  881.           Sold to: ___________________________________________________
  882.  
  883.                    ___________________________________________________
  884.  
  885.                    ___________________________________________________
  886.  
  887.  
  888.              Date: ______________________________
  889.  
  890.  
  891.           ============================================================
  892.  
  893.  
  894.     I will normally send you the latest version on 5 1/4" disk.
  895.     Add $2 for 3 1/2" disk. (Net $22)
  896.     Deduct $5 (per copy) if you DON'T want me to send you a disk!
  897.  
  898.           _____ copies of WIZ version 2.9 at $20 each $____________
  899.  
  900.           _____ copies of RCD version ___ at $20 each $____________
  901.  
  902.           _____ add $2 for 3.5" disk              $____________
  903.  
  904.       _____ deduct $5 per copy for no disk (net $15)
  905.  
  906.         DISCOUNT for registering both is
  907.         $5 off.                  ____________
  908.  
  909.  
  910.  
  911.                                 TOTAL ENCLOSED.......  $____________
  912.     NOTE:
  913.     If you have the current version, I will send you
  914.     a disk with the NEXT version, when I release it,
  915.     unless you check here:
  916.  
  917.     Ray, YES, send me a disk NOW, even though I already
  918.     have the current version:  [__]
  919.  
  920.  
  921.  
  922.  
  923.       Where did you get your copy of WIZ?
  924.       Shareware distributor name:___________________
  925.       BBS name: ____________________
  926.       BBS phone #:  ____________________
  927.  
  928.  
  929.                       Send this invoice and your check to:
  930.  
  931.                 Ray Van Tassle
  932.                 1020 Fox Run Lane
  933.                 Algonquin, Il. 60102
  934.                 (708)-658-4941
  935.  
  936.  
  937.  
  938.  
  939.           =============================================================
  940.  
  941.           Thank you for your support ............... Ray Van Tassle
  942.  
  943.