Dec 072017
 
File finder/grouper. Very configurable. Can search inside of archive files. Can execute programs upon found files. Shareware. v2.01 04/03/95.

Full Description of File


FILE FINDER/GROUPER is the best file finder!
Use multiple date/time/size/day-of-week
ranges, attrib., text as criteria to find or
exclude files and group them for subsequent
processing. Search ZIP/ARC/LZH/ARJ/ZOO. All
or specified drives. Use *abc* wild cards.
Create database of files. Execute files or
arbitrary DOS command for each. Use relative
date/time. Output is user configurable.
FFG2.01:2-yrs updates-$15 T.G. Vavoso .


File FFG201.ZIP from The Programmer’s Corner in
Category Recently Uploaded Files
File finder/grouper. Very configurable. Can search inside of archive files. Can execute programs upon found files. Shareware. v2.01 04/03/95.
File Name File Size Zip Size Zip Type
COMPARE.FFG 6318 2220 deflated
DEMO_BAT.ZIP 24109 16178 deflated
EXAMPLES.FFG 9813 2642 deflated
FFG.DOC 86866 23036 deflated
FFG.EXE 236080 87793 deflated
FFGUSAGE.FAQ 10575 3811 deflated
FFG_REG.INF 6583 2543 deflated
FILE_ID.DIZ 445 325 deflated
GO_BAT.ZIP 3916 3018 deflated
OMBUDSMN.ASP 1443 565 deflated
README.FFG 1174 632 deflated
REGISTER.FRM 2618 886 deflated
UNPACKEM.BAT 1113 458 deflated
UTIL_BAT.ZIP 7475 6384 deflated
WHATS.NEW 7880 2620 deflated

Download File FFG201.ZIP Here

Contents of the FFG.DOC file



FFG: File Finder/Grouper
(c) 1992-1995 Thomas G. Vavoso, EnGamma - All Rights Reserved



(R)
o
Association of
Shareware
o Professionals

MEMBER


File Finder/Grouper (FFG)
Version 2.01
Shareware Manual

Copyright 1992-1995 Thomas G. Vavoso
President, EnGamma
All Rights Reserved
Member Association of Shareware Professionals

2407 Cameron Mills Rd.
Alexandria, Va. 22302-3302

Telephone (703)548-6869
Compuserve: 71674,1747
Internet: [email protected]


File Finder/Grouper (FFG) performs three basic functions:

1) Searches disks/archive files for files based on
flexible user-specified search criteria (e.g., name,
date/time/size/Day-of-week ranges, text contents,
attributes...)
2) Groups files for processing
3) Groups files for building databases of files

If you think you already have a utility program that fills
these functions, try the DEMO programs, examine the
EXAMPLES.FFG file, and read the section "FFG Compared to
Other File Finders", before you decide to put FFG aside.

If you want to start using FFG right away read the "Quick
Start" section below. Otherwise, skip to "Introduction".

