home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / blngs2.zip / B2Remove.Cmd < prev    next >
OS/2 REXX Batch file  |  1993-12-27  |  5KB  |  162 lines

  1. /***************************************************************************/
  2. /* B2REMOVE.CMD                                                            */
  3. /*                                                                         */
  4. /* Removes the "Belongs2" program, directory, and folder.                  */
  5. /*                                                                         */
  6. /* Revisions:                                                              */
  7. /*     12/20/93 1.0 - Created.                                             */
  8. /***************************************************************************/
  9.  
  10.    targetdir = 'Belongs 2'
  11.    FATdir = 'BELONGS2'
  12.  
  13. /* Load REXX Utility Functions */
  14.  
  15.    if AddRexxUtil( 'SysDestroyObject' ) then signal ERROR
  16.    if AddRexxUtil( 'SysSetObjectData' ) then signal ERROR
  17.  
  18. /* Get arguments */
  19.  
  20.    parse upper arg targetdrive extra
  21.  
  22. /* Verify target drive argument */
  23.  
  24.    do forever
  25.       if LENGTH( targetdrive ) > 2 then
  26.          say 'Too many characters - enter a drive letter'
  27.       else if LENGTH( targetdrive ) > 0 then do
  28.          if DATATYPE( SUBSTR( targetdrive, 1, 1 ), 'Mixed case' ) = 0 then
  29.             say 'First character must be a drive letter'
  30.          else do
  31.             if LENGTH( targetdrive ) = 1 then do
  32.                targetdrive = targetdrive':'
  33.                leave
  34.             end  /* Do */
  35.             else do
  36.                if SUBSTR( targetdrive, 2, 1 ) = ':' then
  37.                   leave
  38.                else do
  39.                   say 'Second character must be : or omitted'
  40.                end  /* Do */
  41.             end  /* Do */
  42.          end  /* Do */
  43.       end  /* Do */
  44.       say 'Enter drive where program executable was installed:'
  45.       pull targetdrive
  46.    end /* do */
  47.  
  48. /* Suppress command display */
  49.  
  50.    '@echo off'
  51.  
  52. /* See if directory exists */
  53.  
  54.    curdir = directory()
  55.    newdir = targetdrive'\'targetdir
  56.    if directory( newdir ) = newdir then do
  57.    /* Change to the root directory so directory can be deleted */
  58.       newdir = targetdrive'\'
  59.       call directory newdir
  60.    /* Change back to original directory */
  61.       call directory curdir
  62.    /* Delete all programs in directory */
  63.       'del "'targetdrive'\'targetdir'\*.exe"'
  64.       if rc = 0 then
  65.          say 'All programs in "'targetdrive'\'targetdir'" directory have been deleted'
  66.       else
  67.          say 'No programs in "'targetdrive'\'targetdir'" directory'
  68.    /* Delete directory */
  69.       'rd "'targetdrive'\'targetdir'"'
  70.       if rc = 0 then
  71.          say 'Directory "'targetdrive'\'targetdir'" deleted'
  72.       else do
  73.          say 'Unable to delete directory "'targetdrive'\'targetdir'"'
  74.          signal ERROR
  75.       end  /* Do */
  76.    end  /* Do */
  77.    else do
  78.    /* Try FAT file system */
  79.       targetdir = FATdir
  80.       newdir = targetdrive'\'targetdir
  81.       if directory( newdir ) = newdir then do
  82.       /* Change to the root directory so directory can be deleted */
  83.          newdir = targetdrive'\'
  84.          call directory newdir
  85.       /* Change back to original directory */
  86.          call directory curdir
  87.       /* Delete all programs in directory */
  88.          'del "'targetdrive'\'targetdir'\*.exe"'
  89.          if rc = 0 then
  90.             say 'All programs in "'targetdrive'\'targetdir'" directory have been deleted'
  91.          else
  92.             say 'No programs in "'targetdrive'\'targetdir'" directory'
  93.       /* Delete directory */
  94.          'rd "'targetdrive'\'targetdir'"'
  95.          if rc = 0 then
  96.             say 'Directory "'targetdrive'\'targetdir'" deleted'
  97.          else do
  98.             say 'Unable to delete directory "'targetdrive'\'targetdir'"'
  99.             signal ERROR
  100.          end  /* Do */
  101.       end  /* Do */
  102.       else
  103.          say 'Directory does not exist on' targetdrive
  104.    end  /* Do */
  105.  
  106. /* Make the program object deletable */
  107.  
  108.    setup = 'NODELETE=NO;'
  109.    result = SysSetObjectData( '<BELONGS2_PROGRAM>', setup );
  110.  
  111. /* Delete the program object */
  112.  
  113.    result = SysDestroyObject( '<BELONGS2_PROGRAM>' )
  114. /* Make sure object no longer exists */
  115.    if SysSetObjectData( '<BELONGS2_PROGRAM>', setup ) = 1 /* updated */ then do
  116.       say 'Unable to delete program object'
  117.       signal ERROR
  118.    end  /* Do */
  119.    else do
  120.    /* Display what happened with SysDestroyObject */
  121.       if result = 1 /* deleted */ then
  122.          say 'Program object deleted'
  123.       else
  124.          say 'Program object does not exist'
  125.    end  /* Do */
  126.  
  127. /* Delete hidden Startup folder */
  128.  
  129.    result = SysDestroyObject( '<HIDDEN_STARTUP>' )
  130. /* Make sure folder no longer exists */
  131.    setup = 'OBJECTID=<HIDDEN_STARTUP>;'
  132.    if SysSetObjectData( '<HIDDEN_STARTUP>', setup ) = 1 /* updated */ then do
  133.       say 'Unable to delete hidden Startup folder'
  134.       signal ERROR
  135.    end  /* Do */
  136.    else do
  137.    /* Display what happened with SysDestroyObject */
  138.       if result = 1 /* deleted */ then
  139.          say 'Hidden startup folder deleted'
  140.       else
  141.          say 'Hidden Startup folder does not exist'
  142.    end  /* Do */
  143.  
  144. ERROR:
  145.    exit
  146.  
  147. /* AddRexxUtil procedure */
  148.  
  149. AddRexxUtil: procedure
  150.  
  151.    parse arg name
  152.  
  153.    if RxFuncQuery( name ) \= 0 /* not registered */ then do
  154.       if RxFuncAdd( name, 'RexxUtil', name ) \= 0 /* not successful */ then do
  155.           say 'Unable to register REXX Utility Function' name
  156.           return 1 /* failure */
  157.       end  /* Do */
  158.    end  /* Do */
  159.  
  160.    return 0 /* success */
  161.  
  162.