There has always been some things about GREP that I needed that I didn't have... So I decided to apply myself and using Borland C++ and some OO stuff put together my own version. The only thing missing from this version which will be in the next one is the support for unix-type regular expressions... The specific capabilities I longed for include recursive search through sub-directories... Being able to edit the files found by grep (have grep throw you in edit on them)... Being able to copy the files found to another sub-directory keeping the "tree structure" in tact... Full support for HPFS... So here is the help that comes out if you leave off the parameters.... All disclaimers apply... (e.g. Use it at your own risk... I am releasing this version as freeware but retain the copywrite) etc... Enjoy bobzim@mcs.com (Bob Zimmerman) Syntax: GREP options string wildcard /COPY= /EDIT= Options can be: -i Ignore Case -f File Names Only - No matched lines -r Recursive (all sub-directories) -n Include Line Numbers -t File Names Only - no total lines -b Ignore Binary Files (OBJ, DLL, EXE, LIB) -x Use Unix Regular Expressions (ignore -i) /EX= After each matching file, prompts the user if the specified command should be run against the file. For example /EX=EPM prompts if the epm editor should edit the file. You can "embed spaces" by surrounding the entire string with quotes. For example grep include *.cpp "/ex=start epm" will "start epm" in a separate window. Prior to running the "command"... any %f is translated to the file name. %d is the directory name. %l is the line number the first match was found on. %c is the column number the first match was found on. GREP_EX environment variable can be set to a command you use over and over. So you can place your most often using /ex command in this environment variable in config.sys. To turn on the command specify /EX (without = sign).. For example: grep include *.cpp /ex It will use the environment variable. You can override the environment variable by using the /ex= command: grep include *.cpp "/ex=xcopy %f backup\*.* /v /e /s" The above causes the GREP_EX environment variable to be ignored. Examples : GREP include *.cpp Search for word include in all CPP GREP -irf xhandle *.?pp or GREP -i -r -f xhandle *.?pp Search for xhandle in all files ending with PP (hpp, cpp, xpp) and search all sub-directories as well. Only show the file names that match (no text). Version 1.5 Added Regular Expressions Version 1.6 No longer requires c215.dll Version 2.0 Has dos version of exe along with support for the /EX parameter. /EDIT and /COPY are still supported for compatability but you should use /EX now.