Be sure to read the "Shareware" notice on the next page.
The registration cost for a single-user license and two
years of updates is currently $15 plus a small shipping
and processing fee for updates. See the FFG.REG file
for details. You can also register on-line via CompuServe
(GO SWREG, ID#1558).

This manual is available in WordPerfect 5.1/5.2 format to
registered users upon request.

File Finder/Grouper 1 (c) EnGamma







Shareware

Shareware distribution gives users a chance to try
software before buying it. If you try a shareware program
and continue using it, you are expected to register.
Individual programs differ on details -- some request

registration while others require it, some specify a maximum
trial period. With registration, you get anything from the
simple right to continue using the software to an updated
program with printed manual.

Copyright laws apply to both shareware and commercial
software, and the copyright holder retains all rights, with
a few specific exceptions as stated below. Shareware
authors are accomplished programmers, just like commercial
authors, and the programs are of comparable quality. (In
both cases, there are good programs and bad ones!) The main
difference is in the method of distribution. The author
specifically grants the right to copy and distribute the
software, either to all and sundry or to a specific group.
For example, some authors require written permission before
a commercial disk vendor may copy their shareware.

Shareware is a distribution method, not a type of
software. You should find software that suits your needs
and pocketbook, whether it's commercial or shareware. The
shareware system makes fitting your needs easier, because
you can try before you buy. And because the overhead is
low, prices are low also. Shareware has the ultimate
money-back guarantee -- if you don't use the product, you
don't pay for it.

FFG is a copyrighted shareware program by Thomas G.
Vavoso, President, EnGamma. The evaluation edition of FFG
is offered at no charge to any potential user for
evaluation, but after a brief evaluation period users must
register and pay for it. Feel free to share the evaluation
edition with your friends and associates, but please do not
give it away altered or as part of another system. The
essence of "user-supported" software is to provide personal
computer users with quality software without high prices,
and yet to provide incentive for programmers to continue to
develop new products.

Disclaimer of Warranty

Users of FFG must accept this disclaimer of warranty: FFG
is supplied as-is. The author disclaims all warranties,
expressed or implied, including, without limitation, the
warranties of merchantability and of fitness for any

File Finder/Grouper 2 (c) EnGamma







purpose. The author assumes no liability for damages,
direct or consequential, which may result from use of FFG.

















































File Finder/Grouper 3 (c) EnGamma







Quick Start

1. Demonstrations - The quickest way to become familiar
with FFG or to get ideas for possible uses is run the DEMO
program (DEMO.BAT). Go to the disk and directory with the
demo batch files in it and enter:

demo

2. Examples - See the file "EXAMPLES.FFG" included in the
FFG package for a concise listing of many examples.

3. Usage Ideas - See the file "USEIDEAS.FFG" included in
the FFG package for ideas on how FFG can be used and for
answers to frequently asked questions.

4. Command Syntax

USAGE: FFG [DriveSpec:][PathSpec]NameMask[,NameMask2...][\] [options]

As usual, the items in brackets [] are optional.

"NameMask" can contain one or more extended DOS wild card
characters to specify the file name:"

* = matches any string of zero or more
characters"
? = matches any one character

"DriveSpec" can be a simple drive letter or more:
- If a '*' is substituted for a drive letter, all but A:
& B: are searched. Redundant logical aliases of the
same physical drive (e.g., substitute drives) are
skipped to avoid multiple reports of the same physical
file.
- Multiple drives can be explicitly specified (e.g., A-
D:, BDF:).
- Drives listed after the '*' are excluded (e.g., *M:
searches all but M:).
- The above can be combined (e.g., AB*G-IZ: searches A:
and B: first, then all non-redundant drives but G:
through I: and Z:
- No drive or ':' alone is taken to mean the current
drive

- To search for directories instead of files, put a '\'
after the NameMask




File Finder/Grouper 4 (c) EnGamma







- During the search, pressing the following keys have
special effects:

will stop the search.
will go to (Change Dir) the last found file.
will skip the current drive.
will cause FFG to beep when done searching.
,, arrow keys can guide the search
Pressing any other key will pause the search operation.

- Either '-' or '/' are acceptable command line option
switches.
- Options may be in any order, before or after the Search
Mask.
- There should be no spaces between option switches and
their parameters.

5. Built-in Help/Examples - To get a listing of options and
command syntax, at the DOS prompt enter:

ffg - Prompts for parameters/options (/? for
help)
ffg /? - Usage, help, examples, options
ffg /??
- Individual command-line option help menu
ffg /?n
- Help for option 'n'; (e.g., /?d is help
for date option)

6. Finding a File on the Current Drive - To find a file
anywhere on the current drive enter:

FFG filename.ext


where "filename.ext" is the name of the file you want to
find.

7. Finding a File on All Hard Drives - To find a file
anywhere on hard drives connected to your system enter:

FFG *:filename.ext


where the '*' is interpreted to mean all non-redundant
disk drives except A: and B:, which are assumed to be
floppy drives. A redundant drive is one that is an alias
for some directory subtree of another physical drive.

8. Finding a File on All Drives (including floppies) - To
find a file anywhere on the system drives enter:

ffg ab*:filename.ext



File Finder/Grouper 5 (c) EnGamma







where "ab*:" is interpreted to mean search drives A: and
B: plus all hard drives.

9. Searching Inside Archive Files (e.g., .ZIP files) - To
search all drives and inside all archive files on those
drives type:

ffg *:filename.ext /z












































File Finder/Grouper 6 (c) EnGamma







Introduction

To get a quick idea of FFG's capabilities run the batch
files included in DEMOBAT.ZIP or scan through the examples
in EXAMPLES.FFG.

Here is a basic list of features:

- Perform filename searches using extended DOS wild card
characters * and ?. For example you can find all files
with "doc" anywhere in the name. This search is not
possible using standard DOS wildcard conventions.

- Easily search all disk drives or only selected drives.

- Search for files or exclude files based on file name,
date, time, size, day-of-week, attributes
(hidden/system/read only/archive), and occurrence of text
(including control codes) within the file.

- Searches popular archive/compressed file formats such as
those created with PKZip.

- Can execute an arbitrary DOS command for each found file.

- Versatile and Customizable Output Formats:

- Standard columnar output, which is a basic fixed
field output of the various file information items:

FILENAME.EXT 12345 1/01/92 23:59 HSRA C:\DIRECT\SUBDIR

- Packed format, which allows formation of list files
for subsequent processing (e.g., PKZip @file):

C:\DIRECT\SUBDIR\FILENAME.EXT

- Comma delimited ASCII database file format, which
allows building databases of found files:

"FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIRECT\SUBDIR\"

- Batch file processing format, which allows
sophisticated manipulation of found files as a group:

%1 C:\PATH\FILENAME.EXT %2 %3 %4 %5 %6 %7 %8 %9

Within each of the above basic format types the user can
further customize the output. (See the detailed
reference for the /f option.)

File Finder/Grouper 7 (c) EnGamma







- See the section "FFG Compared to Other File Finders".


















































File Finder/Grouper 8 (c) EnGamma







FFG Compared to Other File Finders

File Finder/Grouper (FFG) performs functions similar to
those found in other utility programs, but here are some FFG
features that some other file finders lack:

1. FFG uses the DOS wildcard characters '*' and '?' but
they have extended function over the DOS counterparts.
The extended functionality permits you to search for
strings of characters that appear anywhere in the file
name.

2. FFG can search for multiple file specifications in a
single pass, such as find all BAT, COM and EXE files.

3. FFG permits you to concisely specify multiple file name
search masks such as:
"*[ZIP,ARC,ARJ,LHA,ZOO]*.[COM,EXE]"
to find all archiving programs.

4. FFG can search all disk drives or selected disk drives.

5. FFG can search inside of archive files (ZIP, ARC, ARJ,
LZH, ZOO). FFG will also search inside PKZip, ARJ, and
LHA self-extracting (.EXE) archive files. (FFG also
searches inside XEQ COM library files).

6. FFG can execute and arbitrary DOS command for each file
found with or without a user confirmation before
execution.

7. FFG finds hidden files and searches hidden directories.

8. FFG searches inside directories with name extensions
(e.g., THISISMY.DIR). Some file finders do not search
these directories.

9. FFG can move to the disk and directory of the found
file (/g option).

10. FFG can search for directories instead of files simply
by appending a backslash '\' to the search name.

11. FFG can search by a date range, time range, size range,
or day-of-week range using intuitive syntax to specify
these filtering criteria. Multiple include/exclude
ranges can be specified.

12. FFG can search by the file attributes or combination of
attributes, such as finding all Hidden Read-Only files.

File Finder/Grouper 9 (c) EnGamma







13. FFG can find files based on the day of the week (i.e.,
Sun - Sat) they were modified/created.

14. FFG can find files based on whether or not the file
contains one or more text/ASCII-code strings. FFG will
even search for text inside files that are archived if
you have the associated archive extraction program
(e.g., PKUnzip, LHA, ARJ, etc.) on your DOS search
path.

15. FFG permits you to exclude certain files base on name,
date, time, size, attributes, day-of-week criteria,
text contents.

16. FFG can search for files by date relative to today,
such as all files modified/created 7 to 14 days ago.

17. FFG can search for files relative to the current time
of day, such as all files modified/created within the
last ten minutes.

18. The asterisk '*' can be used as a wildcard in date and
time criteria, such as /d9/*/93 for all September 1993
files and /t13:* for all 1:00pm - 1:59pm files.

19. Current month (M), day (D), year (Y) can be specified
in date criteria such as 1/1/Y-6/30/Y, M/D/Y (today)

20. Current hours (H), minutes (M), seconds (S) can be
specified in time criteria such as H:M:S (now).

21. Partial dates and times are interpreted, such as 9/93 -
> 9/*/93, 5/1 -> 5/1/Y (Y = current year), 92-93 -> all
1992-1993 files, 9 -> 9:00:00am.

22. Multiple date, time, size, day-of-week, attribute, text
filtering criteria can be specified, which are combined
in a logical AND or OR depending on how they are
specified.

23. FFG lets you pause (press any key) or interrupt (press
) the search operation at any time.

24. FFG lets you guide the search by using the arrow keys
to skip files and directories.

25. FFG can be used to produce database files of its output
(ASCII comma-delimited files)(/f, option)

26. FFG provides useful default output format options but

File Finder/Grouper 10 (c) EnGamma







permits extensive user customization of the output
format.

27. FFG can be used to produce output as DOS batch files
(.BAT) with DOS replaceable parameters (%1 through %9).
The batch file can then be used to execute an arbitrary
set of commands against the group of files such as
copy, back up, archive, delete, move, edit...). The
power and flexibility of this feature is limited only
by your imagination. Although some other finders have
similar capability, they do not have the same
flexibility.

28. By default, when FFG is searching all disk drives
(i.e., *: is specified), it skips disk drives that are
logical aliases of subtrees of physical drives that
will also be searched. This avoids reports of multiple
copies of the same physical file when it appears also
on logical alias drives.

29. FFG lets you use 43- and 50-line video modes on EGA/VGA
systems so you can see more on the screen.

30. Frequently used options can be made semi-permanent by
setting them in the DOS environment variable FFGOPT
using the DOS 'set' command as in: SET FFGOPT=/p /v5 /z
/bpd /fp
























File Finder/Grouper 11 (c) EnGamma







Usage and Examples

FFG [DriveSpec:][PathSpec]NameMask[,NameMask2...][\] [options]

FFG is currently not case sensitive. However, as features
are added in future releases case may be used to distinguish
options. Therefore, use of lower case is recommended. In
many of the examples provided in this manual mixed upper and
lower case is used for clarity only.

If there is not at least one NameMask, FFG will prompt you
for input parameters.

DriveSpec tells FFG which drives to search. If DriveSpec is
not specified the current disk is searched. A simple DOS
drive letter designation can be specified (e.g., C:) or a
list of drives can be specified (e.g., ABC:). Also, a '*'
can be used to search all drives except A: and B:. When '*'
is used FFG skips any drives that are redundant logical
aliases of drives (e.g., substitute drives) that would have
already been searched. When '*' is used, it can be combined
with an explicit search list (e.g., ab*:); the drives that
are explicitly listed will be searched first. If you wish
to specify "all drives but..." then list the drives to
exclude after the '*' (e.g., *cd). Finally, a range of
drives may be specified (e.g., a-z:). All of the above can
be combined (e.g., a-z*bcf-v:, which means all but B:, C:,
and F:-V:). If any drives that are explicitly specified
cannot be accessed, such as empty floppy drives, FFG reports
them as inaccessible. If a drive letter appears both before
and after the '*' in a DriveSpec, it is not searched. See
the following DriveSpec examples. (Advanced: See also the
/: option to change default behavior.)

PathSpec tells FFG which directory to use as the search
starting point. The specified directory and all descendent
subdirectories will be searched unless the NO RECURSION
option (/r) is specified. See the following PathSpec
examples.

NameMask gives FFG a file name pattern to look for.
Multiple name masks can be specified by separating them with
a comma (',') sign. NameMask can use DOS wildcard
characters '*' and '?', but they have extended functions.
The '*' will match zero or more characters and the '?' will
match exactly one character. The period that separates the
file first name and the filename extension is treated as any
other character in the name. If a terminating backslash is
appended to the list of NameMasks, FFG will search for
directories in lieu of files. See the following NameMask

File Finder/Grouper 12 (c) EnGamma







examples.

NameMasks can also include alternative patterns to concisely
specify multiple masks that have common elements. For
example, rather than specify "*.BAT,*.COM,*.EXE", you can
use "*.[BAT,COM,EXE]". The brackets contain different
possible alternatives for that part of the NameMask.
Brackets can be nested. Here are two more complicated
examples:

1. Let's say you want to see all files which have names
that are variants of "CONFIG" or an abbreviation of it.
Here's how you might specify it: "*C[[O,]N,]F[I,]G*",

which is equivalent to specifying:

"*CONFIG*,*CONFG*,*CNFIG*,*CNFG*,*CFIG*,*CFG*"

2. Let's say you want a listing of all archiving
programs, including batch files that perform and archiving
function. Here's how you could specify it:

"*[ZIP,ARC,ARJ,LHA,PAK,ZOO]*.[EXE,COM,BAT]"

The above is equivalent to specifying 18 separate
NameMasks:

"*ZIP*.EXE,*ZIP*.COM,*ZIP*.BAT,...,*ZOO*.COM,*ZOO*.BAT"

NOTE: Slashes can be used instead of commas as in
"*.[BAT/COM/EXE]". This permits a NameMask to be
passed to FFG as a parameter to a batch file. This
would not otherwise be possible using commas because
DOS considers the comma to be a batch file command-
line argument delimiter.

Drive Specifier (DriveSpec) Examples:

These examples illustrate the different ways to specify
which disk drives should searched.

ffg filename - Searches current drive

ffg c:filename - Searches drive C:

ffg *:filename - Searches all drives but A:, B:, and
redundant logical alias drives.


ffg ab*:filename - Searches all drives but redundant
logical alias drives

File Finder/Grouper 13 (c) EnGamma







ffg a-z:filename - Searches all drives

ffg ec*:filename - Searches E: then C: then all other
non-redundant drives but floppies

ffg *c:filename - Searches all non-redundant drives but
C: and floppies

ffg d*m-z:filename - Searches D: then all non-redundant
drives except M: through Z:

The /: option can be used to reconfigure and customize the
way FFG treats the wildcard drive (*:) and which drive(s)
FFG searches when no drives are specified. Refer to the /:
option description for details. Also, see how this
configuration change can be retained using the FFGOPT
environment variable.

File Path Specifier (PathSpec) Examples:

These examples illustrate the different ways to specify the
directory where the search should start.

ffg filename - Searches from root directory

ffg \filename - Searches from root directory

ffg \DOS\filename - Searches from \DOS directory

ffg .\filename - Searches from current directory

ffg ..\filename - Searches from parent of current
directory

ffg \filename /r - Searches only the root directory, no
subdirectories

File Name Mask (NameMask) Examples:

These examples illustrate the different ways to search based
on the file name.

ffg *.* - Searches for all files

ffg * - Searches for all files (identical to
*.*)


ffg *\ - Searches for all directories

ffg *bat - All files ending in 'BAT' (Finds:

File Finder/Grouper 14 (c) EnGamma







BALLBAT, WOMBAT, AUTOEXEC.BAT...)

ffg *.bat - All files with a '.BAT' extension.
(Finds: BALL.BAT but will NOT find
BALLBAT)

ffg *read*me* - All files with 'read' anywhere in name
followed by 'me' (Finds: READ.ME, PLS-
READ.ME, README, README.COM,
READU.NME, YOUREAD.ME)

ffg *help*,*hlp* or
ffg *h[e,]lp* - All files with 'help' or 'hlp'
anywhere in the name. (Finds:
WINHELP.EXE, SETUP.HLP,
PRINTHLP.EXE...)

ffg *c*f*g* - All files with 'c', 'f', and 'g' in
order in name. (Finds: CONFIG.SYS,
MIDIMAP.CFG, CFGSAVE.DLL, MYCFG.DAT,
MYCONFG.FIL...)

ffg *. - Finds extensionless files

ffg ????.* - Finds files with exactly four
characters in first name. (Finds:
DATA.IN, DATA.OUT, TASM.EXE, TEST...;
Doesn't find: TEST1, TST.DAT...)

ffg *bat?* - Finds files with 'BAT' anywhere in
name but at the end. (Finds:
BATLIB.COM, MYBAT.DAT, BALLBATS...;
Doesn't find: BALLBAT, AUTOEXEC.BAT)

ffg ?????? - Finds all files having exactly 6
character names, including the period
if the file has an extension. (Finds:
SCRAPS, GO.BAT, SAVE.C)

ffg * /x*.bat - Finds all files but DOS batch files
(.BAT)

ffg *win*\ - Searches for all directories with
'WIN' anywhere in the directory name

ffg *arc*.[com,exe] - Search for all 'arc' programs





File Finder/Grouper 15 (c) EnGamma







Alternate Methods of Entering FFG Parameters

If no parameters are entered on the command line, then FFG
will prompt you for input. In this case, the number of
parameters are not limited by screen width or the DOS 128
character command line limit. This feature is also useful
to let FFG be invoked by menu choices or by clicking on a
icon in Windows since it doesn't require the
parameters/options to be entered ahead of time.

Alternatively, you can put FFG parameters and options on the
first line of an ASCII text file and have FFG get its input
from that file. For example, if you put FFG
parameters/options on the first line inside a file named
PARAMS.FFG you would run FFG with those parameters as:

ffg < params.ffg

This uses the DOS input redirection operator '<' to tell FFG
to take its input from the file instead of the keyboard.































File Finder/Grouper 16 (c) EnGamma







Alphabetical Listing of Command Line Options/Switches

Quick Reference:

Option Function
/a Filter by Attributes of File
/b Set Beep when file found, prompted, and/or done
/d Filter by Date of File
/e Execute Command for each find
/f Set Format of Output
/g Go to directory
/h Filter Hidden directories
/p Set Pause each screenful, every n lines, when done
/q Set Quiet/no screen output
/r Do not Recursively search subdirectories
/s Filter by Size of file
/t Filter by Time of file
/v Set Video mode # of lines
/x Filter by eXcluding file names
/z ZIP and other archive file search
/1 Find only 1 file
/$ Filter by Text/code string within file
/: Set Drives and Drive types to be searched
/! Set to disable various user interrupt methods



























File Finder/Grouper 17 (c) EnGamma







Options - Detailed Reference:

Filtering by File Attributes

/a Attributes of File

/aAttrMask[[,|']AttrMask...] - include only files matching
specified attributes

AttrMask = is a string composed of H,S,R,A,'.'

H = hidden attribute set.
S = system attribute set.
R = read-only attribute set.
A = archive attributes set.
! = before one of the above, it means not set
. = "specified attributes period"; unspecified
attributes must not be set; The period must be at
the end of the string, e.g. /aHR. = hidden AND read
only files with no other attributes set.

Attribute Examples

/aR - Read-only files
/aH - Hidden files
/a!S - All but System files
/aA - Files with Archive bit set
/aHR - Files that are both hidden and
read-only
/aHR. - Hidden&Read-only files with no
other attributes set
/aH!R - Hidden files that are not read-
only
/a!H - Files that are not hidden
/a!H!R - Files that are neither hidden or
read-only
/aHR!S!A - Files with only hidden and read-
only attributes (same as /aHR.)
/a!H /a!S /a!R - Normal files (not Hidden AND not
System AND not Read-only)
/aHS,SR,HR /a!H,!S,!R - Any two of H, S, R, but not all
three


Audible Beep for Certain Events

/b Beep - Beeps the system speaker for specified events

/b[F][P][D][E] - Beeps when:


File Finder/Grouper 18 (c) EnGamma







F = a file is found
P = user is prompted
D = program is done running
E = Error

if /b is specified alone beeps will occur for all of
the above

If multiple /b options are encountered, the right-most
will override previous settings. For example, /bf /bd
will cause beeping only when FFG is done.

[See also "Configuring FFG"]


Filtering by File Date

/d Date of File

/dDateRangeStr[[,|']DateRangeStr...] - include only files
matching specified date range

where DateRangeStr is one of the following:

mm/dd/yy - only files matching mm/dd/yy
m1/d1/y1-m2/d2/y2 - only files matching this date
range inclusive
-mm/dd/yy - only files on or before this
date
mm/dd/yy- - only files on or after this date
T - Relative: only files with
Today's date
nT-Tm - Relative: n days before TODAY to
m days after today
nT-mT - Relative: n days before TODAY to
m days before TODAY
[Su|Mo|Tu|We|...|Sa] - only file matching specified day
of the week. Can also specify a
range in this way. Use alone or
in addition to above date
options.

Asterisks may be used in lieu of mm,dd,yy date elements
to ignore an element. The characters M, D, Y can be
used in lieu of numeric mm, dd, yy elements to use the
current month (M), day (D), year (Y). If some elements
are left off assumptions are made as follows: If an
element is left off and its separator '/' is used then
the current value for the missing element is assumed
(e.g. 9//93 -> 9/D/93). If one separator is missing

File Finder/Grouper 19 (c) EnGamma







(i.e., xx/yy) a guess is made based on the values used
for xx and yy: If it is possibly a mm/yy value, then
mm/*/yy (any day) is assumed. If it is possible a mm/dd
value then mm/dd/Y (current year) is assumed. If it's
neither of the above then its a dd/yy value and M/dd/yy
is assumed. Similar guesses are made if both separators
are missing (i.e., xx): If xx is possible a year then
*/*/yy is assumed. If xx is possibly a day, then M/dd/Y
is assumed.

If /d is specified with no date filter, a default value
of 'today' is assumed (i.e., /d = /dT).

Date Examples

/d1/1/93 - Files dated 1/1/93
/d1/1/80-12/31/80 - Files having a 1980 date
/d-12/31/92 - Files dated 1992 and earlier
/d1/1/93- - Files later than 1992
/dT - Files dated TODAY
/d6T-T - Files dated in the last 7 days
/d14T-7T - Files dated 7-14 days ago
/dSu - Files dated on a Sunday
/d6T-T /dFr - Files dated last Friday
/d6T-T /dSa-Su - Files dated last Weekend
/dM/D/Y - Files dated today (same as /dT)
/d// - Files dated today
/d1-15 - Files dated 1st-15th of this
month
/d80-85 - Files dated between 1980 and
1985
/d7/92-12/92 - Files dated in second half of
1992


Executing a Command for Each Found File

/e Execute Command for each find

/e[!][CommandStr] - Execute a command for each found file.

where CommandStr is either:

1. Not specified, in which case the found file itself is
executed. It is assumed the found file is executable,
otherwise the command will not execute.

2. It is a DOS command string including optional Format
Specifiers. The Format Specifiers are the same as those
used for output formatting (see /f description) except

File Finder/Grouper 20 (c) EnGamma







that they must be preceded by a '%' character to
distinguish them from normal characters. For example,
to represent the full file name, %n would be used.
Spaces are represented with %_ and double quotes are
represented by %'. These two special specifiers are
required because spaces are interpreted as separators
between command parameters and double quotes are used to
treat a string with spaces as a unit. Inside batch
files, two percent signs %% are required to avoid having
DOS interpret the % as a replaceable parameter.

The command is executed from the disk drive and
directory of the found file, so in most cases it is not
necessary to specify %p\%n when referring to the found
file; %n would suffice.

Confirmation - Normally FFG asks the user to confirm
whether the command should be executed. However, if the
'!' is specified, the command will be executed for all
found files without asking the user for confirmation.
When confirmation is on, the user is given the following
options:

1. es - Execute the command
2. o - Skip the command execution
3. ll - Execute the command and turn off
subsequent confirmations
4. hell - Shell to the DOS prompt
5. - Quit

Execute Command Examples:

/e - Execute each found file
w/confirmation
/e! - same as above without
confirmation
/e"REN %P\%N %F.NEW" - => ren d:\path\fname.ext fname.new
/eREN%_%P\%N%_%F.NEW - same as above
/eDEL%_%P\%N - => del d:\path\fname.ext (%P\

optional)
/eMD%_NEWSBDIR - => md newsbdir (make new
subdirectory)
/e"COPY %N A:" - => copy fname.exe a: (note that by
quoting the part of command
string containing spaces, you
can avoid having to use the
space Format Specifier, %_)

Memory Available For Commands - When a command is executed
with the /e option all but about 6 KB of the memory

File Finder/Grouper 21 (c) EnGamma







occupied by FFG is swapped to EMS, XMS, or Disk to
maximize the amount of memory available to the executed
program.


Customizing the Format of FFG Output

/f Format of Output

/fxFormatStr

There are four basic types of output formats supported
by FFG: Columnar output (the default), Packed path,
ASCII Comma delimited and Batch File. Within each of
these types there is much flexibility in defining the
precise output (see Format Strings below). Examples of
each are:

1. Columnar Output (/fc, this is the default format)

FILENAME.EXT 12345 1/01/92 23:59 HSRA C:\DIRECT\SUBDIR

2. Packed Path Output (/fp)

C:\DIRECT\SUBDIR\FILENAME.EXT

3. ASCII Comma Delimited Database Output (/f,)

"FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIRECT\SUBDIR\"

4. Batch File Output (/fb)

%1 C:\PATH\FILENAME.EXT %2 %3 %4 %5 %6 %7 %8 %9


Here is a detailed description of the output formatting
options:

/fxFormatStr

x = C Column - Fixed field width columnar output
("NSDTAP" default)

P Packed - Merge all fields together ("PN" is
default)

, Comma - Comma-delimited ASCII database format

B Batch File - Format for batch processing with %1,
%2....

File Finder/Grouper 22 (c) EnGamma







S Summary - Summary Control - This option
determines whether a summary report is
displayed and is used independent of
the other /f option switches. The 's'
must be followed by '.' or '!', which
have the following meanings:

. - Summary only
! - no summary (good for when you are
redirecting output and don't want
the summary report to be
redirected to the file).

FormatStr is a string composed of Format Specifiers:

f = file First name (e.g. if file is FNAME.EXT then
"FNAME" is displayed)
{ c = Comments/File Descriptive notes
e = file Extension (e.g. if file is FNAME.EXT then
".EXT" is displayed)
s = Size of file
d = Date of file
t = Time of file
n = Full FileName, including extension (e.g.,
FNAME.EXT)
a = file Attributes e.g. "H-R-" for a hidden and read-
only file; *ZIP, *ARC for files found in ZIP and
ARC files
p = full Path to file, including disk drive (trailing
backslash '\' is excluded for all but Comma-
delimited output)
r = diRectory path without drive (trailing backslash
'\' is excluded for all but Comma-delimited
output)
h = Home directory or in other words, the directory
from which FFG was started.
. = Same as h (home directory)
_ = blank space
' = single quote translated to double quote (/e option
only).
% = to get a % sign (/e option only)
\ = backslash directory separator
: = drive on which file was found including colon
(e.g. C:)
; = drive on which file was found excluding colon
(e.g. C)
0-9 = (meaningful with the /fB option only) inserts a
corresponding DOS .BAT file replaceable parameter
%0-%9 (e.g. 1->%1);


File Finder/Grouper 23 (c) EnGamma







Formatting Examples

1. /FCnsdtap displays output in fixed Columns (the
default) as follows:

FILENAME.EXT 12345 1/01/92 23:59 HSRA C:\DIR\SUBDIR

2. /FPpn displays results in a Packed format as follows:

C:\DIR\SUBDIR\FILENAME.EXT

3. /FPpn_s_d_t_a displays results in a Packed format as
follows:

C:\DIR\SUBDIR\FILENAME.EXT 12345 1/01/92 23:59 HSRA

4. /F, displays Comma-delimited results for import into
a database as follows:


"FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIR\SUBDIR"

5. /FB1_2_p\n_34_5 provides format for later Batch file
processing:

%1 %2 C:\DIR\SUBDIR\FILENAME.EXT %3%4 %5

6. /FB1_p\n_f.2 > changext.bat creates a batch file with
lines as follows:

%1 C:\DIR\SUBDIR\FILENAME.EXT FILENAME.%2

Which could then be used as follows to change the
extension of all found files to ".NEW":

changext rename NEW

7. /F, /FS! displays comma-delimited output without
summary information.

8. /FS. displays summary information only

[See also "Configuring FFG"]








File Finder/Grouper 24 (c) EnGamma







Go To Found File

/g# Go to directory of found file

/g# where # is a number N; goto Nth found file

When this option is used, FFG changes the current disk
drive and directory to the drive/directory of the Nth
found file. No other files are found. If the found
file is in an archive file (/z option used), FFG changes
to the disk and directory of the archive file that
contains the found file. If searching for directories
instead of files, FFG changes into the found directory
(makes it the current directory). If /g is specified
without a number, then you will be prompted for each
found file.

# = blank, 0 - pause and prompt user after each found
file
# = 1 - go directly to first found file without
prompting
# = other # - go to directly to #th found file withoug
prompting

Multiple /g options override previous settings. For
example, /g /g5 is equivalent to /g5.


Searching Hidden Directories

/h Hidden directories

/h[.|!]

Hidden directories are searched by default. The
following modifications are possible:

/h - toggle hidden directories search option (i.e,
hidden directories will be skipped since the
default is to search them)
/h. - only hidden directories are searched
/h! - do not search hidden directories

If multiple /h options are encountered, the right-most
one overrides previous settings.






File Finder/Grouper 25 (c) EnGamma







Pausing FFG Output

/p[#] Pause each screenful, when done or page at a time
/pd Pause when FFG is done.

/p[#] pause after every # lines of output; # is
optional;

This option causes output and searching to pause after #
lines of screen output. If # is not specified, the
current screen height will be assumed. If # is set to
0, there will be no pause (as though /p were not used at
all).

# = blank - pause after one screenful of output.
# = 0 - continuous output - don't pause (this is
the default if /p is not specified)
# = 1 - pause after each found file (useful for
providing an opportunity for user
interaction
# = other # - pause after # lines of output.
# = d - pause when FFG is done. This is useful
when running FFG from Windows or from a
menu system so that you have a chance to
view the last screenful of FFG output
before FFG exits and returns to Windows
or the menu system.

[See also "Configuring FFG"]


Suppressing FFG Screen Output

/q Quiet - Suppresses all but specified output events

/q[M][T][S][F] - Suppresses output for all but:

M = Status meter
T = program title line
S = Output summary
F = Found File

if /q is specified alone all output is suppressed








File Finder/Grouper 26 (c) EnGamma







If multiple /q options are encountered, the right-most
one overrides previous settings.

[See also "Configuring FFG"]


Searching Subdirectories

/r Recursion (subdirectory search)

By default FFG recursively searches all descendent
directories of the starting directory in the directory
tree structure. When the /r option is used only the
starting directory is searched.

Multiple /g options toggle this setting. For example,
/r /r is equivalent to not specifying /r.



Filtering by File Size

/s Size of file

/sSizeRangeStr[[,|']SizeRangeStr...] - include only
files matching specified size

where SizeRangeStr is one of the following:

Size - only files of this size
MinSize-MaxSize - only files within this size
range inclusive
-MaxSize - only files this size or smaller
MinSize- - only files this size or larger

MinSize, Size, MaxSize can use suffixes K, M, G as
abbreviations of 1 Kilobyte, 1 Megabyte, and 1 Gigabyte
(e.g. /s1K-25M)
Size Examples

/s0 - empty files
/s1M- - very large files (>= 1 megabyte)
/s-500 - tiny files (<= 500 bytes)
/s1K-2K - 1024-byte to 2048-byte files
/s-500 /s!0 - smaller than 500 bytes but not
empty
/s-500,1M- - tiny or very large files


Filtering by File Time

File Finder/Grouper 27 (c) EnGamma







/t Time of file

/tTimeRangeStr[[,|']TimeRangeStr...] - include only
files matching specified times

where TimeRangeStr is one of the following:

hh:mm:ss - only files matching this time
h1:m1:s1-h2:m2:s2 - only files within this time
range inclusive
-hh:mm:ss - only files on or before this
time
hh:mm:ss- - only files on or after this time
nN, Nm - n minutes before now, m minutes
after now - can be used as min
or max in time ranges

Times must be specified using a 24-hour clock (i.e,
23:00 instead of 11:00 PM). Time ranges may span 0:00
(midnight). Asterisks may be used in lieu of hh,mm,ss
time elements to ignore an element. The characters H,
M, S can be used in lieu of numeric hh, mm, ss elements
to use the current hours (H), minutes (M), seconds (S).
If some elements are left off assumptions are made as
follows: If an element is left off and its separator
':' is not used then '0' is assumed for that element
(e.g., 9 -> 9:00:00). However, if the separator is
specified then '*' is assumed for that element (e.g., 9:
-> 9:*:*)

If /t is used without a time filter, then a default
value of 'now' is used (i.e., /t = /tN = /tH:M:*).

Time Examples

/t-8:00 - Earlybird files (before 8am)
/t17:00-8:00 - After-hours files
/t17:00- - Evening/night files
/t8:00-17:00 - Workday files
/t10N- /dT - Recent files (within last 10
minutes)
/t9:*:* - Same as range 9:00:00-9:59:59
/t9-10 - Same as 9:00:00-10:00:00
/t9:-10: - Same as 9:*:*-10:*:*
/t:: - Same as *:*:*
/t9:10:


Setting Video Mode (number of lines on screen)


File Finder/Grouper 28 (c) EnGamma







/v[2][4][5] - Change video lines to 25, 43,or 50

2 = 25 lines
4 = 43 lines (EGA and VGA only)(43 even if its VGA)
5 = 50 lines (VGA only)

if /v is specified alone the video mode is toggle
between the 25 and the maximum number of lines supported
(43 or 50 depending on whether video is EGA or VGA).

If multiple /v options are encountered, the right-most
one overrides previous settings.

[See also "Configuring FFG"]


Filtering by Excluding File Names

/x Exclude Files

/xFileMaskList - exclude all files in FileMaskList,

where FileMaskList is a list of file specs separated by
',' commas. For example, /x*.bat,*.exe,*.com or
/x*.[bat,exe,com]

If multiple /x option switches are specified, a file
will be excluded only if it matches all of the separate
/x criteria. For example, /x*boy* /x*dog* will exclude
the files BOYDOG.DAT, DOGBOY.DAT, but not BOYS.DAT or
DOGS.DAT.

To exclude files that contain either 'BOY' or 'DOG' in
the name specify: /x*[boy,dog]*, which is equivalent to
/x*boy*,*dog*


Searching Inside Archive Files

/z ZIP and other archive file search

/z[.][ArcExtList] - Search inside archive files.

. = search ONLY inside archive files.
ArcExtList = list of file extensions to treat as
archives. e.g.,
/zZIP,ARC,LZH,ARJ,ZOO,COM,EXE

FFG currently supports ZIP, ARC, LZH, ARJ, ZOO, and XEQ
archive files. It also supports ZIP, LHA and ARJ self-
extracting (.EXE) archive files.

File Finder/Grouper 29 (c) EnGamma







If /z is used in conjunction with /$ (text search) the
files within the archive will be extracted and searched
if:

- you have the associated extraction program
(e.g., PKUnzip, LHA) on you DOS search
path and
- FFG can find temporary disk scratch space
to extract the file (see Setting a
Temporary Directory in the Miscellaneous
section of this manual).

[See also "Configuring FFG"]

Archive Examples

/zZIP - Limits archive search to ZIP files
/zARC,LZH - Limits archive search to ARC and LZH files
/z. - Limits search to only archive files


Filtering by Finding Text Strings Within Files

/$ - Include files containing text the specified text string

/$[=c][=!][=#n]TextCodeStr[=c][[,|'][=!][=#n]TextCodeStr2[=c
]...]

Include files containing the string(s) represented by
TextCodeStr. TextCodeStr can be a comma-separated/bracketed
set of alternatives (see syntax for name searching)

TextCodeStr- TextCodeStr is alphnumeric text with
optional imbedded codes for special
characters.

=c = Case Sensitivity

The '=c' at the beginning of the option
sets the case-sensitivity for all
alternatives specified in the option
argument. This can be overridden for a
specific alternative by putting a '=c' in
that alternative string. For example,

/$=cfirst,second=c,third

would match files containing "first" (case
sensitive) or "second" (ignoring case), or
"third" (case sensitive).

File Finder/Grouper 30 (c) EnGamma







If mixed case it used in a text string, it
is taken to imply that the search should
be case-sensitive, regardless of whether
'=c' is specified.

=! = Exclude file if TextString found.

=#n = Search only first 'n' bytes of file

=Code = If within TextString '=' is followed by a
1-3 digit numeric code with a value
between 1 and 255, the character
corresponding to that numeric code will be
matched. This enables specifying control
codes and any other codes that might be
otherwise not be allowed by DOS on the
command line. For example,

FFG *.exe /$=cPK=3=4

would search EXE files for self-extracting
PKZip files. The above /$ option example
is equivalent to /$=cPK=003=004. The
leading zeroes are necessary only when you
want to follow the code with numeric text.

Special characters - Some characters are interpreted by the
DOS command line interpreter and if used may give
undesirable results. These include "><|", the DOS
redirection and pipe symbols. The easiest way around this
problem is use enclose search strings containing such
characters in quotes. A second way around this problem is
to specify the codes for these characters using '=' as
described above. A third way is to use the following
alternatives which are interpreted by FFG:

=) = for '>'
=( = for '<'
=I or =i = for '|'
=Q or =q = for '"' (Q for quotes)
=: = for ';'
=_ = for ' ' (blank)(to avoid quoting string)
== = for '=' (to override special function of
=)

Also, since the characters ",'[]" have special meaning to
FFG in specifying alternatives (as in /$[basket,foot,base]ball),
if they are to be part of the search text they must be
preceded with an '=' symbol. For example, /$Bill's is
interpreted incorrectly as "Bill" OR "s", but /$Bill='s is

File Finder/Grouper 31 (c) EnGamma







interpreted correctly as "Bill's".

Text String Search Examples

/$simple - finds files containing 'simple' regardless
of case (same as /$SIMPLE)
/$=csimple - finds files containing 'simple' - lower
case only
/$T[h,]om - finds files containing 'Tom' or 'Thom' -
case sensitive
/$me /$you - finds files containing both 'me' and 'you'
regardless of case
/$T,=!M - finds files that either contain a 'T' or
don't contain an 'M', case-insensitive.
/$=#4=255WPC - finds WordPerfect Corporation product data
files; searches only first 4 bytes of file

Efficiency Note: Searching the contents of a file is much
slower than searching by name, date, time,
size, attributes. Searching contents is
slower still when you combine it with the
/z option to search for text within
archive files, since the file must be
extracted from the archive to be searched.
Therefore, to improve the speed of a text
search it helps to filter out files based
on these other criteria before searching
the file for text. FFG will do this
filtering first if you specify other
criteria. The more narrow the other
criteria are, the greater the speed
improvement will be. A particularly
important criteria is file size. If you
put an upper limit on the size of the
files, it will avoid scanning large files.

Another, important way to improve speed is
to embed the '=#n' control sequence in the
text string to limit the text scan to the
first 'n' bytes of the file. Of course
you need to know approximately how close
the data you are searching for is to the
start of the file. One of the above
examples, uses this technique.


Disk Drives to Search Customization

/:*[DriveList] - Set wildcard drives
/:[!]DriveTypeList - Set wildcard drive types

File Finder/Grouper 32 (c) EnGamma







/:_[DriveSpec] - Set drives to search when no drive
specified

/:[*|!|_] - Resets to defaults
The /: option sets which drives and drive types are searched
when a wildcard '*' is used for drive and/or when no drive
is specified.

DriveList = non-wild list of drives (ranges
allowed)
DriveTypeList = string of drive types composed of one

or more of the following:

C = CD-ROM
F = Floppy
N = Network
S = Substitute

Examples:

/:*c-f => "ffg *:*.bat" Interpreted as "ffg cdef:*.bat"
/:!FCN => "ffg *:*.bat" Searches all drives but Floppy,
CDROM, and Network drives
/:_ab* => "ffg *.bat" Interpreted as "ffg ab*:*.bat"

This option is intended for use with the FFGOPT environment
variable. [See "Configuring FFG"]

Limiting Number of Found Files One

/1[:|r|z|c] - Stops after finding 1 file [per drive,
directory, archive, container]

: = per drive
r = per directory
z = per archive
c = per container (archive or directory)

Disabling User's Ability to Interrupt

/![i|q|s|g] - Disable various user interrupt methods to
prevent user from skipping part of the
search

i = disable Input from keyboard of any kind (same as /!)
q = disable Quit/escape using , -,
-C
s = disable Skip drive
g = disable Goto


File Finder/Grouper 33 (c) EnGamma







Configuring FFG

DOS environment variables can be used to set FFG
configuration preferences to avoid having to type them in as
command line options each time FFG is run. Say for example,
you want to always use 50-line video mode (/v5), packed
output format (/fp), and pause when the screen fills (/p).
To do this, set the desired options in an environment
variable ("FFGOPT" by default). Options are saved in the
"FFGOPT" environment variable using the DOS "set" command as
follows:

set FFGOPT=/v5 /fp /p

FFG will then use the options specified in the environment
variable as though they were typed on the command line
before any other command line parameters. To continue with
the above example, if you then ran FFG as follows:

ffg c:*.bat

it would be equivalent to having typed:

ffg /v5 /fp /p c:*.bat

Although any command line argument can be set in the FFGOPT
environment variable, the following options are the most
likely candidates, since they are preference items: /b, /f,
/h, /p, /q, /r, /v, /z, /:, /!

The best time to set the environment variable is at system
startup, which is done by including a "set FFGOPT=" command
in AUTOEXEC.BAT. If desired, the environment variable can
be reset (changed) later using the set command. Microsoft
Windows Note: If you set an environment variable from within
a DOS window running under Microsoft Windows, the
environment variable is set/changed only for that particular
window.

The name of the environment variable is actually not fixed
at "FFGOPT"; instead it is composed of the name of the
executable program, "FFG" by default, followed by the fixed
"OPT", hence "FFGOPT". You can use this to your advantage
to have differently configured versions of FFG by copying
FFG.EXE to new names and setting associated OPT variables,
such as:

set FFG50OPT=/v5 for FFG50.EXE
set FFGPOPT=/p for FFGP.EXE
set GOOPT=/g /qm /bd for GO.EXE

File Finder/Grouper 34 (c) EnGamma







Bugs/Known Deficiencies/Future Improvements

1. Further date options are planned such as /dLASTYEAR
2. A combined date-time option is planned (e.g.,
/t12/1/[email protected]:47-)
3. A more general way of specify logical expressions of
search criteria is planned, which will allow mixing and
matching different criteria in arbitrary boolean
expressions.
4. An option to use regular expressions for text searches
or name searches or both is planned.
5. There is currently no way to use the "=' character in
the FFGOPT variable.






































File Finder/Grouper 35 (c) EnGamma







Miscellaneous

1. Interactive Keys - During a search the following keys
have a special function:

- Aborts/interrupts the search
- Goes to the disk and directory of the
last found file. If searching for
directories, the found directory will be
made current.
- Skips to the next disk drive
- Causes a beep when search complete
- Skip to next directory in parent of this
one
- Skip to deeper directory (first
subdirectory of this one)
- Skip current file.
any other key - Pauses the search operation

2. Speed - A powerful and common use of FFG is find all
files that contain a specified text string (and then
maybe do something to/with them). However, opening each
file on the disk and searching its contents is much
slower than finding files based on their external
properties such as name, date, time, size etc. If the
files to be searched are compressed within an archive
file, the search is slower still. With a little
forethought on your part, FFG's true power can be
brought to bear and such searches can be conducted
quickly. The key to speeding up such searches is for
you to also specify some additional filtering criteria
based on the files' external properties. If you do
this, FFG will filter out files before applying the
slower archive extraction and text searching. For
example, you could filter out all executable files and
graphic files, exclude files with the system attribute
set, very large (> 1 MB) files, very old files etc. In
fact, some defaults have been set up for /x, /s, /a, /$
specifically to facilitate excluding files that are
probably not of interest in a text search. These
defaults are as follows:

/x = /x*.[zoo,arc,arj,lzh,zip,bmp,gif,obj,ovy,drv,dll
,com,exe]
/s = /s1-1M (excludes empty and very large files)
/a = /a!s (excludes system files)
/$ = /$=!=#2MZ (excludes files with executable
signature at beginning of file)

For example, rather than use:

File Finder/Grouper 36 (c) EnGamma








FFG *:* /z /$"text to find"

you might try something like the following:


FFG *:* /z /$ /$"text to find" /d95- /s /a /x

3. Status Meter - While searching, FFG displays one of two
possible status meters (set with /fm[s|p]):

a. The full status meter, which is the default, shows
the directory file being searched, the archive file
(/z), and the file being scanned for text
(/$) along with percentage scanned. Here is an
example:

D:\PARENT\SUBDIR\[ARCHIVE.ZIP]TEXTFILE.TXT 58%

b. Alternatively, the simple spinning meter can be
used (/fms) which displays the drive currently
being searched and indicates progress with a
spinning run meter. The spinning meter is updated
one increment each time a new directory or a new
archive file is searched. When the meter slows, it
is indicative of either a directory with many files
or an archive file.

4. Summary Report - FFG displays a summary report of the
search operation. It includes:

- Total bytes inside all found files.
- Disk space occupied by found files including unused
space due to the disk cluster/block size. For files
in an archive, the reported disk space occupied by
files within that archive is limited to the size of
the archive.
- Number of directories searched.
- Number of directories in which files were found
- Name/Date/Time/Size/Attribute/Text criteria used
- Starting directory for search if not root directory
- Directory mask if wildcards used in directory spec
- Number of archive files searched
- Number of archive files in which files were found
- Number of files that could not be extracted from
archives.
- Number of files scanned for text.
- Number of files that could not be scanned for text.
- The elapsed time from the start of the search.

5. Setting a Temporary Directory - FFG needs to use a
temporary directory for text-search archive extracting

File Finder/Grouper 37 (c) EnGamma







(when /z and /$ are used together) and for swapping its
program to disk during a /e execute command (only if
there is insufficient EMS/XMS). If you set an
environment variable, FFGTMP, to a valid path to which
you can write files, then FFG will use it. If not, FFG
will look for a TEMP environment variable and then a TMP
environment variable. If none of these are set to a
valid path with sufficient space, FFG will then try C:\
and finally the current directory of the current drive.
Ideally, you should have one of the above environment
variables set to a directory on your fastest drive that
has enough space to hold about 250K plus the largest
file you might extract from an archive. If you use a
RAM drive, which is best for speed, make sure it is
large enough. If you use a network drive, make sure you
have access rights to write files to that directory.
Here's an example of how to set the temporary directory
in AUTOEXEC.BAT:

set FFGTMP=C:\temp

6. Microsoft Windows - Although not required, there is a
Windows PIF file in the FFG package which is set up to
run FFG from within Windows. If you create your own PIF
file, allow use of EMS and/or XMS memory for optimal
performance.

7. Logical Combination of Search Criteria - Currently,
search criteria of different types (e.g., size and date
are different types) are combined in a logical AND
expression. That is, for a file to match it must match
all criteria. However, within a single command line
option of one type (e.g., /d), multiple comma-separated
criteria are combined in a logical OR expression.

8. One Floppy Systems - When a floppy drive is specified to
be searched (e.g., ab*:FILENAME or ab:FILENAME or
a:FILENAME or b:FILENAME), FFG will search the system's
only floppy drive regardless of whether one or both
floppies were specified. The summary will report
whichever logical drive letter DOS was using at the time
to refer to the drive. (This might be B: if prior to
running FFG you tried accessing drive B:.)

9. FFG can be renamed. FFG will recognize the new name and
display it in the usage screen if you are using DOS 3.0
or later. Note that the FFGOPT environment variable is
valid only for FFG.EXE. If, for example, you rename
FFG.EXE to F.EXE, then the corresponding environment

variable must be FOPT, not FFGOPT. (You can use this

File Finder/Grouper 38 (c) EnGamma







feature to have different configured versions of FFG.)

10. Conventions - Several options attach special
significance to '!' and to '.'. Generally, '!' is used
to represent "negation"/"logical not"/"turn off".
Generally '.' is used to represent "only"/"these
period"/"no others". The '=' symbol will be used as a
general purpose 'escape' character to indicate that the
subsequent character or characters are to be treated
differently than normal. For example, '=c' is used to
indicate case-sensitivity in a text search.

11. Return Codes - Upon completion of an error-free search,
FFG returns 1 if a file was found and 0 if no files were
found. The DOS errorlevel batch command can be used to
test for this return value. A few of the example batch
files make use of this feature.

12. Commas and batch files - As shown in several of the
example batch files, FFG can be used in batch files to
build some special or general purpose utilities.
However, there is an annoying problem with encapsulating
FFG in a batch file that arises because of the use of
the comma ',' as a delimiter for search criteria. The
problem arises because when a comma is used in an
argument to a batch file command, DOS interprets it just
like a space and it is not passed on to FFG. To
sidestep this problem, FFG accepts alternatives to the
comma as follows:

For Name criteria (including /x option) you can
use a slash "/" instead of the comma.

For date, time, size, day-of-week, attribute,
and text criteria, you can use a single quote
"'".

Note that there is no problem using commas inside a
batch file; the problem arises when including commas in
a command line argument to a batch file.

13. Use of spaces in command line options - Generally spaces
and semicolons are not allowed because they are
interpreted as separators between the command-line
options. To enable spaces to be used, where legal, you
can enclose either the entire command line option
(including the slash/dash and the switch character) in
double quotes or enclose only the part with spaces. For
example, use "/$Find this in a file" to find the string
"Find this in a file". Note that any of the following

File Finder/Grouper 39 (c) EnGamma








alternatives would work:

a. "/$Find this in a file"
b. /$"Find this in a file"
c. /$Find" this in a file"
d. /$Find" this in a "file
e. /$Find" "this" "in" "a" "file

14. Option Switches - Options can be specified using either
'/' or '-' as command line switch characters.

15. Case Sensitivity - FFG is not currently case sensitive,
but future releases may distinguish letter case as new
features are added. Use of lower case letters is
recommended.

16. Design - FFG is packed with different features and
options, but it designed with the principle when using
basic features, you should not be encumbered with the
complexities of advanced features. In fact, even
internal design follows this approach for performance.
For example, if you specify a simple file specification
that DOS can handle (e.g., *.BAT), FFG lets DOS handle
it, which results in a quicker search.

17. FFG was developed using Borland C++ 3.1.

























File Finder/Grouper 40 (c) EnGamma







System Requirements

Operating System/Environment

FFG requires DOS version 3.1 or later. FFG will also run
under Microsoft Windows in a DOS window.

Video

Although not required, if the system has EGA or VGA video,
FFG will be able to display more lines of information on the
screen at once using the /v (Video) option.

System Memory

FFG uses Borland's VROOMM (Virtual Runtime Object-Oriented
Memory Management) feature to provide many features while
making most efficient use of system memory. Expanded memory
(EMS) and/or extended memory (XMS) is used, if detected, to
improve performance. During execution of commands with the
/e option, FFG will swap itself (all but about 6 KB) to EMS,
XMS, or disk to maximize the amount of memory available to
the program being executed.

With low system memory FFG will still operate, but
performance may be degraded and some infrequent operations
may not be possible. If there is low conventional memory,
but sufficient expanded memory, there may be no noticable
performance degradation. In any case, if low system memory
is detected, FFG displays a warning message:

WARNING! Low memory. Program may operate slowly and/or terminate
prematurely.

FFG requires a minimum of about 135K of conventional system
memory. Performance and feature availability is maximized
when there is greater than approximately 190K of
conventional memory. If during operation, FFG is unable to
obtain sufficient memory to continue, it will terminate with
the message:

ERROR! Insufficient memory to continue.

If there is insufficient memory for FFG to execute, one of
the following error messages will appear depending on the
available memory:

Cannot Execute FFG.EXE
Abnormal Program Termination
ERROR! Insufficient memory.
130K of available conventional RAM required

File Finder/Grouper 41 (c) EnGamma


















































File Finder/Grouper 42 (c) EnGamma



Leave a Reply