
                       SSL (System Scripting Language)
                     
                                 Version 1.5

                     SSL Copyright 1995 Anthony Mathews
                             All rights reserved
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     DEFINITION OF SHAREWARE

Shareware distribution gives users a chance to try software before buying
it. If you try a Shareware program and continue using it, you are expected
to register. Individual programs differ on details -- some request
registration while others require it, some specify a maximum trial period.
With registration, you get anything from the simple right to continue using
the software to an updated program with printed manual.

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

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

DISCLAIMER - AGREEMENT

Users of SSL must accept this disclaimer of warranty: "SSL is supplied as
is.  The author disclaims all warranties, expressed or implied, including,
without limitation, the warranties of merchantability and of fitness for
any purpose. The author assumes no liability for damages, direct or
consequential, which may result from the use of SSL."

SSL is a "shareware program" and is provided at no charge to the user for
evaluation.  Feel free to share it with your friends, but please do not
give it away altered or as part of another system.  The essence of "user-
supported" software is to provide personal computer users with quality
software without high prices, and yet to provide incentive for programmers
to continue to develop new products.  If you find this program useful and
find that you are using SSL and continue to use SSL after a 30 day
trial period, you must make a registration payment  to A.R.M. SOFTWARE.
Prices can be found in the registration section of this manual.

Anyone distributing SSL for any kind of remuneration must first contact
A.R.M. SOFTWARE at the address below for authorization. This authorization
will be automatically granted to distributors recognized by the (ASP) as
adhering to its guidelines for shareware distributors, and such
distributors may begin offering SSL immediately (However A.R.M. SOFTWARE
must still be advised so that the distributor can be kept up-to-date with
the latest version of SSL.).

You are encouraged to pass a copy of SSL along to your friends for
evaluation.  Please encourage them to register their copy if they find that
they can use it.  All registered users will receive a copy of the latest
version of the SSL system.



                                     
                  
                  
                  
                  
                  
                  
                  **** ASP OMBUDSMANOMBUDSMAN POLICY ****

This program is produced by a member of the Association of Shareware
Professionals (ASP).  ASPASP wants to make sure that the shareware
principle works for you. If you are unable to resolve a shareware-related
problem with an ASP member by contacting the member directly, ASP may be
able to help. The ASP Ombudsman can help you resolve a dispute or problem
with an ASP member, but does not provide technical support for members'
products.  Please write to the ASP Ombudsman at 545 Grover Road, Muskegon,
MI USA 49442-9427, Fax 616-788-2765, or send a CompuServe message via 
CompuServe Mail to ASP Ombudsman 70007,3536.















































                                     
                         
                         
                         
                         
                         
                         
                         
                         REGISTRATION
                                     
Fill out the form on the next page or the form in the register.txt file and
mail it to:

                    A.R.M. Software
                    5656 Timberlane Rd.
                    Lake Wales, FL 33853

Registration Fee:

$49.95 plus $5.00 shipping and handling

* Prices Subject to change without notification!


What do you get when you register:

1)      A nicely bound manual.
2)      Latest version of SSL.
3)      Upgrade notifications.
4)      90 days free technical support.
5)      Royalty free distribution privileges to any machine owned or 
        leased by the license holder.


Support Policy:

1)   Support can be by mail or by phone.  If support is desired by phone,
     calls must be made in the evenings Monday thru Thursday.  If
     someone is not there to take your call, you will be told when the next
     time someone will be available to take your call.  The phone number for
     support will be sent to you when you register your software.
2)   Please elect one or two people in your organization to coordinate
     support with A.R.M. Software.
3)   Contracts can be negotiated for additional technical support after the
     initial 90 days.
4)   Consultation is also available to help your business come up with
     better, more effective and cheaper ways to support your users.



























A.R.M. Software
5656 Timberland Rd.
Lake Wales, FL 33853
                                     

Your Name:          ____________________________________________________
Company Name:       ____________________________________________________
Mailing Address:    ____________________________________________________
P.O. Box:           ____________________________________________________
City:               _______________
State, Cntry, Zip:  _______________ ______________ ________________
Phone:              _______________________________

Registration Fee:

$49.95 plus $5.00 shipping and handling

* Prices Subject to change without notification!


What do you get when you register:

1)      A nicely bound manual.
2)      Latest version of SSL.
3)      Upgrade notifications.
4)      90 days free technical support.
5)      Royalty free distribution privileges to any machine owned or 
        leased by the license holder.



Amount of Money enclosed:     ___________________

___  Cash
___  Personal Check
___  Business Check
___  Cashiers Check
___  PO#

* Make checks payable to Anthony Mathews

* A.R.M. Software is not responsible for any type of payment which is lost
  in the mail.












                                     
                                     
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          FILES INCLUDED ON DISK
                                     
INSTALL.BAT    -    Runs the INSTALL.SSL script.
INSTALL.SSL    -    Copies SSL to your system.
README.1ST     -    Last minute information.
SSL.EXE        -    Application.
SSL.TXT        -    Documentation in a plain ASCII text format.
REGISTER.TXT   -    Registration form.

\SAMPLES\ File name:          Sample use of:

          CMDWHILE.BAT   -    SSL *C command line option.
          COLORS.SSL     -    MASTERBACK     MASTERFORE
                              MENUITEMBACK   MENUITEMFORE
                              WINBACK        WINFORE
          FILEFUNC.SSL   -    INSERTTEXT     NUMLINES
                              PULLTEXT       READLINE
                              REMOVESECTION  REMOVETEXT
          GROUP.SSL      -    ADDGROUP       DELGROUP
          INVENT.SSL     -    INVENTORY
          LABELS.SSL     -    INPUTWINDOW    INSERTTEXT
                              WHILE          LOOP
          MATH.SSL       -    ADD            SUB
                              MULT           DIV
                              MOD
          MENU.SSL       -    MENU           IF
                              ELSE           END
          OUTWIN.SSL     -    OUTPUTWINDOW
          PUSHKEY.SSL    -    PUSHKEY        COMMAND
          STRING.SSL     -    CONCAT         CROP
                              EXTRACTI       LCROP
                              LENGTH         LTRIM
                              RCROP          RTRIM
          VARIABLE.SSL   -    EQU            GLOBALENV
                              LISTVARS       LOCALENV
                              RELEASE        RELEASEALL
          VOLUME.SSL     -    GETVOLUME      PUTVOLUME
          WHILE.SSL      -    WHILE          LOOP






                                     
                                     
                                     
                                            
                                     
                                     
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                                       
                               INTRODUCTION

A lot has changed in how businesses are run today.  To go into a company
and not see several computers is very unlikely.  With an increasing base of
computer systems being added to businesses a prominent problem has arose.
How do you support so many computers with as few people as possible?  The
answer is to decrease the amount of time needed to support one computer.
How do you do this?  In an environment that has many computers which need
the same operations performed on them you need to be able to decrease the
number of keystrokes and checks on each workstation.  This is where
SSL(System Scripting Language) comes in.

What is a script?

A script is a lot like a batch file, but much more powerful.  With SSL you
can record repetitive tasks that will be performed on multiple
workstations.  This allows you to run the script on the workstation and
avoid all the key strokes and checks you would normally have to do manually
on every workstation.

What can SSL do that a batch file can't?

There are many things, but some of the most prominent are:

     1. Adding and removing text from files.
     2. Searching text files for a specified string.
     3. Extracting data from files and manipulating it.
     4. Windows ini file operations
     5. Prompt users for input
     6. Set up menus
     7. Check available hard drive space.
     8. Check installed RAM.
     9. Check current Dos versions.

Most checks can be used in conditional statements to allow you to determine
a course of action.

What are some of the biggest uses for SSL?

     1) Installing software.       4) System maintenance.
     2) Upgrading software.        5) Inventorying software on workstations.
     3) Removing software.

SSL's biggest use is doing everything that has been mentioned via a network
so that someone doesn't even have to visit the user's desk.  The easiest
way to initiate a script is when a user logs into the network.

I have worked for two major corporations who were using internally written
scripting languages to automate tasks.  The only problem is that the people
writing the languages could not devote the time needed to make their
languages as useful as they could be.  So I set out to write a affordable
scripting language that gives all the versatility needed to support large
numbers of computer systems.





                                     
                      
                      
                      
                      
                      
                      
                      
                      HOW CAN SSL SAVE YOU $$MONEY$$
                                     
Every one has heard the saying "Time is Money" and it is very true.

SSL's primary way of saving you money is by saving you time.

SSL can save you time 4 different ways:
     a. Traveling to the users workstation
     b. Scheduling a time to visit the workstation
     c. Limited or No interaction with users
     d. Performing tasks on the workstation

When it is necessary to perform tasks on multiple workstations, the only
time you will have tied up in it is the time it takes to write the script.

Below is a cost analysis of a install I did on about 250 workstations.

These figures are very conservative and assume that scripts will run
automatically when users login to the network.  They also assume that the
users you are installing are at the same site.  If users are at different
sites and you are not using automated scripts, the costs incurred for one
install are even higher than in the example due to travel expenses.

Man hours needed to   Installation by Hand          Installation using Script

Install application           .25                               0
Schedule install              .083                              0
Travel to workstation         .083                              0
Write script                 0                                  8

Technician's hourly rate   $12.00                             $12.00

Cost                        $5.00 per workstation             $90.00 unlimited


As you can see the cost associated with the use of SSL is fixed at $90 for 
this particular scenario, however manual installation costs grow from 
$100 for 20 workstation to $1000 for 200 workstations.























                                     
                      
                      
                      
                      
                      CONVENTIONS USED IN THIS MANUAL

1. Required parameters are surrounded by [ ]
2. Optional parameters are surrounded by < >
3. Parameters need not be placed in " " unless there are spaces in them.
4. Any extra parameters given with a command will be ignored.
5. Any filename given as a parameter without a drive and path will be
   searched for in the current working directory.

