WhereIs Version 4.4a Released Dec 18, 1990 A PC-DOS / MS-DOS Fast File Finder _______ ____|__ | (tm) --| | |------------------- | ____|__ | Association of | | |_| Shareware |__| o | Professionals -----| | |--------------------- |___|___| MEMBER Written by Keith Ledbetter 4240 Ketcham Drive Chesterfield, VA 23832 (804) 674-0780 (6:00pm - 10:00pm Eastern Time) Electronic mail on GEnie : ORION.MICRO CompuServe: 72240,1221 Program and Documentation are Copyright (c) 1990 by Keith Ledbetter. All rights reserved. Portions Copyright Borland, International. WhereIs is written in Turbo C++. This program is produced by a member of the Association of Shareware Professionals (ASP). ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help. The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not provide technical support for members' products. Please write to the ASP Ombudsman at P.O. Box 5786, Bellevue, WA 98006 or send a Compuserve message via easyplex to ASP Ombudsman 70007,3536. WhereIs Registration Form Keith Ledbetter 4240 Ketcham Drive Chesterfield, VA 23832 WhereIs Version 4.4a Quantity Price Disk with branding utility ($15/copy): _______ __________ Total enclosed __________ Please make payment by check or money order (in US funds) payable to "Keith Ledbetter". Please specify the diskette size(s) that are acceptable for you: ___ 5.25" 1.2MB ___ 3.5" 1.44MB ___ 5.25" 360KB ___ 3.50" 720KB Name ________________________________________________________ Company ________________________________________________________ Address ________________________________________________________ ________________________________________________________ Phone ________________________________________________________ Where did you get WhereIs? ____________________________________ Multi-System and Reseller Licenses: Site, corporate, network, and reseller licenses are available for WhereIs. Check the line on the order form or contact me for more information. The following schedule provides some examples of multi-system license fees. The fee includes one master diskette which you may then copy and use on the number of machines listed below: # Users Price ------- ------- 5 $ 70.00 ($14 / copy) 10 130.00 ($13 / copy) 25 300.00 ($12 / copy) 50 550.00 ($11 / copy) 100 1,000.00 ($10 / copy) Unlimited 1,500.00 WhereIs v4.4a Page 1 Definition of 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. WhereIs v4.4a Page 2 Disclaimer - Agreement Users of WhereIs must accept this disclaimer of warranty: "WhereIs is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or conse- quential, which may result from the use of WhereIs." WhereIs is a "shareware program" and is provided at no charge to the user for evaluation. Feel free to share it with your friends, 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. If you find this program useful and find that you are using WhereIs and continue to use WhereIs after a reasonable trial period, you must make a reg- istration payment of $15 to Keith Ledbetter. The $15 registration fee will license one copy for use on any one computer at any one time. You must treat this software just like a book. An example is that this software may be used by any number of people and may be freely moved from one computer location to another, so long as there is no possibility of it being used at one location while it's being used at another. Just as a book cannot be read by two different persons at the same time. Commercial users of WhereIs must register and pay for their copies of WhereIs within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by con- tacting Keith Ledbetter. Anyone distributing WhereIs for any kind of remuneration must first contact Keith Ledbetter at the address below for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering WhereIs immediately (However Keith Ledbetter must still be advised so that the distributor can be kept up-to-date with the latest version of WhereIs). You are encouraged to pass a copy of WhereIs along to your friends for evaluation. Please encourage them to register their copy if they find that they can use it. All registered users will receive a copy of the latest version of the WhereIs system. WhereIs v4.4a Page 3 Introduction Note: For a list of new features in this version, see the file HISTORY.DOC. Thank you for taking the time to try out WhereIs v4.4a. You will find that WhereIs can satisfy almost all of your file searching needs. It has a multitude of search options, some of which are: o The ability to search inside ARC, ZIP, PKA, PAK, ZOO, and LZH archived files. o The ability to search for files that have been compressed with PK-Ware's PKLite program. o True regular expression searching on filenames. o The ability to display duplicate entries across all of your disk drives (even those duplicates that are in the archive files mentioned above!). o Up to 25 filenames can be excluded from the search. o Built-in ZIP archive error detection. Every time you do a search that includes ZIP files, every ZIP file on your hard drive is checked for integrity! o The ability to do restrictive searches on such criteria as file dates and file sizes. o The ability to do a verified (or un-verified) deletion of any files found in the search (great for periodically deleting those .BAK files or files with a size of zero). o Support for Novell's "volume" configurations. o Default switches can be set in an environment variable. Don't be fooled by imitations. There are recent file finder programs out there making claims that their "features" are "never before found in any file finder programs". Funny! Their "features" (like date-range searching and filesize searching) have been in our program a YEAR before they were even released! Now, here is the only pitch that you'll see in this document for some of your hard-earned money. WhereIs is being distributed as a Shareware product. If you find that you are still using this program a couple of weeks after you get it, please take the time to fill out the registration form at the front of this documentation file and send in your registration fee of $15. WhereIs v4.4a Page 4 Introduction When you send in your registration fee, you will receive a disk with the most recent version of WhereIs, along with a BRAND utility that you can use to place your name and serial number into ALL FUTURE VERSION of WhereIs. No future upgrade costs; you pay only one time! You will also receive unlimited telephone support for the program. Registered WhereIs users may call me at (804) 674-0780 between the hours of 6:00 pm - 10:00 pm (Eastern) Monday-Friday, and from 10 am - 6 pm on the weekends. Thank you for supporting WhereIs and my other Shareware programs! WhereIs v4.4a Page 5 What WhereIs Does WhereIs helps hard drive owners retain (some of) their sanity by locating files on their hard drives. We've all had situations where we KNOW that a file is somewhere on the hard drive; we just can't remember where. Another added feature of WhereIs is that it can be told to look inside of ARC files, too. This is a very important feature with the common acceptance of archived files these days. In this document, "ARC files" is used as a generic term for any file with the following extension: .ARC .ZIP .LZH .ZOO .PAK .PKA Other advanced features of WhereIs include (a) grep-type searching on filenames (ie: find filenames with a '4' in the fifth character), (b) date and time range specifiers, and (c) file size range specifiers. There are many switches for WhereIs, and it is highly recommended that you read this document carefully so that you will be able to get the most out of the program. There are very few things you can't do with WhereIs when it comes to locating files. As an advanced example: whereis cde:*.bak "[0-9]" -gt1024 -lt2048 -s12-10-89 -b12-20-89 -v How about THAT for a command line? What this would do is delete all .BAK files on drives C:, D:, and E: that have a number somewhere in the filename (ie: PROG01.BAK). But, only if the file is between 1025 and 2047 bytes in length, and was last modified sometime between the dates of 12-10-89 and 12-19-89. Yes, I know that you'll probably never need to do something exotic as this, but it shows the power that you have with WhereIs. Take the time to learn WhereIs, and it will always be your friend (sounds like Mr. Rogers!). WhereIs v4.4a Page 6 The Command Line Interface Invoking WhereIs is simplicity itself. If you do not specify a path, then WhereIs will search the entire default drive. If you specify a starting path, then the search will occur from that path downward (only). Here are some basic command line examples: whereis ab*.c search entire default drive for any filename matching "ab*.c". whereis \turboc\ab*.c search downward from the \turboc\ directory on the default drive looking for "ab*.c". whereis d:*.dat -a search entire drive d: and all ARC files on drive d: looking for "*.dat". whereis cd:*.dat -a search entire drive c: and drive d: and all ARC files looking for "*.dat". whereis myprog search entire default drive looking for "myprog.*" (WhereIs will append a ".*" to a filename with no extender specified). WhereIs v4.4a Page 7 Additional Command Line Switches Switch: -A Meaning: search all ARC files Description: The '-a' switch tells WhereIs to look in any ARC file encountered for a matching filename. If a matching filename is found, it will be displayed in parenthesis along with the full name of the ARC file it resides in. Switch: -AO Meaning: search -ONLY- ARC files Description: The '-ao' switch tells WhereIs to ONLY look in any ARC file encountered for a matching filename. If a matching filename is found, it will be displayed in parenthesis along with the full name of the ARC file it resides in. Switch: -ARC -PAK -PKA -LZH -ZIP -ZOO Meaning: search only the ARC formats specified Description: These switches tell WhereIs to only look inside the specified ARC files for a matching filename. For example, if you are sure that the file named MYPROG.EXE is somewhere on drive C: in a .ZIP file, then whereis c:myprog.exe -zip would find the file. Specifying individual ARC format switches slightly speeds up WhereIs, because the program doesn't have to waste time searching for (and through) all six ARC formats. Switch: "regular expression" Meaning: do a grep-type search on the filename Description: Any command line string enclosed within double quotes will be considered a regular expression, and will cause WhereIs to go into its "grep mode". A regular expression can be used with or without a filename search mask. As of version 4.1a, when you specify a regular expression, WhereIs will also look inside of 4DOS description files for the string specified. If a match is found, the normal output line will be displayed, along with the actual 4DOS description line below the filename line. Special characters within the quoted string are as follows: ^ - start matching at the first of the filename ? - match any character in this position [..] - range check on character at this position The easiest way to explain is with a few examples: WhereIs v4.4a Page 8 Additional Command Line Switches whereis *.bat the regular search; will display any .BAT file found. whereis *.bat "42" will display any .BAT file that contains the characters "42" anywhere in the filename. whereis *.bat "^???42" will display any .BAT file that contains the characters "42" in the fourth position of the filename. whereis "[0-9]" will display any file that contains a number anywhere in the filename. whereis "[^0-9]" will display any file that DOES NOT contain a number anywhere in the filename. whereis "^???a?[acew-z]" will display any file that contains an 'a' in the fourth position of the filename and the letters 'a', 'c', 'e', 'w', 'x', 'y', or 'z' in the sixth position of the name. These grep masks also work when looking inside of ARC files. Switch: -C"command to execute" -O"command to display" Meaning: Execute (or display) a DOS command on all files found. Description: This switch tells WhereIs to execute the command within the double quotes on each matching file found. When doing this command, you have access to replaceable parameters to get to the full filename, the pathname only, the filename only, and the name of the archive member (if you're searching archives). The only difference between the -o and the -c switches is that -c actually executes the command whereas -o prints the command it WOULD have executed to the screen. Because of this, the -o command can be invaluable. First, you can use WhereIs v4.4a Page 9 Additional Command Line Switches it before doing the -c command to make sure that what you think you told WhereIs to do is the same as what you DID tell it to do. In other words, if you're about to do a command that could have side effects (such as deleting files), it would be good to do the -o command first and look at what WhereIs actually will do when you execute the -c command. The second use of the -o command is to redirect all of the command lines into a batch file that you can execute later. Replacement parameters for both -c and -o are as follows: Parm Desc Normal example Archive example ---- ---- ----------------- ----------------- &f full file name c:\dos\xcopy.exe c:\dos\comlib.zip &p path name only c:\dos\ c:\dos\ &d directory name c:\dos c:\dos &n file name only xcopy.exe comlib.zip &m archive member xcopy.exe A few examples would probably be the best way to explain this concept. Let's do a few "real-world" examples here. 1) You have many .DOC files straying all over your hard drive, and you'd like to incorporate them all into one simple ZIP file. You could do this with the following command: C:> whereis -d *.doc -c"pkzip -m c:\docs.zip &f" 2) You want to make a copy of all of your Pascal source code that has been changed today so that you can take it home with you: C:> whereis -d *.pas -s0 -c"copy &f a:\" 3) You want to get a text file listing of every directory name on your hard drive(s) in the file HARDRIVE.DAT: C:> whereis -d nul -o"&p" >c:\Hardrive.Dat 4) You want to delete every .BAK file on your system (even those that are in ZIP files). This would be a 2-step process: First, delete the normal .BAK files C:> whereis *.bak -v -n Then, delete them from the archive files C:> whereis -d -ao -zip *.bak -c"pkzip -d &f &m" Switch: -D WhereIs v4.4a Page 10 Additional Command Line Switches Meaning: search all available hard drives. Description: This switch tells WhereIs to search every hard drive on your system (including network drives), starting with C:. In other words, if you have drives C:, D:, E:, and F: then the following two command lines would do the exact same thing: whereis cdef:myprog.exe or whereis myprog.exe -d Switch: -DIR Meaning: include directory names in the search. Description: This switch tells WhereIs to also include directory names in the search. This allows you to not only locate a lost file, but lost directories, too. Switch: -DUP Meaning: Display only duplicate filenames on the drives searched. Description: If the -DUP switch is specified, only those files that have duplicate entries will be displayed. All other switches are active during -DUPlicate processing. For example, the following command line: whereis *.bat -a -d -dup would cause WhereIs to search all hard drives (-d) looking for duplicate .BAT files. WhereIs would also look inside of all found Archive files (-a). Switch: -E Meaning: use "*.*" for subdirectory searches Description: By default, WhereIs assumes that you don't have any directories on your hard drive that have extensions in the filename. So, when WhereIs is looking for new directories, it will search with a filemask of "*.". This significantly speeds up the hard drive search. If you do have directories that have extensions in their names, you must specify the '-e' switch or WhereIs -will not- find files within that subdirectory. The easiest thing to do is to set your WhereIs environment variable to default to this option (see "The WhereIs Environment Variable" below). Switch: -F Meaning: display filenames only Description: This switch causes WhereIs to display only the filename of matching files that it finds. No header or footer information will be displayed. This is most useful when you are redirecting the output from WhereIs to a file. WhereIs v4.4a Page 11 Additional Command Line Switches Switch: -G or -GF Meaning: go to the drive and subdirectory of the found file Description: If you specify the '-g' switch, WhereIs will prompt you with Goto this subdirectory? _ whenever it finds a matching file. Press 'Y' to change to the drive and subdirectory displayed, or 'N' to continue searching the drive. You may also enter 'Q' to abort WhereIs. If you specify the '-gf' switch, WhereIs will change to the directory of the first found file without prompting you. Switch: -H Meaning: start searching in the current subdirectory Description: The '-h' switch tells WhereIs "start searching where I'm at right now". For example, if you are currently in the TURBOC subdirectory, then the following two commands would do the exact same thing: whereis \turboc\myprog.c or whereis myprog.c -h With the '-h' switch, WhereIs can be used as a directory program with the ability to list ARC files. For example, you could create the following batch file and call it ARCDIR.BAT: @echo off whereis %1 -h -a Now, when you give the command "ARCDIR", you will be shown the directory listing, along with all files contained within ARC files in your current subdirectory. Switch: -I Meaning: ignore the environment variable WhereIs Description: The '-i' switch tells WhereIs to ignore any default switches that you have set with the WhereIs environment variable. This is most useful if you have page-breaking set up as a default, but need to redirect WhereIs's output to a file. You could do this with a command such as: whereis *.bat -i >files.dat Switch: -M -R -PL Meaning: modify WhereIs's default output display Description: These switches allow you to modify the way that WhereIs WhereIs v4.4a Page 12 Additional Command Line Switches displays its output. By default, WhereIs will place the filename on the left of the screen (just like DIR does). If you prefer, you can use '-M' to place the filename in the middle of the screen, '-R' to place the filename on the right of the screen, or '-PL' to put the pathname on the left of the screen. Usually set in the environment. Switch: -K Meaning: search only the PATH directories Description: This switch will cause WhereIs to only search in the directories that are specified in your DOS PATH environment variable. This option will be used very rarely, but was requested by a user. Note: As of v4.1a, this switch was changed. The '-K' switch was previously the '-C' switch. Switch: -Y Meaning: display the output with European-style dates (DD-MM-YY) Description: Again, a seldom-used switch, but requested by a user. Switch: -V [-N] Meaning: do a verified delete of any matching files found Description: These switches tell WhereIs to delete any matching files found. If you specify only the '-V' switch, then WhereIs will prompt you before it deletes each file. If you specify BOTH the '-V' and the '-N' switch, then WhereIs --WILL NOT-- prompt you; it will just go ahead and delete the file (PLEASE be careful with this one!). I use these switches daily to clean up all of the .BAK files created by Turbo C. For example: whereis *.bak -v -n Switch: -W Meaning: show wasted space occupied by matching files. Description: This switch is used very little, but can come in handy if you are trying to figure out how much disk space is being wasted by a bunch of very small files (batch files are a prime example). WhereIs will total and display to you the amount of disk space that is being wasted due to cluster overhead. Switch: -U Meaning: display all output in upper case Description: Some people still prefer to see directory-type listings in ALL UPPER CASE; if you're one of these people, then just use the '-U' switch. It's best to set this in your WhereIs environment variable. WhereIs v4.4a Page 13 Additional Command Line Switches Switch: -P Meaning: pause and wait for a key when the screen fills up Description: A very handy switch, best used when set in your environment variable. It will cause WhereIs to pause the screen when it fills up, so you don't have to go crazy trying to hit the control-S key. Switch: -PKLite Meaning: search for files compressed with PKLite Description: This switch will cause WhereIs to only look for .COM and .EXE files that have been compressed with PK-Ware's PKLITE program. PKLite is a program that compresses executable programs, and then un-compresses them at runtime. Switch: -Xfilemask Meaning: exclude this filespec from the search Description: The '-X' switch allows you to exclude certain filenames from the directory search. You can specify up to 25 exclusion masks. For example, if you wanted to see all files on your drive except for .OBJ and .PRG files, you could do: whereis *.* -x*.obj -x*.prg Switch: -LT -EQ -GT Meaning: specify a file size range Description: These switches allow you to only search for files within a certain size range. Some examples: whereis *.PAS -LT1024 would display all .PAS files that have a size smaller than 1024 bytes. whereis *.* -EQ0 would display all files that have a length of zero. whereis *.* -GT500000 would display all files that are larger than 500,000 bytes. whereis *.* -GT1023 -LT2049 would display all files that are between 1,024 and 2,048 bytes in size. Switch: -S -B Meaning: specify a file date range WhereIs v4.4a Page 14 Additional Command Line Switches Description: These switches allow you to only search for files within a certain date range. These switches are the "since" (S) switch and the "before" (B) switch. Both switches come in two flavors; you can specify the date in number of days (ie: -S5) or with a full date (ie: -S8-19-89). If you specify either switch with no date specifier, then it defaults to '0 days'. These date specifiers are also used when looking inside of archive files. Some examples: whereis *.PAS -S5 would display all .PAS files that have a date greater than or equal to 5 days ago (in other words, modified SINCE 5 days ago). whereis *.PAS -S5-1-89 would display all .PAS files modified SINCE 5/1/89. whereis *.PAS -B5 would display all .PAS files modified BEFORE 5 days ago. whereis *.PAS -B5-1-89 would display all .PAS files modified BEFORE 5/1/89. whereis *.PAS -S5-1-89 -B6-1-89 would display all .PAS files modified between the dates of 5-1-89 and 5-31-89. whereis *.PAS -S would display all .PAS files that have been modified today (defaults to '-S0'). Switch: -Z Meaning: show only files with their archive bit set Description: The '-Z' switch allows you to display only those files which have their "archive bit" set on. In other words, it will show all files that have been modified since your last backup (if your backup program clears the archive bit, that is). Switch: -HIDDEN Meaning: also show hidden and system files Description: The '-hidden' switch allows you to also display those files which are "system" and "hidden" files. WhereIs v4.4a Page 15 The WHEREIS and WI_DRIVES Environment Variables When WhereIs begins execution, it searches the environment for a variable named WHEREIS. If this variable is present, its contents will be appended onto the command line just as if you had entered them in from the keyboard. This option is very handy for setting "default options" that you'd like for WhereIs to perform every time. Simply set the WHEREIS variable in your AUTOEXEC.BAT file. For example, if you'd like to always (a) page break when the screen fills up, (b) display the filenames on the right of the screen, and (c) display output in upper case, you would put the following in your AUTOEXEC.BAT file: SET WHEREIS=-P -R -U WhereIs would then use these options every time you executed the program. If you specify the "-d" switch (search all drives), then WhereIs will search the environment looking for a variable named WI_DRIVES. If this variable is found, WhereIs will use this list as the definition of the drives to search. If the WI_DRIVES variable does not exist, WhereIs will use its own list, which defaults to drives c: through z: (ie: cde...z). The WI_DRIVES variable was added mainly for those people using networks. WhereIs's reckless abandon of simply searching all drive letters caused some network users a lot of headaches. It seems that those affected the most were users of Novell networks. On Novell, you can specify many different drive letters for the same "volume" (ie: partition), so WhereIs would show the same physical file many times, since WhereIs thought that it was really on a different drive. With the WI_DRIVES variable, it is up to the user to tell WhereIs what drives are physically different. For example, let's assume that you have 3 volumes defined, and the drive letter assignments are as follows: Volume 1 - drives C: and D: Volume 2 - drives E: and F: Volume 3 - drives G: and H: For WhereIs to work correctly, you would put the following line in your AUTOEXEC.BAT file: Set WI_DRIVES=CEG Now, when you search using the "-d" switch, WhereIs won't list duplicate filenames. I have never used a Novell network, so I'm hoping that this change will eliminate the problems. This problem was brought up to me in a letter from Bud Huddleston of Chamblee, GA. Luckily, he went into great detail on what the problem was. The WI_DRIVES variable was the easiest way I could think of to attack this problem. If this isn't the best way to handle the situation, I'd appreciate it if you Novell users would drop me a line with suggestions. Note that the search for the WI_DRIVES variable CAN NOT be over-ridden from the command line. If the WI_DRIVES variable WhereIs v4.4a Page 16 The WHEREIS and WI_DRIVES Environment Variables exists, it is used every time. If you need to search a different list, you must specify a drive list with the filename instead of using the "-d" switch. For example, "whereis cdfg:*.bat". For those users who are not on a network, you don't need to do anything differently from version 3.5 of WhereIs. If the WI_DRIVES variable isn't defined, then v3.6 will perform exactly as v3.5 did. WhereIs v4.4a Page 17 Duplicate Filename Searching V4.0 of WhereIs incorporates a feature that I've been wanting for a very long time - the ability to search all drives, including Archive files, and display only those files that are duplicated somewhere else. This was a fairly major upgrade to do, but it turned out (in my opinion) to be the best added feature to WhereIs yet. Maybe I'm worse than other people at this, but I'm terrible about doing a download of a file, un-Arcing it, and then starting to use it. Of course, the original of that file is still sitting out there somewhere in an Archive file just eating up hard disk space. With the new -DUP feature, cleaning up your multiple hard drives from any duplicate files is much easier. But, be aware that when you invoke the -DUP switch, WhereIs gets VERY memory-hungry. This is because WhereIs must keep information on every filename on all of your hard drives (including all of those filenames in any Archive files) in memory AT ONE TIME. If you ever get the message "Error: out of memory!" when trying to find duplicates across all drives, there are a couple of things that you can do. First of all, see if you can free up any more memory by removing any TSR's or device drivers. If you still get the "out of memory" message, then there are two different things that you can do. The first is that you could compare the drives two (or three) at a time. For example, if you have drives C:, D:, E:, and F:, first compare drives C: and D:, then C: and E:, etc. until you've scanned them all. The second thing you can do (the way I prefer) is to do the duplicate scan with a filemask; in other words, do the scan on *.EXE, then *.COM, then *.BAT, etc. For example, here's a sample of what you'd do: C:> whereis *.com -d -a C:> whereis *.bat -d -a C:> whereis *.exe -d -a I don't see the "out of memory" being a problem except for those people with HUGE hard drives. I have two 40-meg drives, both packed full of ZIP files, and I never got close to filling up memory. In addition, WhereIs is fairly intelligent when saving the names in memory; for example, if you have 300 files in the path C:\TEST1\TEMP\DATA, the actual pathname will only get saved one time. If you are looking for duplicates on a very big hard drive system (let's say 80 meg or more), then WhereIs will take some time. Don't be alarmed if the program seems to not be doing anything; searching the file tables of very large hard drives takes some time. I tinkered with the idea of putting in a twirling cursor or something so that you'd know WhereIs was still alive, but I decided against it. Since duplicate searching will probably be redirected to a printer or a disk file most of the time, I didn't want to trash up the display. WhereIs v4.4a Page 18 Duplicate Filename Searching Don't forget that the -DUP switch works in tandem with ALL other WhereIs switches. For example, specifying -DUP doesn't automatically scan all hard drives and look inside all Archive files. You must still specify the -A and -D switches. Also, filename exclusions still work just like normal. Let's do a few examples: C:> whereis -d -a -dup This is the command you'll normally want to do when searching for duplicates. It causes WhereIs to search all hard drives, and inside Archive files, looking for duplicates. C:> whereis *.bat -d -a -dup This command would only list the duplicate .BAT files on your hard drives. C:> whereis cd:*.* -a -dup -x*.bak -x*.doc This command would display all duplicate files on drives C: and D: except any .BAK or .DOC files. WhereIs v4.4a Page 19 File Distribution Points Bulletin Board Numbers: You can always find the latest versions of all of my PC utilities (such as WhereIs, LCD, DelDir, AdMenu, etc.) on the following BBS's: Name Location Number ------------------ ---------- ------------ Blue Ridge Express East coast 804-790-1675 (21 lines) Hard Disk Cafe Midwest 618-684-3990 (file area "Z") C & C Midwest 618-253-3608 ATT-PAC West coast 415-829-6062 End of document.