home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / GLEN / IS.ZIP / IS.DOC < prev    next >
Text File  |  1990-01-10  |  8KB  |  215 lines

  1.  
  2.  
  3.                        IS - Batch File Condition Utility
  4.  
  5.                              By Byte_Magic Software
  6.  
  7.                     Usage:  IS "function1" condition "function2"
  8.  
  9.  
  10.     General:
  11.  
  12.         IS is used in batch files to check the truth of a statement
  13.     regarding two supported functions. If the statment is true, IS returns
  14.     ERRORLEVEL 0. If the statement is false IS returns ERRORLEVEL 1.
  15.  
  16.  
  17.     Functions:
  18.  
  19.         IS supports functions for literal strings, user input, system date
  20.     and time, file date, file time, file size, disk size, and disk free
  21.     space. Since this program runs from batch files, it must conform to the
  22.     way DOS interprets the command line. The double quotes around each
  23.     function are there to force DOS to accept the function as one entity
  24.     even if it contains embedded spaces or tab characters. If the function
  25.     in its entirety contains no spaces or tabs you can safely omit the
  26.     qoutes.
  27.  
  28.  
  29.         The syntax for the supported functions is explained below.
  30.  
  31.  
  32.         User Input:   IS input[(prompt)] ...
  33.  
  34.  
  35.         The optional prompt will be displayed at the current cursor
  36.     position and IS will wait for the user to enter something. Input stops
  37.     when the user presses <enter>.
  38.  
  39.  
  40.         System Date:  IS sysdate ...
  41.  
  42.         System Time:  IS systime ...
  43.  
  44.  
  45.         Two simple functions, sysdate and systime return the system date
  46.     and the system time. The system date has the format mm/dd/yy, and the
  47.     system time has the format hh:mm:ss.
  48.  
  49.  
  50.         File Date:    IS filedate([d:][\path\]filename.ext) ...
  51.  
  52.         File Time:    IS filetime([d:][\path\]filename.ext) ...
  53.  
  54.  
  55.         The filedate and filetime functions search for the required file in
  56.     the current drive and directory, or the optionally specified drive and
  57.     path, and returns the date or the time of last modification. The date
  58.     has the format mm/dd/yy and the time has the format hh:mm.
  59.  
  60.  
  61.         File Size:    IS filesize([d:][\path\]filename.ext) ...
  62.  
  63.  
  64.         The filesize function searches for the required file in the current
  65.     drive and directory or on the optionally specified drive and path and
  66.     returns the size of the file.
  67.  
  68.  
  69.         Disk Free:    IS diskfree[(drive)]
  70.  
  71.         Disk Size:    IS disksize[(drive)]
  72.  
  73.  
  74.         The diskfree function returns the free space on the current drive
  75.     or on the optionally specified drive given on the command line. The
  76.     disksize returns the total size of either the current drive or the
  77.     optional drive specified on the command line.
  78.  
  79.  
  80.     Conditions:
  81.  
  82.         IS accepts the conditions listed below:
  83.  
  84.  
  85.                   IS condition              Means
  86.                   ------------          ------------------------------
  87.                       eq                  equal to
  88.                       gt                  greater than
  89.                       lt                  less than
  90.                       le                  less than or equal to
  91.                       ge                  greater than or equal to
  92.                       neq                 not equal to
  93.                       ngt                 not greater than
  94.                       nlt                 not less than
  95.                       nle                 not less than or equal to
  96.                       nge                 not greater than or equal to
  97.  
  98.  
  99.         When comparing the strings which result from each function, as well
  100.     as the user input strings and literal strings, IS always converts
  101.     everything to lowercase before doing any comparisons. That means 'Y' is
  102.     equal to 'y' and 'PASSword' is equal to 'passWORD'. Also, strings are
  103.     compared from left to right and the comparison is over when a pair of
  104.     characters fails to match. That means 'abcx' is greater than 'abcdefg'
  105.     even though the last string is longer.
  106.  
  107.  
  108.         There are two exceptions to the way that IS compares the results of
  109.     the functions.  When both strings are dates, IS converts them to YYMMDD
  110.     format before the comparison. Also, when both strings consist of only
  111.     numeric digits, IS converts the strings to numbers before the
  112.     comparison. If the conversions above were not done, the string
  113.     comparison would cause IS to report that 10/22/86 is greater than
  114.     05/22/88, and that 999 is greater than 1000.
  115.  
  116.  
  117.     Statements:
  118.  
  119.         IS statements are made up of a function, a condition and another
  120.     function. The format of a statement is the same as for a question:
  121.  
  122.  
  123.                         IS function1 condition function2
  124.  
  125.  
  126.         Some of the possible statements that can be used inside a batch
  127.     file are:
  128.  
  129.  
  130.          IS filesize(somefile.ext) gt diskfree(a)
  131.  
  132.          IS systime gt 16:00
  133.  
  134.          IS "input(Enter Your Password: )" eq %password%
  135.  
  136.          IS "Mighty User" eq "input(Enter your first and last name: )"
  137.  
  138.          IS sysdate gt filedate(audit.dat)
  139.  
  140.          IS disksize(c) eq 21204992
  141.  
  142.  
  143.         If the answer to the statement is TRUE, IS returns ERRORLEVEL 0. If
  144.     the answer is FALSE, IS returns ERRORLEVEL 1. (0 is TRUE, 1 is FALSE).
  145.  
  146.  
  147.         Unsupported functions, errors in a function, and errors in a
  148.     condition also have unique ERRORLEVEL return codes. The error codes
  149.     are:
  150.  
  151.  
  152.                     Bad or Unsupported        Returns
  153.                     ------------------      -------------
  154.                        function1            ERRORLEVEL 11
  155.                        function2            ERRORLEVEL 12
  156.                        condition            ERRORLEVEL 13
  157.  
  158.  
  159.         Errors in functions might be attempts to get the filesize of a non-
  160.     existent file or free space on a non-existent drive, as well as
  161.     requests for functions that are not built into IS.
  162.  
  163.  
  164.     Batch File Logic:
  165.  
  166.         The ERRORLEVEL returned by IS to the batch file can be checked with
  167.     the IF ERRORLEVEL command. The batch processor is peculiar about the
  168.     way it checks this ERRORLEVEL. . .
  169.  
  170.  
  171.         Batch file contains:  "IF ERRORLEVEL 1"
  172.  
  173.         DOS thinks it means:  "IF ERRORLEVEL is greater than or equal to 1"
  174.  
  175.  
  176.         This causes a problem when checking on the answer returned by IS.
  177.     If you simply run IS and then check for falsity with 'IF ERRORLEVEL 1',
  178.     you will be misled by DOS in the event of an error in either function
  179.     or the condition. To be sure that you interpret IS's answer correctly,
  180.     you should check for a false statement with:
  181.  
  182.  
  183.               'IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 GOTO FALSE'
  184.                              actions for true here
  185.  
  186.                                        or
  187.  
  188.               'IF ERRORLEVEL 2 GOTO ERROR'      (ERRORLEVEL >= 2 ?)
  189.               'IF ERRORLEVEL 1 GOTO FALSE'      (ERRORLEVEL >= 1 ?)
  190.                   actions for true here
  191.  
  192.  
  193.         Check an IS statement for truth with:
  194.  
  195.  
  196.               'IF NOT ERRORLEVEL 1 GOTO TRUE'
  197.                   actions for false here
  198.  
  199.                                 or
  200.  
  201.               'IF ERRORLEVEL 2 GOTO ERROR'     (ERROORLEVEL >= 2 ?)
  202.               'IF NOT ERRORLEVEL 1 GOTO TRUE'  (ERRORLEVEL < 1 ?)
  203.                   actions for false here
  204.  
  205.  
  206.         The above examples assume there are labels ':TRUE' and ':FALSE' in
  207.     the batch file.
  208.  
  209.  
  210.         There is a demo batch file included with IS to show how the utility
  211.     might be used. Read it and you will have advanced control over the way
  212.     your batch files interact with their environment.
  213.  
  214.  
  215.