Special characters:

     @@ - You must enclose SSL variables in @ signs accept when assigning
          them a value.

     %% - You must enclose environment variables in percent signs accept
          when assigning them a value.

     // - Any special character preceded by "/"  will not be treated as
          special. i.e. /@ or /% or /" or //

     "" - Used to enclose a string with spaces or tabs in it.





























                                     
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        PROGRAM EXECUTION


SSL [<DRIVE\PATH\>FILENAME]

Where FILENAME is the name of the file which contains the script.  No
special extensions are required.  The following example shows how to
execute a script named INSTALL.SSL which is found in the C:\UPDATE
directory.

     SSL C:\UPDATE\INSTALL.SSL

******************************** IMPORTANT *********************************

SSL also has a very powerful feature that will save you tons of headaches
when creating complex batch files.  No more will you need a 100 different
little executables to use in your batch files in order to perform tasks
such as rebooting the computer, inserting text in a file, deleting text
from a file, checking for the existence of certain text in a file, adding a
group to windows, deleting a group from windows, putting keys in the
keyboard buffer and so on.

WHY?

Because any SSL command can be specified on the command line without using
a external script file.  Better than that you can specify a series of up to
20 commands on the command line.  Here is how:

SSL *C COMMAND PARAMETERS ... *NL COMMAND PARAMETERS ... *NL COMMAND... <NB>

The *C specifies that a external script file will not be used and the
command desired will be put on the command line.   Each command is
separated by a *NL.  That is all there is to it.

There is one optional switch, "*NB", which keeps SSL from displaying a BANNER 
or information about what SSL is doing.  This is useful when you do not 
desire users to know SSL is running.

The following command can be placed in a batch file and will reboot the
computer when executed:

SSL *C REBOOT

The following command will count from 0 to 10 and print each number to the
screen:

SSL *C EQU X 0 *NL WHILE "<=" @X@ 10 *NL DISPLAY @X@ *NL ADD @X@ 1 X *NL LOOP

Any parameter containing a character that is recognized by DOS as special,
such as "<", must have the entire parameter surrounded by double quotes so
that the special character is not recognized as special.

For an explanation of the commands in the previous examples refer to the
particular command found latter in this manual.

* Note: You must have write capabilities in the directory you run SSL from
in order to use the *C option.
                                     
                            
                            
                            
                            
                            
                            
                            
                            
                            VARIABLES

Variables are a very powerful part of SSL.  Variables allow you to prompt
users for input, manipulate data and use the same data through out your
script without having to hard code the value every time that value is
needed.  Variables can be used in any command that requires parameters.
Often you will find it is better to define a variable and use it as a
parameter than to hard code the value in the command,  especially if the
value of the parameter is a long string of characters.  Commands are
restricted to one line and a maximum of 255 characters.  If you use
variables you save a lot of the command line space.  Many commands such as
MENU and INPUTWINDOW can make use of this a great deal.

It is always best to initialize a variable before using it.  If you do not
and a command that uses the variable fails to assign a value to the
variable for what ever reason, the variable will not have a value for any
other commands that use it latter in the script, causing multiple errors.
Any uninitialized variable that is used in a conditional statement will
return a false value.

All variables are strings of characters, however, for a variable to have a
math function performed on it, it must only contain numeric digits.

TYPES:

There are two types of variables:

   SSL variables            -    SSL variables are defined by SSL while 
                                 executing a script and can only be used 
                                 while executing the script.

                                 SSL variables can be used in any function 
                                 that requires a value to be passed to it or 
                                 passes a value back after execution.

                                 SSL variable names can not exceed 30 
                                 characters and SSL variable values can not 
                                 exceed 255 characters.

                                 The maximum number of SSL variables allowed 
                                 is 30.

                                 It is always good to delete a SSL variable 
                                 when you are finished using it with the 
                                 RELEASE command so that you don't reach 
                                 the limit.

   Environment variables    -    Environment variables can only be assigned 
                                 a value by LOCALENV or GLOBALENV.

                                 Environment variables can be used in any 
                                 function that requires a value to be passed 
                                 to it.

                                 Environment variables can be set up until 
                                 you run out of environment space, which is 
                                 dependent upon the size of your environment 
                                 and the size of your variables.

   






Variables: (continued)

USE:

To use a SSL variable just enclose the variable name in @ signs.  

i.e. @COUNT@

Any time you are trying to assign a SSL variable name a value do not
enclose it in @ signs.

i.e. EQU COUNT "12"

To use a environment variable enclose the variable name in % signs.  

i.e. %PATH%

When you are assigning a environment variable a value using LOCALENV or
GLOBALENV, do not enclose it in % signs.  

i.e. LOCALENV PATH C:\DOS

Remember, environment variables set up using GLOBALENV can not be used
until execution of the current script is finished.



PREDEFINED
SYSTEM VARIABLES:   @DATE@         -    Returns the date.
                    @DOSVER@       -    Returns the current DOS version.
                    @DISKSPACE(X)@ -    Returns the available disk space on
                                        Drive (X).

                                        i.e. @DISKSPACEC@
                                        i.e. @DISKSPACED@

                                        This value is not fixed.  It is
                                        calculated every time the variable is 
                                        encountered.

                    @STARTUP@      -    Returns the directory that SSL was 
                                        ran from.
                    @TIME@         -    Returns the time at which this
                                        variable was encountered.
                    @TOTRAM@       -    Returns the total amount of RAM
                                        installed.











                                     
                      
                      
                      
                      
                      
                      
                      
                      
                      COMMAND SUMMARY
                                     
#                   INLINE              WAIT
ADD                 INPUT               WHILE
ADDGROUP            INPUTWINDOW         WINBACK       
ATTRIBUTE           INSERTTEXT          WINFORE       
BEEP                INVENTORY
BREAK               LABEL
CD                  LCROP
CLS                 LENGTH
COMMAND             LISTVARS
CONCAT              LOCALENV
COPY                LOOP
CROP                LTRIM
DEL                 MASTERBACK
DELGROUP            MASTERFORE
DISPLAY             MD
DIV                 MENU
ELSE                MENUITEMBACK
END                 MENUITEMFORE
EQU                 MOD
ERRORLEVEL          MOVE
EXIT                MSGLEVEL
EXTRACTI            MULT
FILEDATE            NUMLINES
FILETIME            OUTPUTWINDOW
FILESIZE            PAUSE
GETVOLUME           PULLTEXT 
GLOBALENV           PUSHKEY
GOTO                PUTVOLUME
IF   =              RCROP
     >              RD
     <              READLINE
     >=             REBOOT
     <=             REFRESH
     <>             RELEASE
     DEFINED        RELEASEALL
     !DEFINED       REMOVETEXT
     EXIST          REMOVESECTION
     !EXIST         REN
     EXIST*         RENDIR
     !EXIST*        RTRIM
     TEXTEXIST      SSL
     !TEXTEXIST     SUB
     ISNUM          
     !ISNUM         

              




                                     
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              

                                COMMAND SYNTAX

#

PURPOSE:       Used to add commentscomments to a script or temporarily
               disable a line in the script.  Any line with # at the
               beginning of it will not be executed.

SYNTAX:        # <REMAINDER OF LINE>

SAMPLE CALL:   # EQU FIVE 5

COMMENTS:      In the sample call the EQU statement would not be executed.

ASSOCIATED COMMANDS:



















































ADD

PURPOSE:       Adds two numbers together and stores the value in the given
               variable.

SYNTAX:        ADD [NUMBER1] [NUMBER2] [VARIABLE NAME]

SAMPLE CALL:   EQU COUNT 10
               ADD 50 @COUNT@ ANSWER

COMMENTS:      Numbers and/or variables can be used.  In the previous sample
               call the value of ANSWER will be 60.

ASSOCIATED COMMANDS:     DIV, MOD, MULT, SUB




















































ADDGROUP

PURPOSE:       Add a new group file entry to the progman.ini file.

SYNTAX:        ADDGROUP [<DRIVE\PATH\>INI FILE NAME] [GROUP ENTRY]

SAMPLE CALL:   ADDGROUP C:\WINDOWS\PROGMAN.INI C:\WINDOWS\NEW.GRP

COMMENTS:

ASSOCIATED COMMANDS:     DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT, READLINE, 
                         REMOVESECTION, REMOVETEXT






















































ATTRIBUTE

PURPOSE:       Change file attributes.

SYNTAX:        ATTRIBUTE [<DRIVE\PATH\>FILE NAME] [ATTRIBUTE] <*SWITCH>

     ATTRIBUTES:    +R   -    Sets the read only attribute.
                    -R   -    Removes the read only attribute.
                    +H   -    Sets the hidden file attribute.
                    -H   -    Removes the hidden file attribute.
                    +S   -    Sets the system file attribute.
                    -S   -    Removes the system file attribute.
                    +A   -    Sets the archive attribute.
                    -A   -    Removes the archive attribute.


     SWITCHES:      *S   -    Modifies attributes on files in all sub
                              directories that match FILE NAME.


SAMPLE CALL:   (1)  ATTRIBUTE C:\DATA\LETTER.DOC +R
               (2)  ATTRIBUTE C:\DATA\*.DOC +H *S

COMMENTS:      DOS wild card conventions can be used to specify what files to
               change.

               Sample call #1 will add a read only attribute to the file
               LETTER.DOC.

               Sample call #2 will add a hidden file attribute to all files
               with a DOC extension, it will also change any files in
               any sub directories under C:\DATA with a DOC extension.

ASSOCIATED COMMANDS:     COPY, DEL, FILEDATE, FILESIZE, FILETIME, GETVOLUME, 
                         INVENTORY, MOVE, PUTVOLUME, REN, RENDIR




























                         


BEEP

PURPOSE:       Causes PC's speaker to sound.

SYNTAX:        BEEP

SAMPLE CALL:   BEEP

COMMENTS:

ASSOCIATED COMMANDS:























































BREAK

PURPOSE:       Disables Ctrl-BreakCtrl-Break and Ctrl-CCtrl-C keys.

