ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ÉÍÍÍËÍÍÍ» Ë Ë ÉÍÍÍÍÍ ÉÍÍÍÍÍ» ÉÍÍÍÍÍ Ë Ë ÉÍÍÍÍÍ» ³ ³ ³ ³ º º º º º º º º º ³ ³ ³ ³ º ÌÍÍÍÍ͹ ÌÍÍ ÈÍÍÍÍÍ» ÌÍÍ º º ÈÍÍÍÍÍ» ³ ³ ³ ³ º º º º º º º º º ³ ³ ³ ³ Ê Ê Ê ÈÍÍÍÍÍ ÈÍÍÍÍͼ ÈÍÍÍÍÍ ÈÍÍÍÍͼ ÈÍÍÍÍͼ ÄÙ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ÚÄ¿ ÚÄ¿ ÚÄ¿ ÚÄ¿ ÚÄ> the programmable ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ file finder ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ and processor ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ version 1.03 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ (C) Giuseppe Maxia ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ÀÄÙ ÀÄÙ ÀÄÙ ÀÄÙ ÀÄÙ 1992-1993 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ So welcome to the machine. Pink Floyd "Wish you were here" THESEUS 1.03 - User manual and reference - i ACKNOWLEDGEMENTS MS-DOS is a trademark of Microsoft Corp. PKZIP, PKUNZIP and PKSFX are trademarks of PkWare Inc. LHARC and LHA are trademarks of Haruyasu Yoshizaki. UNIX is a trademark of Bell laboratories. IBM is a trademark of IBM Corporate. TURBO PASCAL and BORLAND C++ are trademarks of Borland International. Object Professional is a mark of TurboPower Software. 4DOS is a trademark of J.P. Software. DEsqView is a trademark of QuarterDeck Inc. ARJ is a trademark of Robert K. Jung. Thanks to Pietro Polignano and Antonello Scardigli, for beta-testing the program. Thanks to Gianlazzaro Sanna for proofreading. THESEUS 1.03 - User manual and reference - ii Table of contents ================= License terms ............................... 1 Disclaimer .................................. 1 System requirements ......................... 2 Why Theseus ................................. 2 General concepts ............................ 2 Getting Started ............................. 3 Language components ......................... 7 Language Syntax ............................. 10 Expressions ................................. 10 Conditions .................................. 11 Compound conditions ......................... 11 Identifiers ................................. 11 Operators ................................... 11 Abbreviations ............................... 11 Values ...................................... 11 Joints ...................................... 13 Modifiers ................................... 13 Constants ................................... 14 Script files ................................ 14 Command line arguments ...................... 15 Actions ..................................... 15 Getting help ................................ 15 Stopping the program ........................ 15 Case ........................................ 15 The default script .......................... 16 Script files and registered version ......... 16 Using THESEUS with 4Dos ..................... 16 Performing commands ......................... 17 Working with compressed archives ............ 19 Customizing the program ...................... 19 Changing default options ............... 19 Enabling / disabling identifiers ....... 20 Technical notes ............................. 21 About the Author ............................. 22 Reference ................................... 23 Symbols ..................................... 23 " .......... 23 ( .......... 23 ) .......... 23 = .......... 24 < .......... 24 > .......... 24 >= .......... 24 <= .......... 24 <> .......... 25 && .......... 25 || .......... 25 // .......... 25 [ .......... 26 ] .......... 26 THESEUS 1.03 - User manual and reference - iii Identifiers ................................. 27 Attribute .......... 27 BegSearch .......... 27 BegSearchUC .......... 27 ComprCRC .......... 27 ComprSize .......... 28 Confirm .......... 28 Date .......... 29 Day .......... 29 EndName .......... 30 Extern .......... 30 ExternD .......... 32 Month .......... 32 Name .......... 33 NameCont .......... 33 NameLen .......... 34 Ratio .......... 34 Search .......... 35 SearchUC .......... 36 Size .......... 36 Soundex .......... 36 Time .......... 37 WeekDay .......... 37 Year .......... 37 Modifiers .................................... 38 AllCmp .......... 38 AllDrives .......... 38 ArcExclude .......... 38 ArcNames .......... 39 ArcScan .......... 39 ArjExclude .......... 39 ArjNames .......... 39 ArjScan .......... 40 BegExec .......... 40 BegExecD .......... 40 Clone .......... 41 CmpOnly .......... 42 ColorOutput .......... 42 Const .......... 42 ConstChar .......... 43 DaysBack .......... 43 DefExt .......... 44 DefScrName .......... 44 Delete .......... 44 DirColorB .......... 45 DirColorF .......... 45 Disable .......... 45 Drives .......... 46 DrivesExcl .......... 46 Enable .......... 46 EndExec .......... 47 EndExecD .......... 47 Exec .......... 48 ExecD .......... 48 ExpandArgs .......... 48 Explain .......... 49 ExplColorB .......... 49 ExplColorF .......... 50 FileColorB .......... 50 FileColorF .......... 50 FileHeader .......... 51 GoTo .......... 51 Help .......... 51 InDateMask .......... 52 InTimeMask .......... 52 LzhExclude .......... 53 LzhNames .......... 53 LzhScan .......... 53 NoShow .......... 54 Number .......... 54 OutDateMask .......... 55 OutDirLen .......... 55 OutExtLen .......... 55 OutNameLen .......... 56 OutPathLen .......... 56 OutCmpMask .......... 56 OutputMask .......... 57 OutputFile .......... 58 OutSepDir .......... 58 OutSizeMask .......... 59 OutTimeMask .......... 60 Path .......... 60 PathExcl .......... 60 Pause .......... 61 RecurseDir .......... 61 ReverseDir .......... 62 Status .......... 63 SwitchOFF .......... 63 SwitchON .......... 64 Totals .......... 64 ZipExclude .......... 64 ZipNames .......... 65 ZipScan .......... 65 THESEUS 1.03 - User manual and reference - iv Constants ................................... 67 @0, @1...@2 .......... 67 @2daysAgo .......... 67 @Black...@White .......... 68 @CurrentPath .......... 68 @Day .......... 68 @MidNight .......... 68 @Month .......... 69 @Noon .......... 69 @Now .......... 69 @OneAM .......... 69 @OutCmpMask .......... 69 @OutputMask .......... 70 @TeaTime .......... 70 @Today .......... 70 @WkDay .......... 70 @Year .......... 70 @Yesterday .......... 71 Index ............................. 72 THESEUS 1.03 - User manual and reference - page 1 License terms for personal use. =============================== THESEUS is marketed as a shareware program. This marketing method gives the user the opportunity to evaluate the program before actually registering the software. If, after a two week evaluation period you determine that THESEUS meets your needs, you are required to register your copy of THESEUS with Giuseppe Maxia. To register your copy of THESEUS, please fill in the registration form that is distributed with the THESEUS package, include your payment and mail to: Giuseppe Maxia Via Olanda 13 09045 Quartu S.E. - CA Italy After registering, you will receive a full featured version of the package, and you will be entitled to receive a major upgrade at shipping price only. The registered version has more features than the shareware release. Source code availability. Please contact me if you are interested in buying the source code of this program (See technical notes for details.) Disclaimer ========== This program is released "as is." The author disclaims all warranties, expressed or implied. The author will assume no liability for damages either from the direct use of this product or as a consequence of the use of this product. ************************ WARNING! *********************** ********************************************************* ** Using external programs applied to the huge power ** ** of THESEUS may be dangerous if you don't know ** ** exactly what you are doing. ** ********************************************************* ************************ WARNING! *********************** THESEUS 1.03 - User manual and reference - page 2 System requirements =================== PC IBM or fully compatible MS DOS 3.0 or higher at least 256 Kb of RAM Why Theseus. ============ According with the Greek mythology, in the ancient isle of Crete, it was a monster, half man and half bull, named the Minotaur (the bull of Minos). This monster was in the Labyrinth built by the architect Daedalus. To avenge the death of a son, the king Minos demanded that seven Athenian youths and seven maidens should be sent every ninth year to be devoured by the monster. After three sacrifices, the Athenian hero Theseus came into the labyrinth, killed the Minotaur, and he went out. Sometimes, our disk is like a Labyrinth, containing a monster which devoures our time and patience when we are searching for a file. If you have a Minotaur in your disk, don't make sacrifices. Just call Theseus! General concepts ================ THESEUS is a script oriented file processor, but unlike other similar programs it can use scripts inserted in the command line. It is not simply a file finder. You can use it as a file finder, but with it you can also do a lot of things that you cannot do with other known utilities. THESEUS is a file searcher that understands a simple formal language (although near to natural language) and allows you to insert search expressions of any complexity. You can search for file names, for date or size, and you can make a query of some things that you consider natural, but are not explicit for the operating system. Then, you can ask for a file modified in a Monday of the first 15 days of each month between 2:00pm and 3:00pm or between 9:00am and 11:00am , with only A LINE of command! In addition, you can : - search into selected compressed files (ZIP, LZH, ARC and ARJ); - define ONE OR MORE COMMANDS that will be executed for each file found with optional confirmation; - define commands to execute before start search and after the search is done; - modify the look of the file display; THESEUS 1.03 - User manual and reference - page 3 - search for file contents; - optionally store the changes to the executable file, in order to obtain a fully customized utility; - choose multiple disks and/or paths to search; - exclude multiple disks and/or paths from search; - use environment variables as value for conditions; - delete found files; - get the explanation of what your instruction means for the program; - get the number of files searched and found; - go to the directory that contains the file retrieved; - process a file that contains long conditions and commands. THESEUS can run under a multi tasking environment such as DesqView, without side effects. In other words you can perform a very sophisticated search, while maintaining a high degree of control over your jobs in the disk. Getting started =============== OK. Let's suppose that you want to search all the files that you have modified today. To do this, at the DOS prompt, enter the following line: THESEUS DATE=@TODAY On the screen you'll get a list of all the files modified on the current date. But let's suppose that you want to save these files on a disk. That's easy! See: THESEUS execd="copy $FN A:" DATE=@today and attribute NE d This command will find all the files created or modified on the given date, and whose attribute is different from D (directory,) and for each file it calls the command copy FullFileName ($FN) to target a: The check for attribute is necessary to include only files, not directories, in the process. Well done. But, you are more demanding, and you want to do the same thing using your favorite file compressor. To achieve this, you have several choices: 1. THESEUS ex="pkzip.exe -u A:MYSAVE $FN" DA=@today AND AT NE d 2. THESEUS osd om="$FN" DATE=@today AND at NE d > FILES.LST PKZIP -u a:MYSAVE @FILES.LST The first solution is fast to write but slow to execute, because PKZIP will be called for each file found. In some THESEUS 1.03 - User manual and reference - page 4 cases, this is the only choice. You must know that it exists but you are not obliged to use it. The second solution is longer but, for a large number of files to process, it is almost 10 times faster. This command redirects the output to a file, changes the output mask, and creates a list of all the matching files, with their paths. Then you can call pkzip only once, and you'll solve the problem. Put these two rows into a batch file, and your system backup is done! For instance, you can write this batch: @echo off THESEUS osd om="$FN" DATE=@today AND at NE d > FILES.LST echo INSERT save disk in A: pause PKZIP -u a:MYSAVE @FILES.LST Congratulations! You have just composed a system backup with two lines of directives. Having the registered version, you have a third choice: THESEUS osd om="$FN" OF=FLS.LST EED="PKZIP -u a:MYSAVE @$OF" DATE=@td AND at NE d which requires only a line! But there are other things to do, today. You absolutely must find all the files containing "Poor clerk" that you've written in the last ten minutes before leaving work. No fear! THESEUS TIME GE 04:50p AND time LE 05:00p AND SEARCH="Poor clerk" If you want, the program will also change to the directory that contains the first (or Nth) occurrence of found file: THESEUS GO TI GE 04:50p AND ti LE 05:00p AND SR="Poor clerk" --------------------------------------------------------------- Now it's maintenance time. You want to know which files use more than 300 Kb (you'll often discover more than one copy of these "monster" files in your disk): THESEUS SIZE GT 300000 Now you might have a more complex demand, whose expansion takes more than 127 characters (the maximum allowed by DOS command line.) THESEUS 1.03 - User manual and reference - page 5 Let's suppose that you want to search for every file with a given name, created on some days of the week, changed on the first day of the month, or contained on specified paths and you must perform a long command for each file found. Don't panic, please. THESEUS can take input from the command line or from a file, where you can use the same commands as in the command line. In addition, in the file you can even use characters that have a special meaning for DOS : ">", "<" and "|" (4DOS also gives a special meaning to the character "&" too.) Open a text file with your favorite editor and enter these lines: TOTALS RECURSEDIR PATH = C:\FILES\ARCHIVE;C:\FILES\CUST;D:\SUPPORT;E:\CHANGES EXEC = "C:\FILES\PROGRAMS\MYPROG.EXE $FN $SZ $DA" DAY = 1 && (NAME = *.FTR || WEEKDAY = FRI || WEEKDAY = MON ) You may add comments by starting a line with a semicolon (;). Save the file as STRANGE.FND, then enter the command, at DOS prompt: THESEUS @STRANGE.FND But you can use THESEUS's ability to understand environment variables, and solve the problem with another approach. At DOS prompt you may enter the following three lines: SET P=C:\FILES\ARCHIVE;C:\FILES\CUST;D:\SUPPORT;E:\CHANGES set X="C:\FILES\PROGRAMS\MYPROG.EXE $FN $SZ $DA" THESEUS TOT RD PA=@P EX=@X DAY=1 AND (NA=*.FTR OR WD=FRI OR WD=MON) A technical note: ----------------- if you get a message such as "out of environment space" from the operating system, it means that your environment is too small to contain all the variables that you need. To increase this space, you can add a line in your config.sys: SHELL = D:\PATH\COMMAND.COM /P /E:xxxx where "D:\PATH\" is the drive and path containing your command.com, "/P" means that command will load autoexec.bat if it exists, and xxxx is the amount of environment space that you need. Example: if your command processor is located in the directory C:\DOS and you need 512 Bytes of environment , then enter: SHELL = C:\DOS\COMMAND.COM /P /E:512 THESEUS 1.03 - User manual and reference - page 6 If you use 4DOS with a version less than 4.0, you can use the line SHELL = C:\4DOS\4DOS.COM /P /E:512 /L:C:\4DOS Using 4DOS version 4.0 or later, you must modify 4DOS.INI in order to increase the amount of environment space. Please refer to your command processor user's guide for further details. Well, now it's time for very complex things. Let's suppose that you have, in the same directory, a lot of zipped files downloaded from a BBS and you want : 1. to create a directory with the same name of the zipped file; 2. to unzip each zipped file into its subdirectory; 3. if OK, to delete the zipped files. Yes, yes -- this is out of question for some famous GUI shells for DOS, although their advertisers claim that they are "user friendly." But try this: THESEUS pa=@currentpath rd na=*.zip AND ecd="md $na" AND ec="pkunzip.exe $NA $NA" // del (enter it on a single row!) or set MYCOMMAND=pkunzip.exe $NA $NA THESEUS pa=\BBS rd na=*.zip AND ecd="md $na" AND ec=@MYCOMMAND // del If it doesn't work, I will eat my hat. THESEUS 1.03 - User manual and reference - page 7 Language components ==================== joins : && (AND) || (OR) // (ZZ) condition: identifier operator value Admitted identifiers: Identifier AB Expected value supported operators -------------- -- ---------------------- -------------------- Attribute AT Attribute (RASHDV) = <> BegSearch BSR Text = <> BegSearchUC BSU Text = <> ComprCRC CRC Number (0-2147483647) = <> ComprSize SZ Number (0-2147483647) = < <= > >= <> Confirm CF Text = <> Date DA Date (mm/dd/yyyy) = < <= > >= <> Day DD Number (1-31) = < <= > >= <> EndName EN Text = <> Extern EC Text = <> ExternD ECD Text = <> Month MM Number (1-12) = < <= > >= <> Name NA Text = <> NameCont NC Text = <> NameLen NL Number (1-8) = < <= > >= <> Ratio RA Number (1-100) = < <= > >= <> Search SR Text = <> SearchUC SU Text = <> Size SZ Number (0-2147483647) = < <= > >= <> Soundex SX Text = <> Time TI Time (hh:mmt) = < <= > >= <> WeekDay WD Week Day (3 char.) = <> Year YY Number (1980-2200) = < <= > >= <> Modifiers marked with a "+" are available in the registered version only. Modifiers AB Expected value default value -------------- -- -------------- -------------------------- AllCmp AC No Value FALSE AllDrives AD No Value none ArcExclude AX Text OFF ArcNames AN Text none ArcScan ARC No Value OFF ArjExclude JX Text OFF ArjNames JN Text none ArjScan ARJ No Value OFF BegExec + BE Text none BegExecD + BED Text none Clone + CL No Value FALSE CmpOnly CY No Value OFF ColorOutput CO No Value ON Const CON Text none ConstChar + CC Text @ DaysBack DBK Number 2 DefExt + DEX Text TSF DefScrName + DSN Text THESEUS.TSF THESEUS 1.03 - User manual and reference - page 8 Delete DEL No Value OFF DirColorB DCB Number (0-15) 1 (Blue) DirColorF DCF Number (0-15) 2 (Green) Disable + DIS Text none Drives DR Text Current drive DrivesExcl DX Text none Enable + ENA Text none EndExec + EE Text none EndExecD + EED Text none Exec EX Text none ExecD EXD Text none ExpandArgs + EAR No Value ON Explain XPL No Value OFF ExplColorB ECB Number (0-15) 1 (Blue) ExplColorF ECF Number (0-15) 3 (Cyan) FileColorB FCB Number (0-15) 1 (Blue) FileColorF FCF Number (0-15) 15 (White) FileHeader FH No Value OFF GoTo GO No Value OFF Help HE Text none InDateMask IDM Text mm/dd/yyyy InTimeMask ITM Text hh:mmt LzhExclude LX Text OFF LzhNames LN Text none LzhScan LZH No Value OFF NoShow NS No Value OFF Number NUM Number 1 OutDateMask ODM Text www DD nnn yyyy OutDirLen ODL Number (0-9) 0 OutExtLen OEL Number (0-3) 3 OutNameLen ONL Number (0-9) 9 OutPathLen OPL Number (0-64) 0 OutputFile + OF Text CON (Screen) OutSepDir OSD No Value FALSE OutSizeMask OSM Text ###,###,### OutTimeMask OTM Text hh:mmt Path PA Text Root of Current drive PathExcl PX Text none Pause PAU No Value OFF RecurseDir RD No Value TRUE ReverseDir RVD No Value FALSE Status ST No Value OFF SwitchOFF + OFF Text none SwitchON + ON Text none Totals TOT No Value OFF ZipExclude ZX Text OFF ZipNames ZN Text none ZipScan ZIP No Value OFF OutCmpMask OCM Text " $SZ $CZ $RA $DA $CR $AT $ZN" OutputMask OM Text " $NA$EX $SZ $DA $TI $AT" $NA File Name $NE File Name with Extension $FN Full File Name with Drive and path $EX File Extension $DN Directory Name THESEUS 1.03 - User manual and reference - page 9 $PA Path $DR Drive $DA File Date $TI File Time $SZ File Size $AT File Attribute $AN Compressed archive name $ZN Compressed file name $CZ Compressed file size $RA Compressed file ratio $CR Compressed file CRC $CP Current path $CD Current Date $CT Current Time $ME Available memory $DS Free disk space $OF + Output File (Each MODIFIER that expects a value supports the "=" operator. They can be used BEFORE any identifier is used, or, after all conditional expression, with the special "//" dummy joint.) operators: Equal (= ) or ( EQ ) LessThan (< ) or ( LT ) LessEqual (<=) or ( LE ) GreaterThan (> ) or ( GT ) GreaterEqual (>=) or ( GE ) NotEqual (<>) or ( NE ) Parentheses: ( ) Constants: Name Abbr Value ------------- ---- ---------------- @Today @TD Current date @Yesterday @YD Yesterday date @2DaysAgo @2DA Current date - 2 @Day @DD Current day @Month @MM Current month @Year @YY Current year @Wkday @WD Cur day of week @Now @NW Current time @Midnight @MN 12:00am @Noon @NN 12:00pm @TeaTime @TT 05:00pm @Midnight @MN 12:00am @Noon @NN 12:00pm @CurrentPath @CP The current path @OutCmpMask @OCM " $SZ $CZ $RA $DA $TI $AT $ZN" @OutputMask @OM " $NA$EX $SZ $DA $TI $AT" Time constants: Name Value Name Value ------------- ---------------- ------------- ---------------- @OneAM 01:00am @TwoAM 02:00am @ThreeAM 03:00am @FourAM 04:00am @FiveAM 05:00am @SixAM 06:00am THESEUS 1.03 - User manual and reference - page 10 @SevenAM 07:00am @EightAM 08:00am @NineAM 09:00am @TenAM 10:00am @ElevenAM 11:00am @TwelveAM 12:00am @OnePM 01:00pm @TwoPM 02:00pm @ThreePM 03:00pm @FourPM 04:00pm @FivePM 05:00pm @SixPM 06:00pm @SevenPM 07:00pm @EightPM 08:00pm @NinePM 09:00pm @TenPM 10:00pm @ElevenPM 11:00pm @TwelvePM 12:00pm Color constants: Name Value Name Value ------------- ---------------- ------------- ---------------- @Black 0 @Blue 1 @Green 2 @Cyan 3 @Red 4 @Magenta 5 @Brown 6 @LtGray 7 @DarkGray 8 @LtBlue 9 @LtGreen 10 @LtCyan 11 @LtRed 12 @LtMagenta 13 @Yellow 14 @White 15 Language syntax =============== The general format of a THESEUS command is: THESEUS { @FileName | expr } I.e. you can enter either a file name containing expressions, or an expression on the command line. (In this case, expression length is limited to the 127 characters accepted by DOS COMMAND line.) Expressions. ------------- expression = [modifier [modifier]] condition [join condition ... ][// modifier] An expression must contain at least one condition, and optionally one or more modifiers BEFORE the first condition or, if you prefer to put modifiers AFTER, the first modifier must be preceded by the special "//" joint. THESEUS 1.03 - User manual and reference - page 11 Conditions. ----------- Each condition is composed of an identifier, an operator and a value. Example: NAME = *.DOC | | | | | +------------- value | +--------------- operator +------------------- identifier Compound conditions. -------------------- A condition can be simple or compound. Two or more conditions must be linked with a joint AND or OR Identifiers. ------------ An Identifier defines a type of condition to be checked for for every file to be searched. See the previous section for a list of valid identifiers. Operators. ---------- Each identifier or modifier can support several operators. Using an operator with an identifier that doesn't support it causes a program to be halted. Abbreviations. -------------- You can use abbreviations for identifiers or modifiers, instead of their full names. The identifier can't be freely abbreviated; you must use either complete or abbreviated names, but not intermediate forms. Eg.: you can use "AT" or "Attribute" as identifiers, but not "ATTR" or "ATT." Values. ------- Value types are defined for each identifier. Each value can be quoted (between two quotation marks (" ...... "),) in order to have a correct expression that includes separators, such as blank spaces, parentheses, dots. THESEUS 1.03 - User manual and reference - page 12 THESEUS can accept values in decimal or hexadecimal format, when the value is surrounded by brackets ( "[" ... "]" ) and contains only decimal or hexadecimal numbers (a hexadecimal number contains digits 0..9 and letters A..F,) separated by a blank space or by a comma. THESEUS evaluates each substring of this special string as a number corresponding to the ASCII value of a character. By default, THESEUS accepts values as decimal numbers, unless you enter an "h" as a first character of the text between brackets: in this case, numbers are evaluated as hexadecimal ones. If an error occurs during the conversion, the value will be rejected. Examples: THESEUS search = [h 3c 3e] is the same as THESEUS search = [60 62] or THESEUS search = "<>" THESEUS search = [h 41 6D 65 72 69 63 61] is the same as THESEUS search = "America" or THESEUS search = [65,109,101,114,105,99,97] but it is not the same as THESEUS search = [h 65,109,101,114,105,99,97] Theseus now accepts large numbers in hexadecimal format. If you insert a number longer than 2 digits between braces, the number will be interpreted as a number, instead of a string of characters. This feature is useful only if you want to insert an hexadecimal number, because you can insert a decimal number without braces. Examples: [h100000] will be expanded to 1048576 [h10000] will be expanded to 65536 [12345678] will be expanded to 12345678 THESEUS 1.03 - User manual and reference - page 13 Joints. ------- A joint is a link between two or more conditions. Joint precedence is not set by default; the user must explicitly define the order of precedence with parentheses. A condition of this form Condition_A AND Condition_B OR Condition_C) will be rejected by the program . The user must declare Condition_A AND (Condition_B OR Condition_C) or (Condition_A AND Condition_B) OR Condition_C Modifiers. ---------- A modifier defines a search mode or an action to be performed for found files. Modifiers are declared without joints. Ex: Modif_A Modif_B Modif_C Modif_D Condition_A AND Condition_B A modifier that expects to receive a value supports only the = operator. Modifier types fall into several classes: display look: ColorOutput DirColorB DirColorF ExplColorB ExplColorF FileColorB FileColorF FileHeader OutDateMask OutDirLen OutExtLen OutNameLen OutPathLen OutCmpMask OutputMask OutputFile OutSepDir OutSizeMask OutTimeMask input mode: ConstChar DaysBack DefExt DefScrName ExpandArgs InDateMask InTimeMask where to search: AllCmp AllDrives ArcExclude ArcNames ArcScan ArjExclude ArjNames ArjScan CmpOnly Drives DrivesExcl LzhExclude LzhNames LzhScan Path PathExcl ZipExclude ZipNames ZipScan THESEUS 1.03 - User manual and reference - page 14 how to search: Number RecurseDir ReverseDir actions to be performed: BegExec BegExecD Delete EndExec EndExecD Exec ExecD Explain GoTo NoShow Pause Status Totals Help specials: Clone Const Disable Enable SwitchOFF SwitchON Constants. ---------- Constants are special identifiers that can be used AS VALUES in expressions. Predefined constants are available for various dates and times, and for the current path. You can define constants as you like, for making your scripts clearer. A constant can be used instead of a value, but not within it. A constant within a quoted string will not be expanded to its meaning. Examples: date=@today <--- correct execd="echo $FN @today" <--- incorrect! Here the constant @today is not recognized. Environment variables are treated as internal constants by the program, (with the same name, preceded by an "@" character,) thus you can use variables such as PATH or COMSPEC as values in the conditions. Script files. ------------- Script files are a way to use complex queries, or queries that occur many times. In a script file it's possible to insert any condition that you may use on the command line, and you can use the symbols that have a special meaning for DOS, such as "<", ">" and "|". To use a script file, in the command line insert the character "@" followed by the script file name. THESEUS 1.03 - User manual and reference - page 15 Command line arguments. ----------------------- Command line arguments can be referred to as constants from a script file, (and ONLY from a script file) using @1, @2, @3 ... @n, where @1 is the first argument, @2 is the second, and so on; @0 is the name of script file; @& is the entire command line. Actions. -------- Unlike other popular programs, THESEUS allows you to perform one or more actions for each matching file, even for files that partially match your condition. In other words, THESEUS has the ability to execute a list of commands for a file, or a list of conditional commands, where the execution of every command depends on the right execution of the previous one. See the paragraph "Performing Commands," later in this document, for more details. You can get more details on IDENTIFIERS, MODIFIERS and CONSTANTS in the REFERENCE part of this document. Getting help. ------------- For a list of commands, you may run THESEUS without arguments. The Program will display all the available identifiers, modifiers, operators, joints and mask shortnames. Stopping the program. --------------------- You may stop the program at any time, simply by pressing a key. Later see (Reference part: the NUMBER modifier) for a tip that allows the user to restart the program after a break. Case. ----- All the tokens of the THESEUS language ( identifiers, modifiers, constants, joints and operators) are case insensitive. Thus, you can insert any identifier in upper or lower case, as you prefer. THESEUS 1.03 - User manual and reference - page 16 The default script file. ------------------------ THESEUS can load a script file in three ways: 1. when the script is declared in the command line; 2. if the program finds a THESEUS.TSF script file in the current directory, or in the DOS PATH, or in the directory containing the program itself; 3. if the program finds a script file whose name is declared in the environment variable named THESEUS. The default script file is evaluated as the first part of your script. So you can declare all the modifiers you need in the default script and all the conditions in the command line. Note that if you declare an "ON-OFF" modifier (such as EXPLAIN or TOTALS) in the default script, redeclaring it in the command line will reverse its meaning. Use this powerful feature with care! If you get a strange error message from THESEUS, check your default script (if any) before thinking to ghosts. N.B. Like the CLONE modifier, the default script allows you to perform a permanent change to THESEUS. This feature is available only for the registered version of the program. Script files and registered version. ------------------------------------ The registered version has the ability of adding a default extension to the script file name, so the user can insert just the file name in the command line. For the THESEUS's script files the default extension is TSF (for Theseus Script File). Also in the registered version, you can use predefined constants in command line arguments, while in the shareware version you can't. The registered version can also search in the DOS path for the script file. So, you can use a command like THESEUS @myscript @today if MYSCRIPT.TSF is in a directory included in the DOS path. Using THESEUS with 4Dos. ------------------------ 4Dos is a powerful program which can replace and enhance the default command processor. With 4Dos you have the ability of associate an extension with the program that processes files of that type. So, you may create your own executables using THESEUS scripts. In order to obtain this, you must define some steps: THESEUS 1.03 - User manual and reference - page 17 1. create a batch file, named TH.BAT and put it in a directory included in your PATH (for instance, c:\bat) @echo off if %1. == . goto end THESEUS @%& :end 2. at the 4Dos prompt, enter the line: set .TSF=c:\bat\TH.BAT Now, you can call directly a THESEUS script file, in the same way you call a .EXE or a .COM file. Please refer to the 4DOS manual ("File processing" - "executable extensions") for more details. Performing Commands =================== One of the most impressive features of THESEUS is the ability to perform one or more commands for each file matching a given condition. To do so, THESEUS has a linear behavior: when a file matches the condition, it simply executes all the commands defined with the EXEC (EX) or EXECD (EXD) modifier. Example: You have a file named C:\TEXTS\MYBOOK.WRK, and you want to join it with each file CH*.WRK contaiing the string "Chapter #". Afterwards, you want to copy found files to a disk in A:. You may try this command: THESEUS exd="copy C:\TEXTS\MYBOOK.WRK + $FN" exd="copy $FN a:" name=ch*.wrk The program will execute the given commands in the same order that you inserted them. So, if there are 3 files in your disk (C:\DOCS\CHTWO.WRK C:\MAPS\CHTHREE.WRK C:\MYWORKS\CHFOUR.WRK) THESEUS will perform: copy C:\TEXTS\MYBOOK.WRK + C:\DOCS\CHTWO.WRK copy C:\DOCS\CHTWO.WRK a: copy C:\TEXTS\MYBOOK.WRK + C:\MAPS\CHTHREE.WRK copy C:\MAPS\CHTHREE.WRK a: copy C:\TEXTS\MYBOOK.WRK + C:\MYWORKS\CHFOUR.WRK copy C:\MYWORKS\CHFOUR.WRK a: Unlike other (less powerful) programs, THESEUS offers the feature of performing a conditional execution of commands. You will be able to manage this special feature using THESEUS's ability to perform external commands as conditions, with the EXTERN (EC) or EXERND (ECD) identifiers. Conditional execution is possible only if the called program has the ability of returning an errorlevel 0 for success or "not zero" (1, -1, 2 and so on) for failure. THESEUS 1.03 - User manual and reference - page 18 In order to obtain conditional execution, you must first create the natural condition (to search for wanted files,) and after you can add the conditional commands. Let's suppose that you have some files *.MAX into ZIP archives, and you want to extract them, use LHARC to archive them into another file, and finally to copy the resulting archive to another drive. The second command cannot be performed if the first one fails, and the third is impossible if the second has never been executed. Therefore, you must insure that the first one has terminated with success. To execute this command you must first create a script file, named UNPAC.TSF: ; ; script file UNPAC.TSF ; Explain Totals Path=@CurrentPath OutNameLen = 0 OutExtLen = 0 CmpOnly ZipScan Name=*.max && Extern="pkunzip.exe -o $AN $CP $NE" && Extern="LHARC.EXE a $PA\$NA $PA\$NE" && ExternD="copy $PA\$NE d:" after, you can execute THESEUS @UNPAC.TSF from the command line. N.B.: All the internal DOS commands and most of external ones always return an errorlevel 0, even if the command fails. 4DOS has a different behavior. Please refer to your 4DOS user's manual for details on errorlevel after 4DOS commands. With the registered version, you can also execute commands before start the search and after the search is finished. See BegExec, BegExecD, EndExec, EndExecD and OutputFile for details. THESEUS 1.03 - User manual and reference - page 19 Working with compressed archives. ================================= The archive compression (a widely used feature in computer science) is the ability of reducing large size files so that they take up less storage space on a disk. The files compressed with a compression program (such as PKZIP or LHARC) are included into a container, named "archive" in general, "ZIP file," "LZH file" or "ARC file" or "ARJ file" when we refer to a particular kind of file compression. A compressed file cannot be accessed directly by the Operating System (MS-DOS): it requires a special program that can handle the "archive file" in order to return information about the "compressed file." So, if you want to know the contents of an archived file, you must use the related program: PKZIP.EXE for ZIP files, LHARC for LZH files, ARJ.EXE for ARJ files and so on. Otherwise, you can use THESEUS, that can manage ZIP, LZH, ARC and ARJ files as well as DOS files! Working with compressed files is slightly different from working with DOS files. It is not possible to display the contents or to search for a text in a compressed file without dearchiving it. THESEUS does not have the ability of decompressing archived files, but it can give you useful informations and it can invoke an external program to do so. See ZipScan, ZipExclude, ZipNames, LzhScan, LzhExclude, lzhNames, ArcScan, ArcNames, ArcExclude, ArjScan, ArjNames, ArjExclude, AllCmp, OutCmpMask and CmpOnly in the reference part of this manual, for more details. Please refer to the related manuals of the specific programs for more information about file compression. Customizing the program ======================= Changing default options. ------------------------- THESEUS is a single program but it has the potential ability of transform itself to another more specialized program. This ability is achieved through the CLONE modifier, which has the effect of registering your favorite changes to the executable file of the program. You may change the display look, the output template masks, the mode of searching (in subdirectories, into compressed files and so on.) Before changing the THESEUS options, you can copy the executable file with a more significant name, and you will have a new utility, as you whish. THESEUS 1.03 - User manual and reference - page 20 For instance, you can enter: copy THESEUS.exe findcmp.exe findcmp CmpOnly AllCmp CLONE name=*.doc This will create a program that searches only into compressed files. Use with care the CLONE modifier: make sure to understand the full meaning of each value you want alter. Using the STATUS option you can get a complete list of clonable options with their current values. Check the THESEUS status before using CLONE. WARNING: before use the CLONE modifier, you should disable loading of the default script file, in order to avoid unexpected side effects. To do this, you can either delete the THESEUS.TSF file, or declare an environment variable SET THESEUS=ABCDEFGH.XYZ where ABCDEFGH.XYZ is a name of a NON-EXISTENT file. Enabling / disabling identifiers and modifiers. ----------------------------------------------- THESEUS allows you to tuning the program features, using the ENABLE and DISABLE modifiers. The DISABLE modifier can inhibit the use of a modifier or identifier, simply declaring it in conjunction with the CLONE modifier. If you grant your customers to use THESEUS in your computer, you may be don't want to permit the deletion of your files, or the execution of external programs. You can do this, by creating a script like this: ; ; file DISABLE.TSF ; ; This script disallows the use of DELETE and the use ; of external programs with THESEUS ; ; Note that CLONE must be declared BEFORE disabliing it clone ; ; you must disallow the use of ENABLE modifier ; otherwise it's possible to re-enable an identifier disable=enable ; ; disallows the deletion of files disable=delete ; ; disallows the execution of external programs disable=Exec disable=ExecD disable=BegExec disable=BegExecD disable=EndExec disable=EndExecD ; ; disallows the use of external programs as conditions THESEUS 1.03 - User manual and reference - page 21 disable=Extern disable=ExternD ; ; inhibits the further use of CLONE disable=clone ; ; as a last action, you should disallow the use of the DISABLE ; modifier disable=disable and then using a command THESEUS @DISABLE.TSF ENABLE and DISABLE are available in the registered version only. Technical Notes =============== This program was born from extensive research on semantics applied to projects using Object Oriented Programming (OOP), whose results were explained during a seminar at the University of Cagliari. The basic idea is that the contents of a regular expression can be represented as abstract objects. With more accuracy, we can say that each conditional expression is an object of type "condition" and we can treat it abstractly, by querying to each object : "do you match this file?" and each concrete condition knowns how to answer to this simple question. As a consequence, now we have THESEUS. THESEUS has been written using Turbo Pascal 6.0, and a small part of Object Professional 1.14 Tecnichally speaking, all the features of OOP have been exploited in order to achieve a program that is: flexible to user wishes; easy to maintain; coherent in any part; easy to enhance and upgrade. Now, to add a feature to this program is only a matter of a short time because the program architecture can support almost any new service that coherently we would want to add. I have some ideas for the next version of THESEUS, that will be developed using Borland C++ with the same OOP architecture, but enhanced by the use of C++ advanced features. THESEUS 1.03 - User manual and reference - page 22 About the Author. ================= If you have suggestions or remarks about this program, you can contact me at my address at : Giuseppe Maxia Via Olanda 13 09045 Quartu S.E. CA Italy Phone : (0039) 70 - 813169 E-Mail : MC8923@MCLink.It THESEUS 1.03 - User manual and reference - page 23 Language reference ================== Symbols. -------- ----------------------------------------------------------------- " ----------------------------------------------------------------- purpose: value delimiter comments: each value delimited by quotes will be accepted as a single string, even if it contains blank spaces. example: THESEUS search="My name" ----------------------------------------------------------------- ( ----------------------------------------------------------------- purpose: It begins a complex conditional expression. comments: An expression in inner parentheses will be evaluated first than outer. The precedence of Joints is set only with parentheses: if you have two joints of differing type on the same level, you must use parentheses to set the order of evaluation. Each opened parenthesis must match with a closed parenthesis. Otherwise an error message is generated and the program stops. example: THESEUS NAME=*.doc AND (search="MY NAME" OR DATE=@TODAY) ----------------------------------------------------------------- ) ----------------------------------------------------------------- purpose: It ends a complex conditional expression. comments: Entering more closed parentheses than opened ones generates an error message and the program stops. example: See above. THESEUS 1.03 - User manual and reference - page 24 ----------------------------------------------------------------- [ ----------------------------------------------------------------- purpose: ASCII value delimiter comments: It allows the insertion of a value in decimal or hexadecimal format. See the "Values" paragraph, above in this document, for more details. example: THESEUS search=[h DB,DC,DD,DE,DF] ----------------------------------------------------------------- ] ----------------------------------------------------------------- purpose: ASCII value delimiter comments: Each value beginning with a "[" must terminate with a "]". Otherwise, an error message is generated and the program stops. example: THESEUS search=[ 65 66 67] ----------------------------------------------------------------- operator = ----------------------------------------------------------------- alternate form: EQ purpose: operator "equals" ----------------------------------------------------------------- operator < ----------------------------------------------------------------- alternate form: LT purpose: Operator "Less than" comments: It cannot be used in the first form in the command line, because symbol "<" is interpreted as input redirection by DOS. In a script file you can freely use both the forms. ----------------------------------------------------------------- operator > ----------------------------------------------------------------- alternate form: GT purpose: Operator "Greater than" comments: It cannot be used in the first form in the command line, because symbol ">" is interpreted as output redirection by DOS. THESEUS 1.03 - User manual and reference - page 25 In a script file you can freely use both forms. ----------------------------------------------------------------- operator >= ----------------------------------------------------------------- alternate form: GE purpose: Operator "Greater or Equal" comments: see ">" ----------------------------------------------------------------- operator <= ----------------------------------------------------------------- alternate form: LE purpose: Operator "Less or Equal" comments: see "<" ----------------------------------------------------------------- operator <> ----------------------------------------------------------------- alternate form: NE purpose: Operator "Not Equal" comments: see "<" and ">" ----------------------------------------------------------------- joint && ----------------------------------------------------------------- alternate form: AND purpose: Joint "AND". It links two conditions. It means that the condition placed before this joint, and the next one, must be both TRUE for making the entire expression TRUE. comments: Under 4DOS it is not possible to use the first form in the command line, because "&&" has a special meaning for 4DOS. See the 4DOS reference manual for more details. THESEUS 1.03 - User manual and reference - page 26 ----------------------------------------------------------------- joint || ----------------------------------------------------------------- alternate form: OR purpose: Joint "OR". It links two conditions. It means that either the condition placed before this joint or the next condition must be TRUE, so that the entire expression is evaluated TRUE. comments: It's not possible to use it on the command line, because "|" is the symbol of piping, a kind of output redirection used by the operating system. See your Operating system user manual for more details. ----------------------------------------------------------------- joint // ----------------------------------------------------------------- alternate form: ZZ purpose: Dummy joint. It does not link, but separates conditions from modifiers. comments: THESEUS recognizes the modifiers inserted BEFORE the conditions. If you want to insert modifiers AFTER conditions, you must use the special joint "//". example: THESEUS name=*.bak // DELETE THESEUS 1.03 - User manual and reference - page 27 Identifiers. ------------ ----------------------------------------------------------------- identifier: Attribute ----------------------------------------------------------------- abbreviation: AT expected value: Attribute (RASHDV) supported operators: = <> purpose: To check the file attribute example: THESEUS at=h ----------------------------------------------------------------- identifier: BegSearch ----------------------------------------------------------------- abbreviation: BSR expected value: Text supported operators: = <> purpose: Searches a text only within the first 2048 bytes of file. comments: The same as SEARCH. The fastest way to find a string in file headers. example: THESEUS na=*.c AND BSR="Copyright WonderSoft Inc" ----------------------------------------------------------------- identifier: BegSearchUC ----------------------------------------------------------------- abbreviation: BSU expected value: Text supported operators: = <> purpose: The same as BegSearchUC, but it ignores case. example: THESEUS na=*.c AND BSU="COPYRIGHT WONDERSOFT INC" ----------------------------------------------------------------- identifier: ComprCRC {1.01} ----------------------------------------------------------------- abbreviation: CRC expected value: Numeric (0-2147483647) THESEUS 1.03 - User manual and reference - page 28 supported operators: = <> purpose: To check the file CRC comments: The ComprCRC identifier requires a search into compressed archives. If no compression search option has been declared, THESEUS reports an error and the program stops. If the CmpOnly modifier is not declared, CmprCRC returns a FALSE value for each non-compressed file. The file CRC is usually displayed in exadecimal format. You can enter a number in hexadecimal format using braces (see below). example: THESEUS ZIP CY CRC = [h 36a23eef] ----------------------------------------------------------------- identifier: ComprSize ----------------------------------------------------------------- abbreviation: CSZ expected value: Number (0-2147483647) supported operators: = < <= > >= <> purpose: To check the compressed file size. comments: The same as SIZE, but ComprSize requires a compression search option to be declared (such as ZipScan, LzhScan, ArcNames and so on.) ComprSize always returns aFALSE value for each non-compressed file. example: THESEUS ZIP CY csz GT 400000 ----------------------------------------------------------------- identifier: Confirm ----------------------------------------------------------------- abbreviation: CF expected value: Text supported operators: = <> THESEUS 1.03 - User manual and reference - page 29 purpose: Ask for user confirmation. description: CONFIRM requires a text, which is the message displayed by THESEUS for each file matching all the conditions inserted BEFORE the CONFIRM identifier. When the confirmation identifier is active, THESEUS displays your message, followed by "(C/Q/Y/N) ?" you may reply: ontinue : process the rest of the disk(s) without asking anything; uit or : exit the program; es or : execute and continue; (N)o : do not execute and continue. comments: Useful when you want to execute a command, and you want to ensure that only certain files will be processed. Note that if you use the NOTEQUAL operator, the meaning of the condition will be reversed: THESEUS na=*.doc AND cf NE "ignore %FN" example: THESEUS delete name=*.bak AND cf="delete $FN" ----------------------------------------------------------------- identifier: Date ----------------------------------------------------------------- abbreviation: DA expected value: Date (mm/dd/yyyy) supported operators: = < <= > >= <> purpose: To search for all files which matches the date demanded. example: DA GE 10/25/1991 AND da LE 10/31/1991 (search for the files created or modified between Friday, October 25, 1991 and Thursday, October 31, 1991) ----------------------------------------------------------------- identifier: Day ----------------------------------------------------------------- abbreviation: DD expected value: Number (1-31) supported operators: = < <= > >= <> purpose: To search for all files whose day matches the one demanded, regardless of the month or the year. THESEUS 1.03 - User manual and reference - page 30 example: DD EQ 1 Search for the files created or modified the first day of the month. ----------------------------------------------------------------- identifier: EndName {1.03} ----------------------------------------------------------------- abbreviation: EN expected value: Text supported operators: = <> purpose: To check for a substring at the end of the file name. comments: EndName works like NameCont, but checks only for a substring at the end of the file name. EndName ignores the case size of the inserted text. example: THESEUS EndName = ol will match TOOL.DOC GAMEROL.EXE OL.TXT PATROL.OIL and so on, but will ignore TOOLS.DOC GAMEROLE.EXE OLD.TXT PAROLA.OLL --------------------------------------------------------------------------- identifier: Extern --------------------------------------------------------------------------- abbreviation: EC expected value: Text supported operators: = <> purpose: To call the specified program as a condition, and assume TRUE for ERRORLEVEL 0, or FALSE for ERRORLEVEL 1. comments: The program name must be passed with a quoted string, using " (ASCII character 034) or ` (ASCII character 96) as delimiters. The quoted string is interpreted as follows: THESEUS 1.03 - User manual and reference - page 31 - The first word in the string is intended as the PROGRAM NAME. If this name does not exist in the current directory, in the DOS PATH, or in the same path where THESEUS is executed, an error is produced and the program halts. - the rest of the string will be passed as an argument to the program, when it is called. Note: you can't use redirection chars in the argument string, because the program is called directly, (not by DOS.) If you need to use redirection, you must use the EXTERND identifier. You must also use EXTERND if you try to call internal commands of the current command processor (COMMAND.COM, 4DOS.COM, etc.) - Special substrings in the argument part of the command are expanded as display mask: $NA File Name without extension $NE File Name with extension $FN Full File Name with Drive and path $EX File Extension $DN Directory Name $PA Path $DR Drive $DA File Date $TI File Time $SZ File Size $AT File Attribute $CP Current path $CD Current Date (Input Date Mask) $CT Current Time (Input Time Mask) $AN Compressed archive File $CZ Compressed File Size $CR Compressed File CRC $ME Available memory $DS Free disk space (current drive) $OF Output file You can use each marker as many times as you like, but remember that program arguments cannot exceed 127 characters: a simple mask "PROGNAME $FN $FN $FN $FN" can be expanded to a 156 character string for a file name such as C:\UTILITY\TOOLS\SPECIALS\MOUSE.COM example: THESEUS EC="MYPROG.EXE $FN $SZ MYARGUMENT" THESEUS 1.03 - User manual and reference - page 32 warning: Don't try to execute any TSR (Terminate but Stay Resident) program from THESEUS! This may get unpredictable results! ********************* WARNING! ******************** Using external programs applied to the huge power of THESEUS may be dangerous if you don't know exactly what you are doing. *************************************************** ----------------------------------------------------------------- identifier: ExternD ----------------------------------------------------------------- abbreviation: ECD expected value: Text supported operators: = <> purpose: The same of EXTERN, but the program will be called by a secondary shell loaded by THESEUS. example: THESEUS NA=*.ARJ AND ECD="ARJ l $FN MYFILE.C > NUL" will display any ARJ file that contains myfile.c ********************* WARNING! ******************** Using external programs applied to the huge power of THESEUS may be dangerous if you don't know exactly what you are doing. *************************************************** ----------------------------------------------------------------- identifier: Month ----------------------------------------------------------------- abbreviation: MM expected value: Number (1-12) supported operators: = < <= > >= <> purpose: To search for all files whose month matches the one demanded, regardless of the year or the day. example: MM = 2 Search for any file created or modified in february. THESEUS 1.03 - User manual and reference - page 33 ----------------------------------------------------------------- identifier: Name ----------------------------------------------------------------- abbreviation: NA expected value: Text supported operators: = <> purpose: To check the file name (it accepts DOS wildchars.) comments: It does not recognize advanced file mask such as UNIX ones: *XX*.* is accepted as *.*. You may insert multiple names, separated by a semicolon (;). This will be interpreted as a list of NAME conditions linked by OR if the operator is "=" or linked by AND if the operator is "<>". examples: THESEUS NAME = *.DOC OR na EQ gm*.* the same as NAME=*.doc;gm*.* NAME NE *.G*;g*.* same as NAME NE *.G* AND name NE g*.* ----------------------------------------------------------------- identifier: NameCont ----------------------------------------------------------------- abbreviation: NC expected value: Text supported operators: = <> purpose: To search for substrings contained in the file name. comments: It ignores the case size of names. It searches only in the file name, neither in the path, nor in the extension. You may insert multiple strings, separated by a semicolon (;). This will be interpreted as a list of NAMECONT conditions linked by OR for the "=" operator or by AND for the "<>" operator. example: THESEUS NC = doc will match DOCS.TXT, CPP_DOCS.ZIP, GETDOC.COM MADDOCT.TAL and so on. NC = DOC;DOX;DAC THESEUS 1.03 - User manual and reference - page 34 ----------------------------------------------------------------- identifier: NameLen ----------------------------------------------------------------- abbreviation: NL expected value: Number (1-8) supported operators: = < <= > >= <> purpose: To search for files whose name length matches the one demanded. comments: Extension length is not calculated. example: THESEUS NL EQ 3 ----------------------------------------------------------------- identifier: Ratio ----------------------------------------------------------------- abbreviation: RA expected value: Number (1-100) supported operators: = < <= > >= <> purpose: To search for compressed files whose compression ratio matches the one demanded. comments: The Ratio is the result of the expression: 100 - (ComprSize / OrigSize * 100) rounded to nearest integer. Note that LHARC uses a different approach, and it calculates the ratio as ComprSize / OrigSize * 100. So Ratio = 0 is the minimum compression, (stored) while Ratio = 100 is the more compressed ratio. The RATIO identifier requires a search into compressed archives. If no compression search option has been declared, THESEUS reports an error and the program stops. If the CmpOnly modifier is not declared, Ratio returns a FALSE value for each non-compressed file. example: THESEUS Zip CY Ratio LE 10 THESEUS 1.03 - User manual and reference - page 35 ----------------------------------------------------------------- identifier: Search ----------------------------------------------------------------- abbreviation: SR expected value: Text supported operators: = <> purpose: To search for the specified text contained in a file. comments: When used, this options searches at least as fast as other famous search utilities. In addition, this program avoids a common bug, present in several programs that cannot find search string when unlikely broken at the end of their search buffer. THESEUS uses a buffer of 65,521 bytes (or less if there is not enough memory) and correctly checks for strings at the end of the buffer. Notice that the search will not be performed if the matching file is contained into a compressed archive file. In this circumstance, SEARCH always returns FALSE. Remember that you can use a value enclosed between square brackets to insert a search string in decimal or hexadecimal value. examples: THESEUS SEARCH = "Samantha Fox" THESEUS SEARCH = [h 22 23 24 25 26] suggestions: In order to avoid a long wait (although the search algorythm is fully optimized and very fast) whenever possible you should use the SEARCH condition after a call to another known condition. Example: if you know that the text you are searching for doesn't reside in zipped files, you can use the following expression: THESEUS NAME NE *.ZIP AND SEARCH="Smiley's People" Of course, you can explicitly declare file names to be searched: THESEUS NAME=*.TXT AND SEARCH="On the road" THESEUS 1.03 - User manual and reference - page 36 ----------------------------------------------------------------- identifier: SearchUC ----------------------------------------------------------------- abbreviation: SU expected value: Text supported operators: = <> purpose: The same as SEARCH, but it ignores case size. ----------------------------------------------------------------- identifier: Size ----------------------------------------------------------------- abbreviation: SZ expected value: Number (0-2147483647) supported operators: = < <= > >= <> purpose: To check the file size. example: THESEUS sz GT 400000 ----------------------------------------------------------------- identifier: Soundex ----------------------------------------------------------------- abbreviation: SX expected value: Text supported operators: = <> purpose: To search for files that "sound" like the given text. comments: Searches only in the file name, not in the path, nor in the extension. You may insert multiple strings, separated by a semicolon (;). This will be interpreted as a list of SOUNDEX conditions linked by OR for the "=" operator or linked by AND for the "<>" operator. example: THESEUS SX = CRT search for files whose sound code is C630 (CRT, CRD, CREED, CARD, CART, etc) THESEUS 1.03 - User manual and reference - page 37 ----------------------------------------------------------------- identifier: Time ----------------------------------------------------------------- abbreviation: TI expected value: Time (hh:mmt) supported operators: = < <= > >= <> purpose: To search for the files which matches the date demanded. comments: You may use time constants instead of absolute values, if you prefere. (see: @ONEAM ... @TWELVEPM) example: THESEUS Time GE 01:00p AND time LE 02.00p (Search for files modified at lunch time) ----------------------------------------------------------------- identifier: WeekDay ----------------------------------------------------------------- abbreviation: WD expected value: Week Day (3 char.) supported operators: = <> purpose: To search for the files that have been created or modified in the specified day of the week. example: THESEUS WD = fri search files created on Friday THESEUS WeekDay NE Sun AND WeekDay NE Sat search only workday files. ----------------------------------------------------------------- identifier: Year ----------------------------------------------------------------- abbreviation: YY expected value: Number (1980-2200) supported operators: = < <= > >= <> purpose: To search for the files whose year matches the one demanded, regardless of the month or the day. example: THESEUS Year EQ 1991 THESEUS 1.03 - User manual and reference - page 38 Modifiers. ---------- ----------------------------------------------------------------- modifier: AllCmp ----------------------------------------------------------------- abbreviation: AC expected value: none default value: OFF purpose: It's a shortcut for invoking ZipScan LZHScan and ArcScan. example: THESEUS ALLCMP CMPONLY NAME=JH*.DOC It's the same as THESEUS ARC LZH ZIP CY NAME=JH*.DOC ----------------------------------------------------------------- modifier: AllDrives ----------------------------------------------------------------- abbreviation: AD expected value: none default value: none purpose: It includes all the drives in the path for the search. comments: When ALLDRIVES is declared, THESEUS will automatically include in the search path all the valid hard drives in your system. You can use DRIVESEXCL to limit the drives included those from ALLDRIVES. example: THESEUS ALLDRIVES DX=EF NAME=HH*.COM ----------------------------------------------------------------- modifier: ArcExclude ----------------------------------------------------------------- abbreviation: AX expected value: Text default value: OFF purpose: It excludes the ARC names from scanning. comments: The same as ZIPEXCLUDE. example: THESEUS AN=k*.ARC AX=kr.* size GT 400000 THESEUS 1.03 - User manual and reference - page 39 ----------------------------------------------------------------- modifier: ArcNames ----------------------------------------------------------------- abbreviation: AN expected value: Text default value: none purpose: It sets the ARC names to be scanning. comments: The same as ZIPNAMES. example: THESEUS AN=k*.ARC size GT 400000 ----------------------------------------------------------------- modifier: ArcScan ----------------------------------------------------------------- abbreviation: ARC expected value: No Value default value: OFF purpose: It enables THESEUS to search into archive files compressed with ARC.EXE. comments: The same as ZIPSCAN. example: THESEUS ARC names=*.frt ----------------------------------------------------------------- modifier: ArjExclude {1.03} ----------------------------------------------------------------- abbreviation: JX expected value: Text default value: OFF purpose: It excludes the ARJ names from scanning. comments: The same as ZIPEXCLUDE. example: THESEUS JN=k*.ARJ JX=kr.* size GT 400000 ----------------------------------------------------------------- modifier: ArjNames {1.03} ----------------------------------------------------------------- abbreviation: JN expected value: Text default value: none THESEUS 1.03 - User manual and reference - page 40 purpose: It sets the ARJ names to be scanning. comments: The same as ZIPNAMES. example: THESEUS JN=k*.ARJ size GT 400000 ----------------------------------------------------------------- modifier: ArjScan {1.03} ----------------------------------------------------------------- abbreviation: ARJ expected value: No Value default value: OFF purpose: It enables THESEUS to search into archive files compressed with ARJ.EXE. comments: The same as ZIPSCAN. example: THESEUS ARJ names=*.thj ----------------------------------------------------------------- modifier: BegExec ----------------------------------------------------------------- abbreviation: BE expected value: Text default value: none purpose: It defines an action to be performed BEFORE starting the search. comments: You may define more than an action, using many occurrences of BegExec or BegExecD. THESEUS will execute the required actions in the same order you have inserted them. example: THESEUS BE="display.com logo.txt" name=*.doc ----------------------------------------------------------------- modifier: BegExecD ----------------------------------------------------------------- abbreviation: BED expected value: Text default value: none purpose: The same as BegExec, but a second copy of the command processor will be loaded. example: THESEUS BED="echo memory $ME" name=*.doc THESEUS 1.03 - User manual and reference - page 41 ----------------------------------------------------------------- modifier: Clone ----------------------------------------------------------------- abbreviation: CL expected value: No Value default value: OFF purpose: It makes changes permanent. comments: The CLONE feature is available only for registered users. CLONE can fix changes for : Output Name Length OutNameLen Output Extension Length OutExtLen Output Directory name Length OutDirLen Output path Length OutPathLen Output Separate directory name OutSepDir Days to set back DaysBack Show File NoShow Colored Output ColorOutput File Header FileHeader Show Explain Explain Show Totals Totals Output Mask OutputMask Output Compressed Mask OutCmpMask Input Date Mask InDateMask Input Time Mask InTimeMask Output Date Mask OutDateMask Output Time Mask OutTimeMask Output Size Mask OutSizeMask ZipFile search ZipScan LZHFile search LZHScan Archives search only ArchiveOnly Constant character ConstChar Default script name DefScrName Default script extension DefExt Expansion of arguments ExpandArgs Enabling or disabling each identifier or modifier, including the CLONE itself. See the "Customizing the program" section above in this document for more details about using CLONE. WARNING: if THESEUS is altered (using a debugger or another file editing utility) or is compressed (with PKLITE or similar) it will not be cloned. example: THESEUS ODM="yyyymmdd" CLONE date=19921127 THESEUS 1.03 - User manual and reference - page 42 ----------------------------------------------------------------- modifier: CmpOnly ----------------------------------------------------------------- abbreviation: CY expected value: No Value default value: OFF purpose: It enables THESEUS to search only into compressed files. comments: An error will be generated if no compressed search is set, for ZIP, ARC or LZH files. Therefore, you must use ZIPSCAN or ZIPNAMES or LZHSCAN or LZHNAMES or ARCSCAN or ARCNAMES or ALLCMP in conjunction with CmpOnly. example: THESEUS ZIP CY names=bc*.exe ----------------------------------------------------------------- modifier: ColorOutput ----------------------------------------------------------------- abbreviation: CO expected value: none default value: ON comments: Disallows THESEUS to use his specials color attributes to display files, directories and explainations. When output is redirected, the ColorOutput will be turned OFF. See DirColorB, FileColorB, ExplColorB, DirColorF, FileColorF, ExplColorF for details. ----------------------------------------------------------------- modifier: Constant ----------------------------------------------------------------- abbreviation: CON expected value: string default value: none comments: It inserts a new constant. The text value must be quoted, in order to allow at least two strings to be declared. General format of a constant is "@DECLARATION Value." When it meets @DECLARATION, THESEUS will substitute it THESEUS 1.03 - User manual and reference - page 43 with Value. Constants will not be saved in to the executable file when the CLONE modifier is declared. You can store many constants in the default script, which will be loaded by THESEUS at start. example: THESEUS con="@AB AB*.BA*" NAME=@AB OR search=@AB ----------------------------------------------------------------- modifier: ConstChar ----------------------------------------------------------------- abbreviation: CC expected value: string default value: @ comments: Changes the default character used by THESEUS to identify a constant and a script file name. Available only in the registered version. example: THESEUS CC=! clone ----------------------------------------------------------------- modifier: DaysBack ----------------------------------------------------------------- abbreviation: DBK expected value: Number default value: 2 comments: It adds (or changes) a new value for days to be counted back from the operating date. Each occurrence of DAYSBACK creates a new CONSTANT whose name is @##DaysAgo when ## is the number inserted by DaysBack. There are 10 storable values (using the CLONE modifier) for a DaysBack occurrence. 11th insertion will overwrite the first one, and so on. In the command line (or in a script) you may declare more occurrences, but remember that only 10 can be stored. example: THESEUS DBK=5 dbk=18 date GT @18daysago AND date LT @5DA THESEUS 1.03 - User manual and reference - page 44 ----------------------------------------------------------------- modifier: DirColorB ----------------------------------------------------------------- abbreviation: DCB expected value: Numeric default value: 1 (Blue) purpose: Sets the value of background color for displaying directories. comments: DirColorB accepts values from 0 (black) to 7 (LtGray.) Values from 8 (DarkGray) to 15 (White) are intended as blinking colors. example: THESEUS DCB=@red name=*.doc ----------------------------------------------------------------- modifier: DirColorF ----------------------------------------------------------------- abbreviation: DCF expected value: Numeric default value: 2 (Green) purpose: Sets the value of foreground color for displaying directories. comments: DirColorF accepts values from 0 (black) to 15 (White.) example: THESEUS DCB=@Green DCF=@LtRed name=*.doc ----------------------------------------------------------------- modifier: DefExt ----------------------------------------------------------------- abbreviation: DEX expected value: Text default value: TSF purpose: Sets the default extension for a THESEUS script file. comments: Available only in the registered version. example: THESEUS DEX=GGG clone THESEUS 1.03 - User manual and reference - page 45 ----------------------------------------------------------------- modifier: DefScrName ----------------------------------------------------------------- abbreviation: DSN expected value: Text default value: THESEUS.TSF purpose: Sets the name of the default script file. comments: Available only in the registered version. example: THESEUS DSN=MYTHES.GGG clone ----------------------------------------------------------------- modifier: Delete ----------------------------------------------------------------- abbreviation: DEL expected value: No Value default value: OFF comments: It deletes matching files. WARNING! Use it with care! By default, THESEUS doesn't ask you for confirmation. A command as THESEUS alldrives delete name=*.* will erase all files in your disks! Use the DELETE modifier in conjunction with the CONFIRM identifier for a complete control of the deletion. example: THESEUS ALLDRIVES DELETE NAME=*.BAK ----------------------------------------------------------------- modifier: Disable ----------------------------------------------------------------- abbreviation: DIS expected value: Text default value: none comments: It disallows the use of a THESEUS's identifier or modifier. Available only in the registered version of THESEUS. example: THESEUS disable=delete clone THESEUS 1.03 - User manual and reference - page 46 ----------------------------------------------------------------- modifier: Drives ----------------------------------------------------------------- abbreviation: DR expected value: Text default value: Root of Current drive purpose: It sets the drives where you want to search. comments: DRIVES is a shortcut for inserting a path, where paths are only drive roots. With DRIVES you don't need to write colons (:) and semicolons (;), but it's enough to enter the character(s) that identify the drive. examples: THESEUS DRIVES=cdef NAME=*.C is the same as THESEUS PATH=C:\;D:\;E:\;F:\ NAME=*.C ----------------------------------------------------------------- modifier: DrivesExcl ----------------------------------------------------------------- abbreviation: DX expected value: Text default value: none purpose: It excludes one or more drives from search. comments: DRIVESEXCL is a shortcut for PATHEXCL, where paths to be excluded are only drive roots. Note that you cannot declare a path and exclude a drive that contain that path: PATH=C:\BC;D:\BS DX=D name=*.c this command does not make sense. You can include United States and exclude Arkansas or Texas; but, if you select Texas it's meaningless to exclude USA! Therefore, the only use of DRIVESEXCL is when you want to limit the action of ALLDRIVES. example: THESEUS ALLDRIVES DX=EF NAME=HH*.COM ----------------------------------------------------------------- modifier: Enable ----------------------------------------------------------------- abbreviation: ENA THESEUS 1.03 - User manual and reference - page 47 expected value: Text default value: none comments: It allows the use of a THESEUS's identifier or modifier, previously turned off by DISABLE. Available only in the registered version of THESEUS. example: THESEUS enable=delete clone ----------------------------------------------------------------- modifier: EndExec ----------------------------------------------------------------- abbreviation: EE expected value: Text default value: none purpose: It defines an action to be performed when the search is finished. comments: The same as BegExec, but the action will be performed after the search. This command is useful if you want to redirect the output to a file and then use it for a final command. example: THESEUS OSD OM="$FN" OF=FILES.LST EE="PKZIP e:\save @$OF" da=@td ----------------------------------------------------------------- modifier: EndExecD ----------------------------------------------------------------- abbreviation: EED expected value: Text default value: none purpose: The same as EndExec, but a second copy of the command processor will be loaded. comments: See above. example: THESEUS OSD OF=bb.BAT EED=$OF OM="echo $FN" date=@today THESEUS 1.03 - User manual and reference - page 48 ----------------------------------------------------------------- modifier: Exec ----------------------------------------------------------------- abbreviation: EX expected value: Text default value: none comments: It executes a program command for each matching file. See discussion above, where EXTERN is explained. Note that the program will be halted if an error occurs during the execution of the called program. example: THESEUS EXEC="SCAN.EXE /NoMem $FN" NAME=SUSP*.OVL The program searches for SCAN.EXE in the DOS PATH and, if it is found, executes SCAN.EXE for each occurrence of files SUSP????.OVL ********************* WARNING! ******************** Using external programs applied to the huge power of THESEUS may be dangerous if you don't know exactly what you are doing. *************************************************** ----------------------------------------------------------------- modifier: ExecD ----------------------------------------------------------------- abbreviation: EXD expected value: Text default value: none comments: The same as EXEC, but another copy of command processor will be loaded. See also: EXEC, EXTERN, EXTERND. example: THESEUS EXD="copy $FN A:" DATE=11/04/1992 ----------------------------------------------------------------- modifier: ExpandArgs ----------------------------------------------------------------- abbreviation: EAR expected value: No Value default value: ON comments: It allows the expansion of command line arguments within a value, before THESEUS evaluates it. THESEUS 1.03 - User manual and reference - page 49 Restrictions: - it works only for the arguments passed in the command line to a script; - it's available only for the registered version. example: ; script file test.TSF ; search = "@1 @2" with ExpandArgs active: THESEUS ON=EAR @test.tsf my text = THESEUS search = "my text" with ExpandArgs not active: THESEUS OFF=EAR @test.tsf my text = THESEUS search = "@1 @2" ----------------------------------------------------------------- modifier: Explain ----------------------------------------------------------------- abbreviation: XPL expected value: No Value default value: OFF comments: It explains the meaning of a condition. example: THESEUS EXPLAIN name=*.PRJ ----------------------------------------------------------------- modifier: ExplColorB ----------------------------------------------------------------- abbreviation: ECB expected value: Numeric default value: 1 (Blue) purpose: Sets the value of background color for displaying explanations and headers. comments: ExplColorB accepts values from 0 (black) to 7 (LtGray.) Values from 8 (DarkGray) to 15 (White) are intended as blinking colors. example: THESEUS ECB=@Green name=*.doc THESEUS 1.03 - User manual and reference - page 50 ----------------------------------------------------------------- modifier: ExplColorF ----------------------------------------------------------------- abbreviation: ECF expected value: Numeric default value: 3 (Cyan) purpose: Sets the value of foreground color for displaying explanations and headers. comments: ExplColorF accepts values from 0 (black) to 15 (White.) example: THESEUS ECB=@LtGray ECF=@Blue name=*.doc ----------------------------------------------------------------- modifier: FileColorB ----------------------------------------------------------------- abbreviation: FCB expected value: Numeric default value: 1 (Blue) purpose: Sets the value of background color for displaying files. comments: FileColorB accepts values from 0 (black) to 7 (LtGray.) Values from 8 (DarkGray) to 15 (White) are intended as blinking colors. example: THESEUS FCB=@Black name=*.doc ----------------------------------------------------------------- modifier: FileColorF ----------------------------------------------------------------- abbreviation: FCF expected value: Numeric default value: 15 (White) purpose: Sets the value of foreground color for displaying files. comments: FileColorF accepts values from 0 (black) to 15 (White.) example: THESEUS FCB=@Cyan FCF=@Black name=*.doc THESEUS 1.03 - User manual and reference - page 51 ----------------------------------------------------------------- modifier: FileHeader ----------------------------------------------------------------- abbreviation: FH expected value: No Value default value: OFF comments: Displays a header for each directory or compressed archive processed. The format of the header depends on the output mask. The file header is adapted to the mask currently used (normal or compressed.) FileHeader is available only if OutSepDir is also active. example: THESEUS FileHeader Zip name=*.DOC ----------------------------------------------------------------- modifier: GoTo ----------------------------------------------------------------- abbreviation: GO expected value: No Value default value: OFF comments: It jumps to the directory that contains matching files and stop the program. example: THESEUS GOTO NAME=PETER.PAN ----------------------------------------------------------------- modifier: Help {1.02} ----------------------------------------------------------------- abbreviation: HE expected value: Text default value: purpose: It displays a short description of a given identifier or modifier. comments: You may insert many values with a single declaration of Help, by separating each value with a semicolon (;). Notes: - In order to obtain a full description of identifier purpose, you must have the THESEUS.BIN data file in the current directory, or in the DOS path, or in the same directory where THESEUS THESEUS 1.03 - User manual and reference - page 52 starts. - The quick reference card contained in file THESEUS.QRC has been made using the Help command. See the QrefCard.TSF script file. example: THESEUS help=name help=size help=CRC THESEUS help=fcf;fcb;dcf;dcb ----------------------------------------------------------------- modifier: InDateMask ----------------------------------------------------------------- abbreviation: IDM expected value: Text default value: mm/dd/yyyy purpose: It sets the format of the date for input. comments: See OUTDATEMASK for details You may compose the mask using special characters h hour (left padded with zeroes) H hour (left padded with spaces) m minutes (left padded with zeroes) M minutes (left padded with spaces) s seconds (left padded with zeroes) s seconds (left padded with spaces) t appends an "a" or "p" to time e appends a "m" to time when "t" is used examples: THESEUS IDM="yyyy-mm-dd" DA=1992-11-05 ----------------------------------------------------------------- modifier: InTimeMask ----------------------------------------------------------------- abbreviation: ITM expected value: Text default value: hh:mmt comments: It sets the format of the time for input. See OUTTIMEMASK for details. THESEUS 1.03 - User manual and reference - page 53 ----------------------------------------------------------------- modifier: LzhExclude ----------------------------------------------------------------- abbreviation: LX expected value: Text default value: OFF purpose: It excludes the LZH names from scanning. comments: The same as ZIPEXCLUDE. example: THESEUS LN=k*.LZH LX=kr.* size GT 400000 ----------------------------------------------------------------- modifier: LzhNames ----------------------------------------------------------------- abbreviation: LN expected value: Text default value: none purpose: It sets the LZH names to be scanning. comments: The same as ZIPNAMES. example: THESEUS LN=k*.LZH size GT 400000 ----------------------------------------------------------------- modifier: LzhScan ----------------------------------------------------------------- abbreviation: LZH expected value: No Value default value: OFF purpose: It enables THESEUS to search into archive files compressed with LHARC.EXE. comments: The same as ZIPSCAN. NOTICE: THESEUS is not able to scan files compressed with LHA.EXE. example: THESEUS LZH names=*.frt THESEUS 1.03 - User manual and reference - page 54 ----------------------------------------------------------------- modifier: NoShow ----------------------------------------------------------------- abbreviation: NS expected value: No Value default value: OFF comments: It disallows the display of matching files. example: THESEUS NOSHOW PATH=C:\BC TOTALS SZ GT 0 It displays only the number of the files contained in C:\BC and subdirs. ----------------------------------------------------------------- modifier: Number ----------------------------------------------------------------- abbreviation: NUM expected value: Number default value: 1 comments: It starts the action of the program from the numbered file found. example: THESEUS GoTo Num=3 Name=*.DOC It jumps to the directory that contains the third file matching the search condition. Tip: You may use the NUMBER modifier to restart the execution stopped by a pressed key: THESEUS TOTALS NAME=mynames.* press a key and look at the number of files found: let's suppose that the number was 14 then enter THESEUS NUM=15 TOTALS NAME=mynames.* the program will continue processing files from the break point. THESEUS 1.03 - User manual and reference - page 55 ----------------------------------------------------------------- modifier: OutDateMask ----------------------------------------------------------------- abbreviation: ODM expected value: Text default value: www DD nnn yyyy purpose: It sets the format of the date for output. comments: You may use the following mask characters: d day padded to left with zeroes D day padded to left with spaces m month padded to left with zeroes M month padded to left with spaces Y year n month in text format w day of week examples: date mask November 5 1992 dd-mm-yyyy 05-11-1992 DD-MM-yyyy 5-11-1992 mm/dd/yyyy 11/05/1992 MM/DD/yyyy 11/ 5/1992 mm/dd/yyyy 11/05/1992 mm/dd/yy 11/05/92 www DD nnn yyyy Thu 5 Nov 1992 WWW nnnnnnnn DD, yyyy THU November 5, 1992 WWWWWWWWW dd-nnn-yy THURSDAY 05-Nov-92 wwwwwwwww mm/dd/yy Thursday 11/05/92 ----------------------------------------------------------------- modifier: OutDirLen ----------------------------------------------------------------- abbreviation: ODL expected value: Number (0-9) default value: 0 purpose: It modifies the directory Name lenght to be padded. ----------------------------------------------------------------- modifier: OutExtLen ----------------------------------------------------------------- abbreviation: OEL expected value: Number (0-3) default value: 3 THESEUS 1.03 - User manual and reference - page 56 purpose: It modifies the file extension lenght to be padded. comments: Set to 0 if you need to use the file extension in an external command. ----------------------------------------------------------------- modifier: OutNameLen ----------------------------------------------------------------- abbreviation: ONL expected value: Number (0-9) default value: 9 purpose: It modifies the file name lenght to be padded. comments: By default, the file name is padded to 9 spaces, and the extension follows without the dot: example: THESEUS ONL = 0 // OM="------$NA.$EX" // NA = *.* will produce this output 1 2 3 4 5 6 123456789012345678901234567890123456789012345678901234567890 ------NAME.EXT ----------------------------------------------------------------- modifier: OutPathLen ----------------------------------------------------------------- abbreviation: OPL expected value: Number (0-64) default value: 0 purpose: It modifies the path Name lenght to be padded. example: THESEUS OPL=50 OM ="$PA $NE $SZ" na=*.DOC ----------------------------------------------------------------- modifier: OutCmpMask ----------------------------------------------------------------- abbreviation: OCM expected value: Text default value: " $SZ $CZ $RA $DA $TI $CR $ZN" THESEUS 1.03 - User manual and reference - page 57 comments: See above for a full explanation of mask symbols. THESEUS uses this mask to display the files found into compressed archives. The default compressed output mask is expanded as follows: 1 2 3 4 5 6 12345678901234567890123456789012345678901234567890123456789012345 ###,###,### ###,###,### ###% www mm/dd/yyyy hh:mmt --CRC--- NAME 1,234,567 345,678 72% Thu 11/05/1992 09:34p 2c5fe3ba NAME example: THESEUS OCM=" $RA $ZN $AN" 1 2 3 4 5 6 123456789012345678901234567890123456789012345678901234567890 ###% NAME.EXT D:\PATHNAME\NAME.EXT 45% HHHG.COM C:\DOS\DEVICES\LONGS\LONGNAME.ZIP 78% LONGNAM.EX C:\DOS\DEVICES\LONGS\LONGNAME.ZIP ----------------------------------------------------------------- modifier: OutputMask ----------------------------------------------------------------- abbreviation: OM expected value: Text default value: " $NA$EX $SZ $DA $TI $AT" comments: See above for a full explanation of mask symbols. THESEUS uses this mask to display normal (not compressed) files. The default output mask is expanded as follows: 1 2 3 4 5 6 123456789012345678901234567890123456789012345678901234567890 NAME EXT ###,###,### www mm/dd/yyyy hh:mmt ------ LONGNAME EXT 1,234,567 Thu 11/05/1992 09:34p --A--- LONGNAM EX 1,234 Sun 11/01/1992 11:22a --A-H- example: THESEUS OM=" $SZ $FN" 1 2 3 4 5 6 123456789012345678901234567890123456789012345678901234567890 ###,###,### D:\PATHNAME\NAME.EXT 1,234,567 C:\DOS\DEVICES\LONGS\LONGNAME.EXT 1,234 C:\LONGNAM.EX THESEUS 1.03 - User manual and reference - page 58 ----------------------------------------------------------------- modifier: OutputFile ----------------------------------------------------------------- abbreviation: OF expected value: Text default value: (the standard output) purpose: Sets the output file. comments: By default, THESEUS shows the found files onto the screen (standard output). You can redirect this output, using the DOS redirection operators ">" and "|", or you can use the OutputFile modifier, that will send the output of the program to a given file, after the (optional) explanation and before the (optional) totals. This command is useful when used in conjunction with EndExec and EndExecD, if you want to use the output of THESEUS for a final execution. OutputFile is available only with the registered version. You can refer to the output file with the $OF mark. WARNING: don't try to use the output file with a command before the search is finished. In this circumstance, when the file is still open, you can meet stranges results. You should use it only with the EndExec or EndExecD modifiers. example: ; script file copytod.TSF SwitchOFF = osd OutputFile = "save.bat" OutputMask = "copy $FN d:\tmp1" EndExecD = "call $OF" date = @today and name NE save.bat and at NE D THESEUS @copytod.TSF ----------------------------------------------------------------- modifier: OutSepDir ----------------------------------------------------------------- abbreviation: OSD expected value: No Value default value: ON THESEUS 1.03 - User manual and reference - page 59 purpose: It disallows separate display of the directory name. comments: When using this option, you should modify the output mask, in order to make it possible to display the path name and the file name together: example: THESEUS OSD OM="$SZ $DA $TI $AT $FN" ----------------------------------------------------------------- modifier: OutSizeMask ----------------------------------------------------------------- abbreviation: OSM expected value: Text default value: ###,###,### purpose: It sets the format of the FileSize for output. comments: You can build a mask template with a special character set: # digit blank if not available. * digit fill with asterisk if not available. @ digit fill with zero if not available. , decimal or separator comma. . decimal or separator period. example: THESEUS OSM = *##,###,### SZ GT 25000 THESEUS 1.03 - User manual and reference - page 60 ----------------------------------------------------------------- modifier: OutTimeMask ----------------------------------------------------------------- abbreviation: OTM expected value: Text default value: HH:mmt comments: It sets the format of the time for output. example: hh:mm:ss 09:03:56 14:57:33 hh:mm 09:03 14:57 hh:mmt 09:03a 02:57p hh:mmtm 09:03am 02:57pm HH:MM:SS 9: 3:56 14:57:33 HH:MM 9: 3 14:57 HH:MMt 9: 3a 2:57p HH:mmt 9:03a 2:57p HH:mm te 9:03 am 2:57 pm ----------------------------------------------------------------- modifier: Path ----------------------------------------------------------------- abbreviation: PA expected value: Text default value: Root of Current drive purpose: It sets the path where you want to search. comments: You can define one or more path, simply by separating each path with a semicolon (;), or entering multiple occurrences of the PATH command. Note that, if the given path does not exist, the program will be halted. examples: THESEUS PATH=C:\BC NAME=*.C THESEUS PATH=C:\TP;D:\OPRO NAME=*.PAS ----------------------------------------------------------------- modifier: PathExcl ----------------------------------------------------------------- abbreviation: PX expected value: Text default value: none THESEUS 1.03 - User manual and reference - page 61 purpose: It excludes one or more paths from the search. comments: You can define one or more paths, simply by separating each path with a semicolon (;) examples: THESEUS PATH=\BC PATHEXCL=\BC\CLASSLIB NAME=*.LIB THESEUS PATH=\TP;\OPRO PX=\TP\BGI;\OPRO\DEMO NAME=*.PAS ----------------------------------------------------------------- modifier: Pause ----------------------------------------------------------------- abbreviation: PAU expected value: No Value default value: OFF purpose: It enables the program to stop the display at the end of each video page. comments: If you redirect the program output, the Pause modifier is ignored. example: THESEUS PAUSE name=*.asm;*.c;*.pas ----------------------------------------------------------------- modifier: RecurseDir ----------------------------------------------------------------- abbreviation: RD expected value: No Value default value: ON purpose: It disallows the recursive search into subdirectories. comments: You may use this option when you want to limit the search to a specified path only. example: THESEUS RD PATH =\bc\src;\tp\src name=*.asm;*.c;*.pas THESEUS 1.03 - User manual and reference - page 62 ----------------------------------------------------------------- modifier: ReverseDir {1.01} ----------------------------------------------------------------- abbreviation: RVD expected value: No Value default value: OFF purpose: It inverts the way of the search into subdirectories. comments: Let's suppose you have the following disk structure: C:\ --+ | +----+ BC | +----+ CLASSLIB | | | +------- EXAMPLES | | | +------- LIB | | | +------- INCLUDE | +---- SOURCES | +---- DEMOS If you use a command such as THESEUS PATH = \BC\CLASSLIB NAME=*.CPP the program will process \BC\CLASSLIB and its subdirectories (EXAMPLES, LIB, INCLUDE). Vice versa, declaring ReverseDir, THESEUS will process \BC\CLASSLIB and its ancestors (BC, C:\). Note that no recursion is performed in each subdirectory while processed. ReverseDir change the behavior of PATH and PATHEXCLUDE. When you exclude a path, THESEUS will exclude the given path and its descendants. Using ReverseDir, the meaning is that it's excluded the given path and its ancestors. example: THESEUS RVD PX=\bc PATH=\bc\classlib\examples name=*.asm THESEUS will process the following THESEUS 1.03 - User manual and reference - page 63 directories: C:\BC\CLASSLIB\EXAMPLES (yes: scanned) C:\BC\CLASSLIB (yes: scanned) C:\BC (no: skipped) C:\ (no: skipped) THESEUS RVD PATH = \BC name=*.cpp C:\BC (yes: scanned) C:\ (yes: scanned) THESEUS PATH = \BC name=*.cpp C:\BC (yes: scanned) C:\BC\CLASSLIB (yes: scanned) C:\BC\CLASSLIB\EXAMPLES (yes: scanned) C:\BC\CLASSLIB\LIB (yes: scanned) C:\BC\CLASSLIB\INCLUDE (yes: scanned) C:\BC\SOURCES (yes: scanned) C:\BC\DEMOS (yes: scanned) ----------------------------------------------------------------- modifier: Status ----------------------------------------------------------------- abbreviation: ST expected value: No Value default value: OFF purpose: Displays the value of all customizable options of THESEUS. comments: Using Status also enables the explanaction modifier. example: THESEUS ST PAUSE date=@today ----------------------------------------------------------------- modifier: SwitchOFF ----------------------------------------------------------------- abbreviation: OFF expected value: Text default value: none purpose: Ensure that an ON-OFF modifier is switched OFF. comments: You can use SwitchOFF only with ON-OFF modifiers, i.e. modifiers that accepts no values. You cannot use SwitchOFF with AllCmp and AllDrives, because these modifiers are THESEUS 1.03 - User manual and reference - page 64 shortcuts for acceding other commands. SwitchOFF and SwitchON are available only in the registered version. example: THESEUS OFF=RD PA=@cp del na=*.bak ----------------------------------------------------------------- modifier: SwitchON ----------------------------------------------------------------- abbreviation: ON expected value: Text default value: none purpose: Ensure that an ON-OFF modifier is switched ON. comments: See SwitchOFF. example: THESEUS ON=RD del na=*.bak ----------------------------------------------------------------- modifier: Totals ----------------------------------------------------------------- abbreviation: TOT expected value: No Value default value: OFF comments: It displays the number of all the files searched and of the ones matching the search condition. example: See above. ----------------------------------------------------------------- modifier: ZipExclude ----------------------------------------------------------------- expected value: Text abbreviation: ZX default value: OFF purpose: It excludes the ZIP file name(s) from the scanning. comments: You can define multiple names to exclude, using a semicolon (;) to separate the names, but only one occurrence of ZIPEXCLUDE will be accepted in the command line or in a script file. You cannot use ZIPEXCLUDE without setting THESEUS 1.03 - User manual and reference - page 65 ZIPSCAN or ZIPNAMES. example: THESEUS ZIP ZX=ws*.zip date=@today ----------------------------------------------------------------- modifier: ZipNames ----------------------------------------------------------------- abbreviation: ZN expected value: Text default value: none purpose: It sets the zip file name(s) to be scanned. comments: You can define multiple names to scan, even .EXE files, using a semicolon (;) to separate the names, but only one occurrence of ZIPNAMES will be accepted in the command line or in a script file. See ZIPSCAN. When ZN is set, it's superflous to use ZIPSCAN. example: THESEUS ZN=GM*.ZIP name=h*.doc ----------------------------------------------------------------- modifier: ZipScan ----------------------------------------------------------------- abbreviation: ZIP expected value: No Value default value: OFF purpose: It enables THESEUS to search into archive files compressed with PKZIP. comments: All the files created by PKZIP can be scanned, even if they are self-extracting (use ZIPNAMES to set file name.) By default, THESEUS scans *.ZIP. THESEUS will return information about compressed files like normal files, with some exceptions: - you can refer in the output mask the complete compressed archive name as $AN, the current size of a compressed file as $CZ, and the compression ratio as $RA; - a special output mask will be used to THESEUS 1.03 - User manual and reference - page 66 display compressed files. You may modify this behavior with the OutCmpMask modifier; - each file into compressed archive can be referred to as $NE (as well as normal files) or $ZN (which returns the full qualified file name, with the path name, if present); - the SEARCH identifier applied to a compressed file, always returns FALSE, and the SEARCH will not be performed; - the DELETE modifier will not be applied to compressed files. If you want, you may use the EXEC modifier to invoke PKZIP or similar programs in order to perform the deletion. examples: THESEUS ZIP name=MyLost.DOC THESEUS ZIP CY EXEC="PKZIP.EXE -d $AN $NE" NA=*.BAK THESEUS 1.03 - User manual and reference - page 67 Constants. ---------- ----------------------------------------------------------------- Constant: @0 , @1 , @2 ... @n ----------------------------------------------------------------- abbreviation: value: A parameter in the command line. comments: It is valid only if you are using a script file. @0 is the name of the script file. @1 is the first parameter after script file name, @2 is the second, and so on. @& is the entire command line after the file name. examples: 1. ;MYSEARCH contains: ;--------------------- name = @1 AND search = @2 ; THESEUS @MYSEARCH *.doc "New York" will be expanded as THESEUS name = *.doc AND search = "New York" 2. ;MYSEARCH2 contains: ;--------------------- search = @& ; THESEUS @MYSEARCH2 New York City will be expanded as THESEUS search = "New York City" ----------------------------------------------------------------- Constant: @2DaysAgo ----------------------------------------------------------------- abbreviation: @2DA value: The current date -2 comments: The value of @2daysAgo may change, if you set DAYSBACK more than 10 times (see above.) example: THESEUS DATE=@2DaysAGO THESEUS 1.03 - User manual and reference - page 68 ----------------------------------------------------------------- Constant: @Black ... @White ----------------------------------------------------------------- abbreviation: value: Color constants @Black 0 @Blue 1 @Green 2 @Cyan 3 @Red 4 @Magenta 5 @Brown 6 @LtGray 7 @DarkGray 8 @LtBlue 9 @LtGreen 10 @LtCyan 11 @LtRed 12 @LtMagenta 13 @Yellow 14 @White 15 comments: Useful when you want to change the value of color attributes for Dir, Files and Explain display. See DirColF, DirColB, FileColF, FileColB, ExplColF, ExplColB and ColorOutput. example: THESEUS DirColF=@LtRed name=*.fff ----------------------------------------------------------------- Constant: @CurrentPath ----------------------------------------------------------------- abbreviation: @CP value: The current path example: THESEUS PATH=@CURRENTPATH DEL name=*.OLD ----------------------------------------------------------------- Constant: @Day ----------------------------------------------------------------- abbreviation: @DD value: The current day. example: THESEUS DAY=@DAY ----------------------------------------------------------------- Constant: @Midnight ----------------------------------------------------------------- abbreviation: @MN value: 12:00a example: THESEUS time GE @midnight AND time LE @noon THESEUS 1.03 - User manual and reference - page 69 ----------------------------------------------------------------- Constant: @Month ----------------------------------------------------------------- abbreviation: @MM value: The current month. example: THESEUS MONTH=@MONTH ----------------------------------------------------------------- Constant: @Noon ----------------------------------------------------------------- abbreviation: @NN value: 12:00p example: THESEUS time GE @noon AND time LE @threepm ----------------------------------------------------------------- Constant: @Now ----------------------------------------------------------------- abbreviation: @NW value: The current time. example: THESEUS TIME LE @NOW ----------------------------------------------------------------- Constant: @OneAM ... @TwelvePM ----------------------------------------------------------------- abbreviation: value: The day times, from 1:00am to 12:00pm example: THESEUS time GE @NineAM AND time LE @FourPM ----------------------------------------------------------------- Constant: @OutCmpMask ----------------------------------------------------------------- abbreviation: @OCM value: " $SZ $CZ $RA $DA $TI $AT $ZN" comments: This constant is useful when you want to assign the value of the default Output Compressed Mask to the normal Output Mask. Of course, you may define your own favorite output mask for compressed or normal file listings. example: THESEUS FH OM=@OCM Zip date GE @2da THESEUS 1.03 - User manual and reference - page 70 ----------------------------------------------------------------- Constant: @OutputMask ----------------------------------------------------------------- abbreviation: @OM value: " $NA$EX $SZ $DA $TI $AT" comments: This constant is useful when you want to assign the value of the default Output Mask to the Output Compressed Mask. Of course, you may define your own favorite output mask for compressed or normal file listings. example: THESEUS FH OM="$FN" OCM=@OM Zip date GE @2da ----------------------------------------------------------------- Constant: @TeaTime ----------------------------------------------------------------- abbreviation: @TT value: 05:00p example: THESEUS Time GE @Noon AND Time LE @TeaTime ----------------------------------------------------------------- Constant: @Today ----------------------------------------------------------------- abbreviation: @TD value: The current date example: THESEUS DATE=@TODAY ----------------------------------------------------------------- Constant: @WkDay ----------------------------------------------------------------- abbreviation: @WD value: The current day of the Week. example: THESEUS WD=@WkDay ----------------------------------------------------------------- Constant: @Year ----------------------------------------------------------------- abbreviation: @YY value: The current year. example: THESEUS YEAR=@YEAR THESEUS 1.03 - User manual and reference - page 71 ----------------------------------------------------------------- Constant: @Yesterday ----------------------------------------------------------------- abbreviation: @YD value: The current date -1 example: THESEUS DATE=@YESTERDAY THESEUS 1.03 - User manual and reference - page 72 Index ===== 4dos 5 6 16 17 18 25 31 @2daysago 9 67 @black 10 50 68 @blue 10 50 68 @brown 10 68 @currentpath 6 9 18 68 @cyan 10 50 68 @darkgray 10 68 @day 9 68 @green 10 44 49 68 @ltblue 10 68 @ltcyan 10 68 @ltgray 10 50 68 @ltgreen 10 68 @ltmagenta 10 68 @ltred 10 44 68 @magenta 10 68 @midnight 9 68 @month 9 69 @noon 9 68 69 70 @now 9 69 @oneam 9 37 69 @outcmpmask 9 69 @outputmask 9 70 @red 10 44 68 @teatime 9 70 @today 3 4 9 14 16 23 47 58 63 65 70 @white 10 68 @wkday 9 70 @year 9 70 @yellow 10 68 @yesterday 9 71 abbreviation 11 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 abbreviations 11 action 13 14 15 21 40 46 47 54 63 actions 14 15 40 algorythm 35 allcmp 7 13 19 20 38 42 63 alldrives 7 13 38 45 46 63 arcexclude 7 13 19 38 arjexclude 7 13 19 39 archive 5 9 18 19 28 31 34 35 39 40 41 51 53 57 65 66 archiveonly 41 arcnames 7 13 19 28 39 42 arjnames 7 13 19 39 arcscan 7 13 19 38 39 42 arjscan 7 13 19 40 argument 15 16 31 41 48 49 arj 2 7 13 19 32 39 40 THESEUS 1.03 - User manual and reference - page 73 ascii 12 24 30 asterisk 59 attribute 3 7 9 11 27 31 42 68 autoexec 5 begexec 7 14 18 20 40 47 begexecd 7 14 18 20 40 begsearch 7 27 begsearchuc 7 27 cagliari 21 case 4 10 12 15 27 30 33 36 clone 7 14 16 19 20 21 41 43 44 45 47 cmponly 7 13 18 19 20 28 34 38 42 coloroutput 7 13 41 42 68 comma 2 3 4 5 6 10 12 14 15 16 17 18 21 24 25 26 29 31 40 43 45 46 47 48 49 52 56 58 59 60 62 64 65 67 command 2 3 4 5 6 10 14 15 16 17 18 21 24 25 26 29 31 40 43 45 46 47 48 49 52 56 58 60 62 64 65 67 complex 2 4 6 14 23 compound 11 compressed 2 9 19 20 28 31 34 35 39 40 41 42 51 53 57 65 66 69 70 comprcrc 7 27 28 comprsize 7 28 34 comspec 14 condition 3 7 9 10 11 13 14 15 16 17 18 20 21 23 25 26 29 30 33 35 36 49 54 64 conditional 9 15 17 18 21 23 config 5 confirm 2 7 28 29 45 constant 9 10 14 15 16 37 41 42 43 67 68 69 70 71 const 7 9 10 13 14 15 16 37 41 42 43 67 68 69 70 71 constchar 7 13 41 43 crc 7 9 27 28 31 52 57 customizing 19 41 date 2 3 4 7 8 9 13 14 23 29 31 37 41 43 47 48 52 55 58 63 65 67 69 70 71 day 2 3 4 5 7 9 13 14 16 23 29 30 32 37 41 43 47 55 58 63 65 67 68 69 70 71 daysago 9 43 67 daysback 7 13 41 43 67 decimal 12 24 28 35 59 default 7 12 13 16 19 20 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 69 70 defext 7 13 41 44 defscrname 7 13 41 45 delete 3 6 8 14 20 26 29 45 47 66 delimiter 23 24 30 dircolorb 8 13 42 44 dircolorf 8 13 42 44 disable 8 14 20 21 45 47 display 2 13 15 19 28 29 31 32 40 42 44 49 50 51 THESEUS 1.03 - User manual and reference - page 74 54 57 59 61 63 64 66 68 dos 2 3 4 5 6 10 14 16 17 18 19 24 25 31 33 48 51 57 58 drive 5 7 8 9 13 18 31 38 45 46 60 63 drivesexcl 8 13 38 46 enable 8 14 20 21 39 40 42 46 47 53 61 63 65 endname 7 30 endexec 8 14 18 20 47 58 endexecd 8 14 18 20 47 58 equal 9 24 25 29 errorlevel 17 18 30 espressions esternals example 5 11 12 14 17 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 exclude 3 7 8 13 19 38 39 46 53 61 62 64 exec 2 3 5 7 8 14 15 16 17 18 19 20 29 31 32 40 43 47 48 54 58 66 execd 3 7 8 14 17 18 20 40 47 48 58 execution 15 17 18 20 48 54 58 exernd 17 explain 8 14 16 18 21 41 42 48 49 68 explcolorb 8 13 42 49 explcolorf 8 13 42 50 expression 2 9 10 11 14 21 23 25 26 34 35 extern 1 7 17 18 19 20 21 30 31 32 48 56 externd 7 18 21 31 32 48 extension 8 16 17 31 33 34 36 41 44 56 filecolorb 8 13 42 50 filecolorf 8 13 42 50 fileheader 8 13 41 51 goto 8 14 17 51 54 greater 9 24 25 greaterequal 9 greaterthan 9 help 8 14 15 51 52 hexadecimal 12 24 28 35 identifier 7 9 11 14 15 17 20 27 28 29 30 31 32 33 34 35 36 37 41 45 47 51 66 indatemask 8 13 41 52 intimemask 8 13 41 52 joint 9 10 11 13 15 23 25 26 less 6 9 12 17 19 24 25 29 32 35 37 46 lessequal 9 lessthan 9 lha 18 19 34 53 lharc 18 19 34 53 license 1 lzh 2 8 13 19 28 38 41 42 53 lzhexcl 8 13 19 53 lzhexclude 8 13 19 53 lzhfile 41 lzhnames 8 13 19 42 53 THESEUS 1.03 - User manual and reference - page 75 lzhscan 8 13 19 28 38 41 42 53 modifier 7 9 10 11 13 15 16 17 19 20 21 26 28 34 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 month 2 5 7 9 29 30 32 37 55 69 name 2 3 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 23 26 28 29 30 31 33 34 35 36 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 namecont 7 30 33 namelen 7 8 13 18 34 41 56 noshow 8 14 41 54 notequal 9 29 now 1 2 4 6 9 12 17 19 21 32 35 48 69 number 3 4 7 8 12 14 15 28 29 32 34 36 37 43 54 55 56 64 operator 7 9 11 13 15 24 25 27 28 29 30 32 33 34 35 36 37 58 outcmpmask 8 9 13 19 41 56 66 69 outdatemask 8 13 41 52 55 outdirlen 8 13 41 55 outextlen 8 13 18 41 55 outnamelen 8 13 18 41 56 outpathlen 8 13 41 56 outputmask 8 9 13 41 57 58 70 outputfile 8 13 18 58 outsepdir 8 13 41 51 58 outsizemask 8 13 41 59 outtimemask 8 13 41 52 60 parentheses 9 11 13 23 path 3 4 5 6 8 9 13 14 16 17 18 31 33 36 38 41 46 48 51 54 56 57 59 60 61 62 63 66 68 pathexcl 8 13 46 60 61 62 pause 4 8 14 61 63 period 1 59 pklite 41 pkzip 3 4 19 47 65 66 precedence 13 23 quotes 23 ratio 1 7 9 34 42 51 65 recursedir 5 8 14 61 redirection 24 26 31 58 registration 1 requirements 2 reversedir 8 14 62 resident 32 script 2 14 15 16 17 18 20 24 25 29 41 43 44 45 49 51 52 58 64 65 67 search 2 3 4 5 7 11 12 13 14 16 18 19 20 21 23 24 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 46 47 48 49 53 54 58 60 61 62 64 65 66 67 searchuc 7 27 36 semicolon 5 33 36 46 51 60 61 64 65 shortnames 15 THESEUS 1.03 - User manual and reference - page 76 soundex 7 36 status 8 14 20 63 stopping 15 switchon 8 14 64 switchoff 8 14 58 63 64 symbol 14 23 24 26 57 syntax 10 theseus 1 2 3 4 5 6 7 10 12 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 time 2 4 6 7 8 9 13 14 15 21 31 37 41 52 60 67 68 69 70 today 3 4 9 14 16 23 47 58 63 65 70 totals 5 8 14 16 18 41 54 58 64 tsr 32 value 3 7 8 9 10 11 12 13 14 20 23 24 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 wildchars 33 year 2 7 9 29 32 37 55 70 yesterday 9 71 zip 2 3 4 6 8 13 18 19 28 33 34 35 38 39 40 41 42 47 51 53 57 64 65 66 69 70 zipexclude 8 13 19 38 39 53 64 zipfile 41 zipnames 8 13 19 39 40 42 53 65 zipscan 8 13 18 19 28 38 39 40 41 42 53 65