SYNTAX:        BREAK [OPTION]

     AVAILABLE OPTIONS:

               (1)  ON
               (2)  OFF

SAMPLE CALL:   (1)  BREAK ON
               (2)  BREAK OFF

COMMENTS:      Sample call #1 will allow the user to terminate the script by
               pressing Ctrl-Break or Ctrl-C.

               Sample call #2 will not allow the user to terminate the
               script by pressing Ctrl-Break or Ctrl-C.

               When SSL finishes processing a script the BREAK state
               returns to the condition it was in when the script was
               first ran.

ASSOCIATED COMMANDS:









































CD

PURPOSE:       Change directory and/or drive.

SYNTAX:        CD [<DRIVE\PATH\>DIRECTORY]

SAMPLE CALL:   (1)  CD C:\TEST
               (2)  CD D:

COMMENTS:      Sample call #1 will change from the current working directory 
               and drive to the directory test on the root of drive C:.

               Sample call #2 will change to drive D: from the current
               drive and remain in the current working directory on
               drive D:.

               If you want to test for the existence of a drive or
               directory use the IF EXIST conditional statement.

ASSOCIATED COMMANDS:     RD, MD














































CLS

PURPOSE:       Clears the PROGRESS window.

SYNTAX:        CLS

SAMPLE CALL:   CLS



























































COMMAND

PURPOSE:       Execute a external program or DOS command.

SYNTAX:        COMMAND ["INSTRUCTION"]

SAMPLE CALL:   (1)  COMMAND C:\WINDOWS\SETUP
               (2)  COMMAND "COPY C:\AUTOEXEC.BAT C:\DOS"
               (3)  COMMAND

COMMENTS:      Sample call #1 will execute the Windows setup program.  After
               exiting setup it will return control to the script.

               Sample call #2 will copy the autoexec.bat file to the Dos
               directory using the DOS COPY command, then return control
               to the script.

               Sample call #3 will shell out to DOS.  Type EXIT at the DOS
               prompt and it will return control to the script.

ASSOCIATED COMMANDS:     EXIT













































CONCAT

PURPOSE:       Takes two strings and concatenates them, then stores the new
               value in the given variable.

SYNTAX:        CONCAT [STRING1] [STRING2] [VARIABLE NAME]

SAMPLE CALL:   EQU STRING1 "He"
               EQU STRING2 "llo"
               CONCAT @STRING1@ @STRING2@ STRING1

COMMENTS:      In the previous sample call the value of STRING2 will be
               concatenated to the end of the value of STRING1 and then
               stored back in the variable STRING1.  In the previous sample
               call the value of STRING1 at the end of execution of the 
               CONCAT statement will be "Hello".

ASSOCIATED COMMANDS:     CROP, EXTRACTI, INLINE, LENGTH, LCROP, LTRIM,
RCROP, RTRIM















































COPY

PURPOSE:       Copies single files, multiple files or entire directory
               structures.


SYNTAX:        COPY  [SOURCE] [DESTINATION] <*SWITCH>

     SWITCHES: *S   -    Copies all sub directories.


SAMPLE CALL:   (1)  COPY C:\DATA\FILE.EXE C:\NEWDIR\FILE.EXE
               (2)  COPY C:\DATA C:\BACKUP *S
               (3)  COPY C:\DATA\WORK\*.DOC C:\BACKUP *S

COMMENTS: Destination parameter must be given.  Dos wild card conventions
          can be used.

          Most other PATH and FILENAME conventions used by DOS's COPY
          and XCOPY commands can be used.

ASSOCIATED COMMANDS:     ATTRIBUTE, DEL, FILEDATE, FILESIZE, FILETIME, 
                         GETVOLUME, INVENTORY, MOVE, PUTVOLUME, REN, RENDIR










































CROP

PURPOSE:       Takes the given SUB STRING and attempts to find an
               occurrence of it in the SOURCE string.  If it does, it
               stores all the characters that are after the SUB STRING or 
               before the SUB STRING, depending on the SWITCH used, in the 
               given VARIABLE.

SYNTAX:        CROP ["SOURCE"] ["SUB STRING"] [VARIABLE] [*SWITCH]

     SWITCHES: *P   -    Extract text before the given sub string.
               *A   -    Extract text after the given sub string.

SAMPLE CALL:   EQU STRING "SET PATH = C:\DOS"
               CROP @STRING@ "PATH" STRING2 *a

COMMENTS:      In the previous sample all the characters in the variable STRING
               after PATH will be stored in the variable STRING2.  The
               value of STRING2 will be " =  C:\DOS".

ASSOCIATED COMMANDS:     CONCAT, EXTRACTI, INLINE, LCROP, LENGTH, LTRIM,
                         RCROP, RTRIM












































DEL

PURPOSE:       Deletes individual files, multiple files, or entire sub
               directories.

SYNTAX:        DEL [<DRIVE\PATH\>FILENAME] <*SWITCH>

     SWITCHES: *S   -    Deletes files in all sub directories that match
                         FILENAME and will remove all empty sub
                         directories after deletion is complete, including 
                         the initial directory if nothing remains in it.

SAMPLE CALL:   (1)  DEL C:\DATA\INFO.TXT
               (2)  DEL C:\DATA\*.DOC *S
               (3)  DEL C:\DATA\*.*
               (4)  DEL C:\DATA\WORK *S

COMMENTS:      Dos wild card conventions can be used.

               Sample call #1 will delete the file INFO.TXT  in the C:\DATA
               directory.

               Sample call #2 will delete all files with a DOC extension in
               the C:\DATA directory including any files with a DOC
               extension in any sub directories.

               Sample call #3 will delete all the files in the C:\DATA
               directory.

               Sample call #4 will remove the entire C:\DATA\WORK directory
               and everything underneath it.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, FILEDATE, FILESIZE, FILETIME,
                         GETVOLUME, INVENTORY, MOVE, PUTVOLUME, REN, RENDIR
































DELGROUP

PURPOSE:       Remove a group file entry from the progman.ini file.

SYNTAX:        DELGROUP [<DRIVE\PATH\>INI FILE NAME] [GROUP ENTRY]

SAMPLE CALL:   DELGROUP C:\WINDOWS\PROGMAN.INI C:\WINDOWS\NEW.GRP

COMMENTS:

ASSOCIATED COMMANDS:     ADDGROUP, INSERTTEXT, NUMLINES, PULLTEXT, READLINE, 
                         REMOVESECTION, REMOVETEXT






















































DISPLAY

PURPOSE:       Displays a given string of text in the PROGRESS window.

SYNTAX:        DISPLAY <"TEXT">

SAMPLE CALLS:  (1)  DISPLAY "Press any key to continue."
               (2)  DISPLAY @COUNTER@
               (3)  DISPLAY "The value of COUNTER is @COUNTER@."
               (4)  DISPLAY

COMMENTS:      TEXT can be a string of characters, a variable or a 
               combination of both.  Double quotes must be placed around the 
               TEXT if TEXT has spaces in it.  If you do not supply a TEXT
               string then a blank line will be printed to the PROGRESS 
               window.

ASSOCIATED COMMANDS: OUTPUTWINDOW
















































DIV

PURPOSE:       Divides  two numbers and stores the value in the given 
               variable.

SYNTAX:        DIV [NUMBER1] [NUMBER2] [VARIABLE NAME]

SAMPLE CALL:   EQU COUNT 10
               DIV 50 @COUNT@ ANSWER

COMMENTS:      Numbers and or variables can be used.  In the previous sample
               call the value of ANSWER will be 5.

ASSOCIATED COMMANDS:     ADD, MOD, MULT, SUB




















































ELSE

PURPOSE:       Marks a section of code that should execute if the
               associated IF command returns a false value.  The section
               of code that executes is terminated by the END command.

SYNTAX:        ELSE

SAMPLE CALL:   IF
               .
               .
               ELSE
               .
               .
               END

COMMENTS:      If a condition in an IF statement is true, all the 
               instructions following the IF command will be executed up to 
               the associated END or ELSE command.

ASSOCIATED COMMANDS:     IF, END













































END

PURPOSE:       Terminates an IF command if no ELSE command has been used.

SYNTAX:        END

SAMPLE CALL:   IF
               .
               .
               END

COMMENTS:      If a condition in an IF statement is true, all the 
               instructions following the IF command will be executed up to 
               the associated END command unless the ELSE command is used.

ASSOCIATED COMMANDS:     IF, ELSE


















































EQU

PURPOSE:       Set a variable name equal to some value.

PREDEFINED
SYSTEM VARIABLES:   @DATE@         -    Returns the date.
                    @DOSVER@       -    Returns the current DOS version.
                    @DISKSPACE(X)@ -    Returns the available disk space on
                                        Drive (X).

                                        @DISKSPACEC@
                                        @DISKSPACED@

                    @STARTUP@      -    Returns the directory that SSL was 
                                        ran from.
                    @TIME@         -    Returns the time at which this
                                        variable was encountered.
                    @TOTRAM@       -    Returns the total amount of RAM
                                        installed.

SYNTAX:        EQU [VARIABLE NAME] [VALUE]

SAMPLE CALL:   (1)  EQU COUNTRY USA
               (2)  EQU BEST @COUNTRY@
               (3)  EQU @BEST@ #1
               (4)  EQU @USA@ @USA@

COMMENTS:      Sample call  #1 the variable COUNTRY will now have the 
               value USA.

               Sample call #2 the variable BEST will have the value USA
               because that is what the value of COUNTRY is set to.

               Sample call #3 the value of BEST which is USA is set up as a
               variable with the value #1.

               Sample call #4 the value of USA which is #1 is set up as a
               variable with the value of the variable USA which is #1.

               COUNTRY = USA
               BEST = USA
               USA = #1
               #1 = #1

               Whenever you want to use the value of a variable in a
               command, enclose the variable name in @ signs.

               The maximum number of variables allowed is 30.  It is always
               good to delete a variable when you are finished using it
               with the RELEASE command so that you don't reach the limit.

               It is also good to initialize a variable with some value
               before using it so that if a command fails that uses the
               variable you can test the value of the variable.  If you do 
               not initialize a variable and a command fails the variable is 
               not given a value and you can not use it in other commands without
               receiving errors.  If a variable is not defined it will 
               produce a false value in conditional statements.








ERRORLEVEL

PURPOSE:       Specify what type of error detection you
               desire and/or a file to log the errors to.

SYNTAX:        ERRORLEVEL [OPTION] <LOG FILENAME>

               OPTIONS:  0 -  Prints errors to the ERROR window and to the
                              LOG file.
                         1 -  Prints errors to the ERROR window but does
                              not save them in the LOG file.
                         2-   Does not print errors to the ERROR window but
                              does save them in the LOG file.
                         3 -  Does not print errors to the ERROR window nor
                              does it save them in the LOG file.
                         4 -  Prints the first occurrence of an error to
                              the ERROR window and to the LOG file,
                              then exits the script.

SAMPLE CALL:   (1)  ERRORLEVEL 3
               (2)  ERRORLEVEL 0 C:\ERROR.LOG

COMMENTS:      Sample call #1 will cause SSL to stop printing errors to the
               ERROR window and to the LOG file, if one has been opened
               previously.

               Sample call #2 will cause SSL to print errors to the ERROR
               window and open a file called ERROR.LOG in the root of the
               C: drive and log all errors to that file.

               By default ERRORLEVEL is set to 1 and no log file is opened.

               You must specify a LOG FILENAME when setting the ERRORLEVEL
               to 0, 2 or 4 for the first time.  After initializing a
               LOG file you no longer need to specify a LOG
               FILENAME when using these ERRORLEVEL's.

               A LOG FILENAME should not be specified when setting
               ERRORLEVEL to 1 or 3.

               If you are running SSL by specifying commands on the command
               line, the only option that has an effect is 4.  Option 4 will
               not log the error to a LOG file but will exit upon the first
               occurrence of an error.

ASSOCIATED COMMANDS:     MSGLEVEL, PAUSE




















EXIT

PURPOSE:       Terminates the processing of the current script and runs 
               any external command given on the command line or terminates 
               the processing of the current script and sets the DOS 
               errorlevel upon exiting the script.

SYNTAX:        EXIT <SWITCH> <COMMAND or ERRORLEVEL> <ARG1> <ARG2> .. <ARG10>

     SWITCHES: *C   -    Allows you to run an external command upon exiting
                         the script.
               *E   -    Allows you to set the DOS errorlevel to a desired 
                         value upon exiting the script.

SAMPLE CALL:   (1)  EXIT
               (2)  EXIT *C EDIT C:\AUTOEXEC.BAT
               (3)  EXIT *E 2

COMMENTS:      Sample call #1 will just terminate the processing of the 
               script and exit to DOS.

               Sample call #2 will terminate the processing of the script, 
               exit and load the C:\AUTOEXEC.BAT file into the DOS edit 
               program.

               Sample call #3 will terminate the processing of the script and 
               set the DOS errorlevel to 2.

               The maximum number of arguments that can be given with a 
               COMMAND using the *C SWITCH is 10.

               If you do not give any arguments with the EXIT command, the 
               DOS errorlevel will be set to 0 when the script terminates.  
               The DOS errorlevel is also set to 0 when a script finishes                   
               being processed and terminates on it's own.  If an error 
               occurs while processing a script which in turn causes a script 
               to terminate, the DOS errorlevel will be set to 1.

ASSOCIATED COMMANDS:     COMMAND



























EXTRACTI

PURPOSE:       Extracts a sub string from the given string using a given
               starting point and ending point.  The sub string extracted
               is then stored in the given variable.

SYNTAX:        EXTRACTI [STRING] [FROM] [TO] [VARIABLE NAME]

SAMPLE CALL:   EXTRACTI "Fourscore and seven years ago" 11 13 SUB

COMMENTS:      In the previous sample call EXTRACTI will pull the 11th, 12th 
               and 13th character out and store the value in the variable 
               SUB.  In the previous sample call the value stored in SUB will be
               "and".

ASSOCIATED COMMANDS:     CONCAT, CROP, INLINE, LCROP, LENGTH, LTRIM, RCROP,
                         RTRIM

















































FILEDATE

PURPOSE:       Determines the given file's date of creation
               and stores the value in the given variable.

SYNTAX:        FILEDATE [<DRIVE\PATH\>FILE NAME] [VARIABLE NAME]

SAMPLE CALL:   FILEDATE C:\COMMAND.COM FDATE

COMMENTS:      Dates are given in the following format:     Month-Day-Year
                                                            09-10-95

               If the Month, Day or Year is a single digit
               it will be preceded by a zero.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILESIZE, FILETIME, GETVOLUME,                              
                         INVENTORY, MOVE, PUTVOLUME, REN, RENDIR

















































FILESIZE

PURPOSE:       Determines the given file's size in bytes and
               stores the value in the given variable.

SYNTAX:        FILESIZE [<DRIVE\PATH\>FILE NAME] [VARIABLE NAME]

SAMPLE CALL:   FILESIZE C:\COMMAND.COM SIZE

COMMENTS:

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILETIME, GETVOLUME,
                         INVENTORY, MOVE, PUTVOLUME, REN, RENDIR





















































FILETIME

PURPOSE:       Determines the given file's time of creation
               and stores the value in the given variable.

SYNTAX:        FILETIME [<DRIVE\PATH\>FILE NAME] [VARIABLE NAME]

SAMPLE CALL:   FILETIME C:\COMMAND.COM FTIME

COMMENTS: Time is given in the following format: Hour:Minutes
                                                 19:52

               If the Hour or Minute is a single digit it
               will be preceded by a zero.

               All time is given in military time to make
               comparisons easier.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, GETVOLUME,                         
                         INVENTORY, MOVE, PUTVOLUME, REN, RENDIR














































GETVOLUME

PURPOSE:       Reads the volume label of the given drive and
               stores it in the given variable.

SYNTAX:        GETVOLUME [DRIVE LETTER:] [VARIABLE NAME]

SAMPLE CALL:   GETVOLUME A: VOLUME

COMMENTS:

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,                               
                         INVENTORY, MOVE, PUTVOLUME, REN, RENDIR





















































GLOBALENV

PURPOSE:       Change, Add or Delete a environment variable in the master or 
               parent environment.

SYNTAX:        GLOBALENV [VARIABLE NAME] <VALUE>

SAMPLE CALL:   (1)  GLOBALENV PATH C:\DOS
               (2)  GLOBALENV PATH

COMMENTS:      Sample call 1 will change the PATH to C:\DOS.

               Sample call 2 will delete the PATH.

               Changes made by GLOBALENV will not take effect until
               execution of SSL is complete.

ASSOCIATED COMMANDS:     LOCALENV
















































GOTO

PURPOSE:       Jumps from the current position in the script to a location
               marked by the same LABEL as given with the GOTO statement.

SYNTAX:        GOTO [LABEL]

SAMPLE CALL:   GOTO END
               EQU COUNTRY USA
               LABEL END


COMMENTS:      In the previous sample call the EQU command will be skipped
               because the GOTO command causes control to jump to the line 
               marked with the LABEL END statement.

ASSOCIATED COMMANDS:     LABEL

















































IF

PURPOSE:       The IF command will test a certain condition and execute the
               instructions following the IF command up to the associated
               ELSE and/or END command if the condition tested is true.  If 
               an ELSE command exists and the IF condition is false, all 
               instructions following the ELSE command will be executed up to the
               associated END command.  The ELSE command is not necessary
               if you do not want anything to execute when the IF condition 
               is false.

SYNTAX:        IF [CONDITION] <LOGICAL OPERATOR> <CONDITION> ...
                    instructions
                    .
                    .
                    .
               ELSE
                    instructions
                    .
                    .
                    .
               END


COMMENTS:      Inputs may be literal values, variables or a combination of 
               the two.  Nested IF statements are permitted.



AVAILABLE CONDITIONS:


     CONDITION:     =

     PURPOSE:       Checks for the equality of two inputs.

     SYNTAX:        IF = [INPUT1] [INPUT2]

     SAMPLE CALL:   EQU NAME Tony
                    IF = "Tony" @NAME@

     COMMENTS:      The previous sample call will return a true value.
























IF (continued)

AVAILABLE CONDITIONS:


     CONDITION:     >

     PURPOSE:       Check to see if one input is greater than the other.

     SYNTAX:        IF > [INPUT1] [INPUT2]

     SAMPLE CALL:   EQU COUNT 5
                    IF > 10 @COUNT@

     COMMENTS:      The previous sample call will return a true value.


     CONDITION:     <

     PURPOSE:       Check to see if one input is less than the other.

     SYNTAX:        IF < [INPUT1] [INPUT2]

     SAMPLE CALL:   EQU COUNT 5
                    IF < 10 @COUNT@

     COMMENTS:      The previous sample call will return a false value.


     CONDITION:     >=

     PURPOSE:       Check to see if one input is greater than or equal to
                    the other.

     SYNTAX:        IF >= [INPUT1] [INPUT2]

     SAMPLE CALL:   EQU COUNT 5
                    IF >= 10 @COUNT@

     COMMENTS:      The previous sample call will return a true value.


























IF (continued)

AVAILABLE CONDITIONS:


     CONDITION:     <=

     PURPOSE:       Check to see if one input is less than or equal to the
                    other.

     SYNTAX:        IF <= [INPUT1] [INPUT2]

     SAMPLE CALL:   EQU COUNT 10
                    IF <= 10 @COUNT@

     COMMENTS:      The previous sample call will return a true value.


     CONDITION:     <>

     PURPOSE:       Check to see if one input does not equal to the other.

     SYNTAX:        IF <> [INPUT1] [INPUT2]

     SAMPLE CALL:   EQU COUNT 10
                    IF <> 10 @COUNT@

     COMMENTS:      The previous sample call will return a false value.

        
     CONDITION:     DEFINED or !DEFINED

     PURPOSE:       Determines whether the given variable name has been 
                    defined.  ! negates the outcome.

     SYNTAX:        IF DEFINED [VARIABLE NAME]
                    IF !DEFINED [VARIABLE NAME]

     SAMPLE CALL:   IF DEFINED VERSION

     COMMENTS:      The previous sample call will return a true value if a 
                    variable named VERSION had been given any value prior 
                    to this call, otherwise it will return a false value.


     CONDITION:     EXIST or !EXIST

     PURPOSE:       Checks for the existence of a file. ! negates the
                    outcome.

     SYNTAX:        IF EXIST [<DRIVE\PATH\>FILENAME]
                    IF !EXIST [<DRIVE\PATH\>FILENAME]

     SAMPLE CALL:   IF EXIST C:\WIN.COM

     COMMENTS:      In the previous sample win.com will be searched for on the
                    root of  C:.  NUL can replace the filename if checking 
                    for the existence of a directory.  No wild cards can be 
                    used.







IF (continued)

AVAILABLE CONDITIONS:


     CONDITION:     EXIST* or !EXIST*

     PURPOSE:       Checks for the existence of a file in the path given
                    and all sub directories. ! negates the outcome.

     SYNTAX:        IF EXIST* [<DRIVE\PATH\>FILENAME]
                    IF !EXIST* [<DRIVE\PATH\>FILENAME]

     SAMPLE CALL:   IF EXIST* C:\WIN.COM

     COMMENTS:      In the previous sample the file win.com will be searched for
                    on the root of C: and all sub directories.  NUL can
                    replace the filename if checking for the existence of a
                    directory.  No wild cards can be used.


     CONDITION:     TEXTEXIST or !TEXTEXIST

     PURPOSE:       Search for text inside a given text file.  ! negates
                    the outcome.

     SYNTAX:        IF TEXTEXIST [<DRIVE\PATH\>FILENAME] [SEARCH STRING]
                    IF !TEXTEXIST [<DRIVE\PATH\>FILENAME] [SEARCH STRING]

     SAMPLE CALL:   IF TEXTEXIST C:\AUTOEXEC.BAT "PATH C:\;C:\DOS"

     COMMENTS:


     CONDITION:     ISNUM or !ISNUM

     PURPOSE:       Determines whether a string contains all numeric
                    digits.  ! negates the outcome.

     SYNTAX:        IF ISNUM [VALUE]
                    IF !ISNUM [VALUE]

     SAMPLE CALL:   (1)  IF ISNUM "1456"
                    (2)  EQU TEMP 345F
                         IF ISNUM @TEMP@

     COMMENTS:      Sample call #1 will return a true value.

                    Sample call #2 will return a false value.

















IF (continued)

AVAILABLE LOGICAL OPERATORS:


     OPERATOR: AND

     PURPOSE:       Separates multiple CONDITIONS which must return true
                    values for the whole expression to be true.

     SYNTAX:        IF = [CONDITION1] AND [CONDITION2] AND [CONDITION3] .....

     SAMPLE CALL:   IF = "Tony" @NAME@ AND exist c:\autoexec.bat

     COMMENTS:      You can combine different LOGICAL OPERATORS on the same
                    line, but there is no way to set precedence.


     OPERATOR: OR

     PURPOSE:       Separates multiple CONDITIONS one of which must return
                    a true values for the whole expression to be true.

     SYNTAX:        IF = [CONDITION1] OR [CONDITION2] OR [CONDITION3] ...

     SAMPLE CALL:   IF = "Tony" @NAME@ OR exist c:\autoexec.bat

     COMMENTS:      You can combine different LOGICAL OPERATORS on the same
                    line, but there is no way to set precedence.





































INLINE

PURPOSE:       Takes the given string and determines if the given substring
               is contained within that string, and if so returns the 
               position of the first character of the substring in the given 
               string.  If the substring is not found in the string then the 
               function returns 0.

SYNTAX:        INLINE [STRING] [SUBSTRING] [VARIABLE NAME]

SAMPLE CALL:   INLINE "HELLO WORLD" "WORLD" LOCATION

COMMENTS:      In the previous sample call the value of LOCATION will be 7.

ASSOCIATED COMMANDS:     CONCAT, CROP, EXTRACTI, LCROP, LENGTH, LTRIM,
                         RCROP, RTRIM


















































INPUT

PURPOSE:       Prompts user for input and stores it in the given variable.

SYNTAX:        INPUT [VARIABLE NAME]

SAMPLE CALL:   INPUT CHOICE

COMMENTS:      In the previous sample the user will be prompted for input and
               when entered it will be stored in the variable CHOICE.

ASSOCIATED COMMANDS:     INPUTWINDOW, MENU






















































INPUTWINDOW

PURPOSE:       Create a window with various fields for the user to fill in.
               The fields are defined on the command line and can specify 
               what type of character to accept and specify the format.

SYNTAX:        INPUTWINDOW [WINDOW TITLE] [HEADING] [PICTURE] [VARIABLE]
               <HEADING2> <PICTURE2> <VARIABLE2> .........

     PARAMETERS:    WINDOW TITLE   -    Title of window displayed on screen.  
                                        If you do not want a title then 
                                        enter "" for that parameter.
                    HEADING        -    Describes to user what information
                                        you are asking for.
                    PICTURE        -    Describes the format of the desired
                                        information.

                                   - OPTIONS:
                                        X - Any character.
                                        9 - Only numbers accepted.
                                        L - Only 'Y' or 'N' accepted.
                                            (Default is 'N')

                    VARIABLE        -   Variable name to store input in.

SAMPLE CALL:        INPUTWINDOW "MAILING LABELS" "NAME   : " "XXXXXXXXXXXXXXX"
                    NAME "ADDRESS: " "XXXXXXXXXXXXXXX" ADDRESS1 "         :"
                    "XXXXXXXXXXXXXXX" ADDRESS2 "PHONE  : " "(999)999-9999" 
                    PHONE

COMMENTS:           The window produced from the previous sample call will 
                    look similar to the following along with a border:

                   MAILING LABELS
               NAME      :
               ADDRESS   :
                         :
               PHONE     :  (   )   -

               Any character added as part of the picture other than 'X',
               '9' or 'L' will be a permanent part of the users input and
               users will not be allowed to change it.  The parenthesis and 
               hyphen in the phone field above are such.

               You can have a maximum of 20 lines with a maximum of 75
               characters in each line.

               User may use any of the typical navigation key to get around
               the window.  When the user is satisfied with the entries
               he must press return with the cursor sitting on the last line 
               in the window to terminate input.  All values will then be 
               stored in the variables specified on the command line.

ASSOCIATED COMMANDS:     INPUT, MENU, MENUITEMBACK, MENUITEMFORE,
                         OUTPUTWINDOW, WINBACK, WINFORE 
                         










INSERTTEXT

PURPOSE:       Insert text into a text file.  Text may be
               inserted anywhere in the text file depending on
               which switch is chosen.

SYNTAX:        INSERTTEXT [<DRIVE\PATH\>FILENAME] ["NEW TEXT"] [*SWITCH] 
               <"SUB_STRING1"> <"SUB_STRING2">

     SWITCHES: *P   -    Insert NEW TEXT on the line before the first 
                         occurrence of  a line containing SUB_STRING1 but 
                         NOT if the line contains SUB_STRING2.
               *A   -    Insert NEW TEXT on the line after the first 
                         occurrence of a line containing SUB_STRING1 but NOT 
                         if the line contains SUB_STRING2.
               *R   -    Replaces the first occurrence of a line containing 
                         SUB_STRING1 with NEW TEXT only if the line does not 
                         contain SUB_STRING2.
               *PE  -    Insert NEW TEXT on the line before every occurrence 
                         of  a line containing SUB_STRING1 but NOT if the 
                         line contains SUB_STRING2.
               *AE  -    Insert NEW TEXT on the line after every occurrence 
                         of a line containing SUB_STRING1 but NOT if the line 
                         contains SUB_STRING2.
               *RE  -    Replaces every occurrence of a line containing 
                         SUB_STRING1 with NEW TEXT only if the line does not 
                         contain SUB_STRING2.
               *T   -    Insert NEW TEXT on the first line of the file.
               *B   -    Insert NEW TEXT on the last line of the file.

SAMPLE CALL:   INSERTTEXT C:\AUTOEXEC.BAT "SET TEMP=C:\DOS" *P "PATH"

COMMENTS:      In the previous sample call "SET TEMP=C:\DOS" will be inserted 
               in "C:\AUTOEXEC.BAT" before the first occurrence of "PATH" is
               found in the file.  If you want to insert a blank line use "" 
               in place of the NEW TEXT parameter.  If you want to delete a 
               given line, use the *R switch with "" in place of NEW TEXT.  
               Remember that SUB_STRING2 is not required but can be used to exclude 
               lines you do not want evaluated.

               SUB_STRING1 is required if you use the *P, *A or *R switches.

ASSOCIATED COMMANDS:     ADDGROUP, DELGROUP, NUMLINES, PULLTEXT, READLINE, 
                         REMOVESECTION, REMOVETEXT






















INVENTORY

PURPOSE:       Searches for all occurrences of the specified file(s) and
               stores their PATH in the specified text file.  A heading can 
               be specified that helps describe the purpose of the inventory
               or any other use you can think of.

SYNTAX:        INVENTORY [<DRIVE\PATH\>FILENAME1] [<DRIVE\PATH\>FILENAME2]
               ["HEADING"] [*SWITCH]

               FILENAME1 -    File(s) being searched for.
               FILENAME2 -    File to store the PATHs of files that are
                              found.
               HEADING   -    String of text that is inserted in FILENAME2
                              before the PATHs of any found files.

     SWITCHES: *S   -    Searches all sub directories.

SAMPLE CALL:   INVENTORY C:\*.DOC "List of all documents" *S

COMMENTS:      If you do not want a HEADING use "" in place of this 
               parameter.  The output file FILENAME2 is never overwritten, 
               but has all text appended to it.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
                         GETVOLUME, MOVE, PUTVOLUME, REN, RENDIR








































LABEL

PURPOSE:       Mark a location in the script where an associated GOTO
               command will transfer control.

SYNTAX:        LABEL [NAME]

SAMPLE CALL:   GOTO END
               EQU COUNTRY USA
               LABEL END

COMMENTS:      In the previous sample the EQU command will not execute 
               because the GOTO command causes control to skip to the line
               marked by the appropriate LABEL.

ASSOCIATED COMMANDS:     GOTO


















































LCROP

PURPOSE:       Extracts n# of characters from the left side of the given
               string and stores them in the given variable.

SYNTAX:        LCROP ["SOURCE"] [NUMBER OF CHARACTERS] [VARIABLE NAME]

SAMPLE CALL:   EQU STRING "PATH = C:\DOS"
               LCROP @STRING@ 4 STRING2

COMMENTS:      In the previous sample call the 4 leftmost characters of 
               "PATH = C:\DOS" will be placed in the variable STRING2.  The 
               value stored in STRING2 in this sample call will be "PATH".

ASSOCIATED COMMANDS:     CONCAT, CROP, EXTRACTI, INLINE, LENGTH, LTRIM,
                         RCROP, RTRIM


















































LENGTH

PURPOSE:       Determines the length of the given string and stores that
               value in the given variable.

SYNTAX:        LENGTH ["SOURCE"] [VARIABLE NAME]

SAMPLE CALL:   EQU STRING "PATH"
               LENGTH @STRING@ STRING2

COMMENTS:      In the previous sample call the length of the value of STRING
               will be stored in the variable STRING2.  The value stored
               in STRING2 in this sample call will be 4.

ASSOCIATED COMMANDS:     CONCAT, CROP, EXTRACTI, INLINE, LCROP, LTRIM,
                         RCROP, RTRIM


















































LISTVARS

PURPOSE:       Displays all the currently defined SSL variables.

SYNTAX:        LISTVARS

SAMPLE CALL:   LISTVARS

COMMENTS:

ASSOCIATED COMMANDS:     RELEASE, RELEASEALL























































LOCALENV

PURPOSE:       Change, Add or Delete a environment variable in the current or 
               local environment.

SYNTAX:        LOCALENV [VARIABLE NAME] <VALUE>

SAMPLE CALL:   (1)  LOCALENV PATH C:\DOS
               (2)  LOCALENV PATH

COMMENTS:      Sample call 1 with change the PATH to C:\DOS.

               Sample call 2 will delete the current PATH.

               Once execution of SSL terminates the environment reverts
               back to the state it was in before SSL ran.

ASSOCIATED COMMANDS:     GLOBALENV
















































LOOP

PURPOSE:       Terminates a WHILE command.

SYNTAX:        LOOP

SAMPLE CALL:   WHILE
               .
               .
               LOOP

COMMENTS:      While a condition in a WHILE statement is true, all the
               instructions following the WHILE command will be executed
               up to the associated LOOP command.  Control is then
               transferred back to the original WHILE statement and the 
               condition is tested again.  This process will continue until 
               the conditional statement found in the WHILE statement is
               false.

ASSOCIATED COMMANDS:














































LTRIM

PURPOSE:       Remove leading spaces from a string or remove a specified
               number of character from the left side of the given string
               and store the remainder in the given variable.

SYNTAX:        LTRIM ["SOURCE"] [VARIABLE NAME] <NUMBER OF CHARACTERS>

SAMPLE CALL:   (1)  LTRIM "     Hello World" STRING2
               (2)  LTRIM "Hello World" STRING2 6

COMMENTS:      Sample call #1 will remove the leading spaces and store 
               "Hello World" in the variable STRING2.

               Sample call #2 will remove the first 6 characters from
               "Hello World" and store "World" in the variable STRING2.

               If you specify the number of characters to remove and the
               string has leading spaces, the spaces are not
               automatically removed but considered as actual characters 
               which count against the number of characters you specified 
               to remove.

ASSOCIATED COMMANDS:     CONCAT, CROP, EXTRACTI, INLINE, LCROP, LENGTH,
                         RCROP, RTRIM









































MASTERBACK

PURPOSE:       Changes the background color used for the application.

SYNTAX:        MASTERBACK [COLORCOLOR]

     AVAILABLE COLORS:   BLACK
                         BLUE
                         GREEN
                         CYAN
                         RED
                         MAGENTA
                         BROWN
                         LIGHTGRAY

SAMPLE CALL:   MASTERBACK BLUE

COMMENTS:

ASSOCIATED COMMANDS:     MASTERFORE, MENUITEMBACK, MENUITEMFORE,
                         REFRESH, WINBACK, WINFORE













































MASTERFORE

PURPOSE:       Changes the foreground color used for the application.

SYNTAX:        MASTERFORE [COLORCOLOR]

     AVAILABLE COLORS:   BLACK
                         BLUE
                         GREEN
                         CYAN
                         RED
                         MAGENTA
                         BROWN
                         LIGHTGRAY
                         DARKGRAY
                         LIGHTBLUE
                         LIGHTGREEN
                         LIGHTCYAN
                         LIGHTRED
                         LIGHTMAGENTA
                         YELLOW
                         WHITE

SAMPLE CALL:   MASTERFORE BLUE

COMMENTS:

ASSOCIATED COMMANDS:     MASTERBACK, MENUITEMBACK, MENUITEMFORE,
                         REFRESH, WINBACK, WINFORE





































MD

PURPOSE:       Create a directory.

SYNTAX:        MD [<DRIVE\PATH\>DIRECTORY]

SAMPLE CALL:   MD C:\TEST

COMMENTS:

ASSOCIATED COMMANDS:     CD, RD























































MENU

PURPOSE:       Display a menu and have the user make a selection.  The
               number of the menu option selected is then stored in the
               variable given on the command line.

SYNTAX:        MENU [VARIABLE NAME] [MENU TITLE] [MENU ITEM1] 
               <"MENU ITEM2"> ....

SAMPLE CALL:   EQU ITEM3 "INSTALL APPLICATION"
               MENU CHOICE "MAIN MENU" "INSTALL DOS" "DELETE FILE" @ITEM3@

COMMENTS:      Variables can be used as MENU ITEMs.  This is the best way to 
               set up the menu items because of the limited space you have on
               the command line.  The maximum number of menu items is 20 with 
               a maximum of 75 characters in menu title.  If you do not wish 
               to have a MENU TITLE then substitute "" for that parameter.  
               In the previous sample call you will have the following menu 
               options displayed on the screen with a MENU TITLE and border:

               MAIN MENU

               INSTALL DOS
               DELETE FILE
               INSTALL APPLICATION


               The user can then use the cursor keys to select the option
               they desire.  The number of that option will be stored in the
               given variable name, in this case CHOICE.  If you choose
               INSTALL APPLICATION then the value of CHOICE will be 3.

ASSOCIATED COMMANDS:     INPUT, INPUTWINDOW, MENUITEMBACK, MENUITEMFORE,
                         OUTPUTWINDOW, WINBACK, WINFORE
































MENUITEMBACK

PURPOSE:       Changes the background color of a highlighted window item.

SYNTAX:        MENUITEMBACK [COLORCOLOR]

     AVAILABLE COLORS:   BLACK
                         BLUE
                         GREEN
                         CYAN
                         RED
                         MAGENTA
                         BROWN
                         LIGHTGRAY

SAMPLE CALL:   MENUITEMBACK BLUE

COMMENTS:

ASSOCIATED COMMANDS:     MASTERBACK, MASTERFORE, MENUITEMFORE, REFRESH,
                         WINBACK, WINFORE













































MENUITEMFORE

PURPOSE:       Changes the foreground color of a highlighted window item.

SYNTAX:        MENUITEMFORE [COLORCOLOR]

     AVAILABLE COLORS:   BLACK
                         BLUE
                         GREEN
                         CYAN
                         RED
                         MAGENTA
                         BROWN
                         LIGHTGRAY
                         DARKGRAY
                         LIGHTBLUE
                         LIGHTGREEN
                         LIGHTCYAN
                         LIGHTRED
                         LIGHTMAGENTA
                         YELLOW
                         WHITE

SAMPLE CALL:   MENUITEMFORE BLUE

COMMENTS:

ASSOCIATED COMMANDS:     MASTERBACK, MASTERFORE, MENUITEMBACK,
                         REFRESH, WINBACK, WINFORE





































MOD

PURPOSE:       Divides two numbers and stores the remainder in the given
               variable.

SYNTAX:        MOD [NUMBER1] [NUMBER2] [VARIABLE NAME]

SAMPLE CALL:   EQU COUNT 10
               MOD 52 @COUNT@ ANSWER

COMMENTS:      Numbers and or variables can be used.  In the previous sample
               call the value of ANSWER will be 2.

ASSOCIATED COMMANDS:     ADD, DIV, MULT, SUB




















































MOVE

PURPOSE:       Moves files from their given location to a new location.

SYNTAX:        MOVE [SOURCE] [DESTINATION] <*SWITCH>

     SWITCHES: *S   -    Moves files found in all sub directories.


SAMPLE CALL:   (1)  MOVE C:\DATA\FILE.EXE C:\BACKUP\FILE.EXE
               (2)  MOVE C:\*.BAT C:\BACKUP\*.* *S

COMMENTS:      Dos wild card conventions can be used.  Files can not be moved
               between physical drives or logical partitions.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
                         GETVOLUME, INVENTORY, PUTVOLUME, REN, RENDIR









































                         







MSGLEVEL

PURPOSE:       Specifies what type of progress tracking you desire and/or a
               file to log the progress to.

SYNTAX:        MSGLEVEL [OPTION] <LOG FILENAME>

               OPTIONS:  0 -  Prints progress to the PROGRESS window and
                              saves progress in the LOG file.
                         1 -  Prints progress to the PROGRESS window but
                              does not save progress in the LOG file.
                         2-   Does not print progress to the PROGRESS
                              window but does save progress in the LOG
                              file.
                         3 -  Does not print progress to the PROGRESS
                              window nor does it save progress in the LOG
                              file.

SAMPLE CALL:   (1)  MSGLEVEL 3
               (2)  MSGLEVEL 0 C:\SSL.LOG

COMMENTS:      Sample call #1 will cause SSL to stop printing progress to the
               PROGRESS window and to the LOG file, if one has been
               opened previously.

               Sample call #2 will cause SSL to print progress to the
               PROGRESS window and open a file called SSL.LOG in the
               root of the C: drive and log all progress to that file.
               
               By default MSGLEVEL is set to 1 and no log file is opened.

               You must specify a LOG FILENAME when setting the MSGLEVEL to
               0 and 2 for the first time.  After initializing a LOG
               file you no longer need to specify a LOG FILENAME
               when using these MSGLEVEL's.

               A LOG FILENAME should not be specified when setting MSGLEVEL
               to 1 or 3.

               If you are running SSL by specifying commands on the command
               line, this command has no effect.

ASSOCIATED COMMANDS:     ERRORLEVEL, PAUSE























MULT

PURPOSE:       Multiply two numbers together and store the value in the
               given variable.

SYNTAX:        MULT [NUMBER1] [NUMBER2] [VARIABLE NAME]

SAMPLE CALL:   EQU COUNT 10
               MULT 50 @COUNT@ ANSWER

COMMENTS:      Numbers and or variables can be used.  In the previous sample
               call the value of ANSWER will be 500.

ASSOCIATED COMMANDS:     ADD, DIV, MOD, SUB




















































NUMLINES

PURPOSE:       Determines the number of lines in a text file and stores
               that value in the given variable.

SYNTAX:        NUMLINES [<DRIVE\PATH\>FILENAME] [VARIABLE NAME]

SAMPLE CALL:   NUMLINES C:\AUTOEXEC.BAT VALUE

COMMENTS:      In the previous sample call the number of lines in the
               AUTOEXEC.BAT file will be calculated and stored in the
               variable VALUE.

ASSOCIATED COMMANDS:     ADDGROUP, DELGROUP, INSERTTEXT, PULLTEXT, READLINE, 
                         REMOVESECTION, REMOVETEXT



















































OUTPUTWINDOW

PURPOSE:       Create a window and print information to it.

SYNTAX:        OUTPUTWINDOW [WINDOW TITLE] [STRING1] <STRING2> .....

SAMPLE CALL:   EQU ADDRESS "610 Jackson Street"
               EQU CITY Greenville
               EQU STATE NC
               EQU ZIP 87654
               OUTPUTWINDOW " CUSTOMER INFO " "Mike Johnson" @ADDRESS@
               "@CITY@, @STATE@ @ZIP@"

COMMENTS:      The window produced from the previous sample call will look
               similar to the following along with a border:

               CUSTOMER INFO
               Mike Johnson
               610 Jackson Street
               Greenville, NC 87654

               Remember that the variables CITY, STATE and ZIP are between
               double quotes and will be treated as one parameter so they
               will be put on the same line.

               You can have a maximum of 20 lines with a maximum of 75
               characters in each line.

               If you do not desire a menu title then use "" in place of
               that parameter.  If you would like a blank line displayed use
               "" as the parameter.

ASSOCIATED COMMANDS:     INPUT, INPUTWINDOW, MENU, WINBACK, WINFORE

































PAUSE

PURPOSE:       When issued, it will cause SSL to prompt the user to press
               any key when it finishes processing the entire script.

SYNTAX:        PAUSE

SAMPLE CALL:   PAUSE

COMMENTS:      This is useful in debugging if SSL is terminating so quickly 
               that you can not see what kind of errors are being displayed.
               Also remember that you can set up log files using the 
               ERRORLEVEL and MSGLEVEL commands that will aid you in 
               debugging. This command is most effective if you make it the 
               first entry in your script.

ASSOCIATED COMMANDS:     ERRORLEVEL, MSGLEVEL, WAIT

















































PULLTEXT

PURPOSE:       Extract text from a text file by specifying a sub string of
               the line you want to extract.  Extracted text is placed
               in the variable name given on the command line.

SYNTAX:        PULLTEXT [<DRIVE\PATH\>FILENAME] ["SUB STRING"] [VARIABLE NAME]
               <*SWITCH> <SUB STRING> <*SWITCH> <SUB STRING> .....

     SWITCHES: *P   -    The line that is to be extracted must be found
                         before the SUB STRING given after this switch
                         is found in the file.  This switch can only be used
                         once.
               *A   -    The line that is to be extracted must be found
                         after the SUB STRING given after this switch
                         is found in the file.  This switch can only be use
                         once.
               *N   -    The line that is to be extracted can not contain
                         the SUB STRING given after this switch.  You
                         can use this switch up to 10 times.

SAMPLE CALL:   (1)  PULLTEXT C:\AUTOEXEC.BAT PROMPT STORE
               (2)  PULLTEXT C:\AUTOEXEC.BAT "PATH" STRING *A "PROMPT"
                    *P "DOSKEY" *N "SET PATH"

COMMENTS:      Sample call #1 will extract the first line that has the string
               PROMPT contained in it and store the entire line of text
               in the variable STORE.

               Sample call #2 will extract the first line that meets the
               following conditions and store the entire line of text in the 
               variable STRING:

               1.  The line must contain PATH
               2.  The line must not contain SET PATH
               3.  A line that contains DOSKEY must not have been found yet
               4.  A line that contains PROMPT must have already been found.

ASSOCIATED COMMANDS:     ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, READLINE, 
                         REMOVESECTION, REMOVETEXT


























PUSHKEY

PURPOSE:       Places keys in the keyboard buffer.  This can be done one of
               two ways, the first way is to give the string of characters 
               you want pushed, the second is to give the SCAN code and
               ASCII code of the keys you want pushed.

SYNTAX:        PUSHKEY [SWITCH] [PARAMETER1] <PARAMETER2>

     SWITCHES: *A   -    Specifies that PARAMETER1 will be a string of
                         characters you wish to have placed in the
                         keyboard buffer which will have a RETURN appended
                         at the end of it.
               *S   -    Specifies that a list of ASCII codes and SCAN
                         codes of the characters you want PUSHED will be
                         given.  In this case, PARAMETER1 will be the
                         ASCII code of the first character and PARAMETER2 
                         will be the SCAN code of the first character you 
                         want PUSHED.  Both ASCII CODE and SCAN CODE must 
                         be given unless it is not in the extended character 
                         set, then you would just pass 0 as the SCAN CODE.


SAMPLE CALL:   (1)  PUSHKEY *S 69 0 68 0 73 0 84 0 32 0 67 0 58 0 92 0 71 0
                    79 0 46 0 66 0 65 0 84 0 13 0
               (2)  PUSHKEY *A "EDIT C:\GO.BAT"
               (3)  PUSHKEY *S 0 61

COMMENTS:      Sample calls #1 and #2 both will push "EDIT C:\GO.BAT" into 
               the keyboard buffer along with a RETURN. Maximum of 15 
               characters.

               Sample call #3 will push the F3 key into the keyboard buffer.

ASSOCIATED COMMANDS:































PUTVOLUME

PURPOSE:       Writes the given volume label to the given disk drive.

SYNTAX:        PUTVOLUME [DRIVE LETTER:] [VOLUME LABEL]

SAMPLE CALL:   (1)  PUTVOLUME A: DISK1
               (2)  PUTVOLUME A:

COMMENTS:      Sample call #1 will change the Volume Label on the disk in 
               drive A: to DISK1.

               Sample call #2 will delete the Volume Label on the disk in 
               drive A:.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,                                             
                         GETVOLUME, INVENTORY, MOVE, REN, RENDIR

















































RCROP

PURPOSE:       Extracts n# of characters from the right side of the given
               string and stores them in the given variable.

SYNTAX:        RCROP ["SOURCE"] [NUMBER OF CHARACTERS] [VARIABLE NAME]

SAMPLE CALL:   EQU STRING "PATH = C:\DOS"
               RCROP @STRING@ 4 STRING2

COMMENTS:      In the previous sample call the 4 rightmost characters of 
               "PATH = C:\DOS" will be placed in the variable STRING2.  The 
               value stored in STRING2 in this sample call will be "\DOS".

ASSOCIATED COMMANDS:     CONCAT, CROP, EXTRACTI, INLINE, LCROP, LENGTH,
                         LTRIM, RTRIM


















































RD

PURPOSE:       Delete a directory.

SYNTAX:        RD [<DRIVE\PATH\>DIRECTORY]

SAMPLE CALL:   RD C:\TEST

COMMENTS:      The directory which is to be deleted can only be deleted if 
               there are no files or sub directories in it.

ASSOCIATED COMMANDS:     CD, MD






















































READLINE

PURPOSE:       Reads the specified line number from the given file and
               stores it in the given variable..

SYNTAX:        READLINE [<DRIVE\PATH\>FILENAME] [LINE NUMBER] [VARIABLE NAME]

SAMPLE CALL:   READLINE C:\AUTOEXEC.BAT 5 LINE

COMMENTS:      The previous sample call will read the 5th line in the
               AUTOEXEC.BAT file and store the value in the variable LINE.

ASSOCIATED COMMANDS:     ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT, 
                         REMOVESECTION, REMOVETEXT




















































REBOOT

PURPOSE:       Performs a WARM or COLD boot depending on user's request.

SYNTAX:        REBOOT <OPTION>

     OPTIONS:  1. COLD
               2. WARM

SAMPLE CALL:   (1)  REBOOT
               (2)  REBOOT COLD
               (3)  REBOOT WARM

COMMENTS:      If no OPTION is given the default is COLD.

               Sample call #1 and #2 will do a COLD boot which is like
               powering the system up or pressing the reset button.

               Sample call #3 will do a WARM boot which is like pressing
               Ctrl Alt Delete.

ASSOCIATED COMMANDS:     EXIT












































REFRESH

PURPOSE:       Refreshes the entire screen using the current MASTERBACK,
               MASTERFORE, WINBACK and WINFORE colors currently defined.

SYNTAX:        REFRESH

SAMPLE CALL:   REFRESH

COMMENTS:      This command also erases all the text in the PROGRESS and 
               ERRORS windows.

               REFRESH uses the WINBACK and WINFORE colors to refresh the
               PROGRESS and ERRORS windows. It uses the MASTERBACK and
               MASTERFORE colors to refresh everything else.

               If all you want to do is change the colors of any new
               windows you open but not anything else, do not issue this
               command.  REFRESH is not needed to change the colors of
               anything accept those things already displayed on the screen 
               by default.  Typically it will only be used to change the colors of the
               PROGRESS window and the ERRORS window.

ASSOCIATED COMMANDS:     MASTERBACK, MASTERFORE, MENUITEMBACK,
                         MENUITEMFORE, WINBACK, WINFORE









































RELEASE

PURPOSE:       Erases the given variable.

SYNTAX:        RELEASE [VARIABLE NAME]

SAMPLE CALL:   RELEASE STRING1

COMMENTS:      It is always good to RELEASE a variable when you are finished
               using it so that you don't reach the limit.

ASSOCIATED COMMANDS:     LISTVARS, RELEASEALL






















































RELEASEALL

PURPOSE:       Erases all currently defined variables.

SYNTAX:        RELEASEALL

SAMPLE CALL:   RELEASEALL

COMMENTS:

ASSOCIATED COMMANDS:     LISTVARS, RELEASE























































REMOVESECTION

PURPOSE:       Removes an entire section from a text file that uses file 
               formatting conventions like those found in WINDOWS INI files 
               and multiple boot configurations in the CONFIG.SYS file.

SYNTAX:        REMOVESECTION [<DRIVE\PATH\>FILENAME] ["[SECTION NAME]"]

SAMPLE CALL:   REMOVESECTION C:\WINDOWS\WIN.INI "[DESKTOP]"

COMMENTS:      The previous sample call will delete the first line with a 
               heading of [DESKTOP] and all lines after it up to the next 
               section heading or to the end of the file, which ever comes 
               first.

ASSOCIATED COMMANDS:     ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT,
                         READLINE, REMOVETEXT 

















































REMOVETEXT

PURPOSE:       Removes text from a text file by specifying a sub string of 
               the line you want to remove.

SYNTAX:        REMOVETEXT [<DRIVE\PATH\>FILENAME] ["SUB STRING"] <*SWITCH>                          
               <SUB STRING1> <*SWITCH> <SUBSTRING2>  .............

     SWITCHES: *P   -    The line that is to be deleted must be found before 
                         the SUB STRING given with this switch is found in 
                         the file.  This switch can only be used once.
               *A   -    The line that is to be deleted must be found after 
                         the SUB STRING given with this switch is found in 
                         the file.  This switch can only be use once.
               *E   -    When this switch is given, every line that meets 
                         the criteria for deletion will be deleted.
               *N   -    The line that is to be deleted can not contain the 
                         SUB STRING given after this switch.  You can use 
                         this switch up to 10 times.


SAMPLE CALL:   (1)  REMOVETEXT C:\AUTOEXEC.BAT PROMPT
               (2)  REMOVETEXT C:\AUTOEXEC.BAT "PATH" *A "PROMPT" *P "DOSKEY" 
                    *N "SET PATH"

COMMENTS:      Sample call #1 will delete the first line that has
               the string PROMPT contained in it.

               Sample call #2 will delete the first line that meets the 
               following conditions:

               1.  The line must contain PATH.
               2.  The line must not contain SET PATH.
               3.  A line that contains DOSKEY must not have been found yet.
               4.  A line that contains PROMPT must have already been found.

ASSOCIATED COMMANDS:     ADDGROUP, DELGROUP, INSERTTEXT, NUMLINES, PULLTEXT, 
                         READLINE, REMOVESECTION




























REN

PURPOSE:       Renames the given file(s) to the new name specified.

SYNTAX:        REN [<DRIVE\PATH\>CURRENT FILENAME] [NEW FILENAME] <SWITCH>

     SWITCHES: *S   -    Renames files found in all sub directories.


SAMPLE CALL:   (1)  REN C:\DATA\FILE.EXE NEWFILE.EXE
               (2)  REN C:\*.BAT *.BAK *S

COMMENTS:      NEW FILENAME must be given with NO PATH.  Dos wild card
               conventions can be used.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
                         GETVOLUME, INVENTORY, MOVE, PUTVOLUME, RENDIR









































                         







RENDIR

PURPOSE:       Renames the given directory to the new name specified.

SYNTAX:        REN [<DRIVE\PATH\>CURRENT DIRECTORY NAME] [NEW DIRECTORY NAME]

SAMPLE CALL:   REN C:\DATA MYDATA

COMMENTS:      NEW DIRECTORY must be given with NO PATH.

ASSOCIATED COMMANDS:     ATTRIBUTE, COPY, DEL, FILEDATE, FILESIZE, FILETIME,
                         GETVOLUME, INVENTORY, MOVE, PUTVOLUME, REN









































                         












RTRIM

PURPOSE:       Remove trailing spaces from a string or remove a specified
               number of character from the right side of the given string
               and store the remainder in the given variable.

SYNTAX:        RTRIM ["SOURCE"] [VARIABLE NAME] <NUMBER OF CHARACTERS>

SAMPLE CALL:   (1)  RTRIM "Hello World     " STRING2
               (2)  RTRIM "Hello World" STRING2 6

COMMENTS:      Sample call #1 will remove the trailing spaces and store 
               "Hello World" in the variable STRING2.

               Sample call #2 will remove the last 6 characters from 
               "Hello World" and store "Hello" in the variable STRING2.

               If you specify the number of characters to remove and the
               string has trailing spaces, the spaces are not
               automatically removed but considered as actual characters 
               which count against the number of characters you specified 
               to remove.

ASSOCIATED COMMANDS:     CONCAT, CROP, EXTRACTI, INLINE, LCROP, LENGTH,
                         LTRIM, RCROP









































SSL

PURPOSE:       Executes the given script file.

SYNTAX:        SSL [<DRIVE\PATH\>FILENAME]

SAMPLE CALL:   SSL C:\SCRIPTS\INSTALL.SSL

COMMENTS:      All currently defined variables are passed to the script being
               executed.

ASSOCIATED COMMANDS:






















































SUB

PURPOSE:       Subtracts two numbers and stores the value in the given
               variable.

SYNTAX:        SUB [NUMBER1] [NUMBER2] [VARIABLE NAME]

SAMPLE CALL:   EQU COUNT 10
               SUB 50 @COUNT@ ANSWER

COMMENTS:      Numbers and or variables can be used.  In the previous sample
               call the value of ANSWER will be 40.

ASSOCIATED COMMANDS:     ADD, DIV, MOD, MULT




















































WAIT

PURPOSE:       Pauses execution of the script and prompts user to 
               "Press any key to continue!".

SYNTAX:        WAIT

SAMPLE CALL:   WAIT

COMMENTS:

ASSOCIATED COMMANDS:     DISPLAY






















































WHILE

PURPOSE:       The WHILE command will test a certain condition and execute
               the instructions following the WHILE command up to the
               associated LOOP command which will then cause control to 
               return back to the original WHILE command.  This process will
               continue until the condition given to the WHILE command
               is false.  The conditional statements and logical operators 
               are the same as used in the IF command.  Please refer to the 
               IF command for further explanations of the conditional 
               statements and logical operators.

SYNTAX:        WHILE [CONDITION] <LOGICAL OPERATOR> <CONDITION> ...
                    instructions
                    .
                    .
                    .
               LOOP

SAMPLE CALL:   EQU COUNTER1 5
               EQU COUNTER2 0
               WHILE > COUNTER1 COUNTER2
                    DISPLAY COUNTER2
                    ADD @COUNTER2@ 1 COUNTER2
               LOOP

COMMENTS:      In the previous sample call the value of COUNTER2 will 
               continue to be printed to the PROGRESS window until it is 
               equal to the value of COUNTER1.  The following will be                 
               printed to the PROGRESS window:

                         0
                         1
                         2
                         3
                         4

               Nested WHILE LOOPs are permitted.  Any variables used in a
               WHILE LOOP need to be initialized before use.

ASSOCIATED COMMANDS:     GOTO, IF

























WINBACK

PURPOSE:       Changes the background color of a window.

SYNTAX:        WINBACK [COLORCOLOR]

     AVAILABLE COLORS:   BLACK
                         BLUE
                         GREEN
                         CYAN
                         RED
                         MAGENTA
                         BROWN
                         LIGHTGRAY

SAMPLE CALL:   WINBACK BLUE

COMMENTS:

ASSOCIATED COMMANDS:     MASTERBACK, MASTERFORE, MENUITEMBACK,
                         MENUITEMFORE, REFRESH, WINFORE













































WINFORE

PURPOSE:       Changes the foreground color of a window.

SYNTAX:        WINFORE [COLORCOLOR]

     AVAILABLE COLORS:   BLACK
                         BLUE
                         GREEN
                         CYAN
                         RED
                         MAGENTA
                         BROWN
                         LIGHTGRAY
                         DARKGRAY
                         LIGHTBLUE
                         LIGHTGREEN
                         LIGHTCYAN
                         LIGHTRED
                         LIGHTMAGENTA
                         YELLOW
                         WHITE

SAMPLE CALL:   WINFORE BLUE

COMMENTS:

ASSOCIATED COMMANDS:     MASTERBACK, MASTERFORE, MENUITEMBACK,
                         MENUITEMFORE, REFRESH, WINBACK

