home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lansystk.zip / MPTSUTIL / APPLETS / CASRXRM.CMD < prev    next >
OS/2 REXX Batch file  |  1998-05-08  |  3KB  |  142 lines

  1. /* Stripped by STRIPRX.EXE */
  2. rxrm:
  3. parse arg cmdline
  4. rmrc = 0
  5. NO = 0
  6. YES = 1
  7. CALL RxFuncAdd 'SysLoadFuncs','REXXUTIL','SysLoadFuncs'
  8. CALL SysLoadFuncs
  9. IF ParseCmdLine(STRIP(cmdline,'b')) THEN
  10. IF glob.fspec.0 > 0 THEN
  11. DO i = 1 to glob.fspec.0
  12. CALL ON ERROR NAME SFTerror 
  13. IF IsAmbiguous(glob.fspec.i)=NO | glob.recurse=YES THEN
  14. CALL SysFileTree glob.fspec.i,"STEM","B"
  15. ELSE
  16. CALL SysFileTree glob.fspec.i,"STEM","F"
  17. CALL OFF ERROR 
  18. IF STEM.0 > 0 THEN
  19. DO j = 1 to STEM.0
  20. TheLine = STEM.j
  21. PARSE VAR TheLine . . . attribs fname
  22. CALL DoAnErase STRIP(fname,'b'),STRIP(attribs,'b')
  23. END
  24. ELSE
  25. IF glob.quiet = NO THEN
  26. SAY 'rxrm: "'glob.fspec.i'" not found.'
  27. END
  28. RETURN rmrc
  29. SFTerror: 
  30. rmrc = 1
  31. RETURN
  32. ParseCmdLIne: PROCEDURE EXPOSE glob. YES NO
  33. parse arg cmdline
  34. glob.prompt = NO 
  35. glob.recurse = NO 
  36. glob.remro = NO 
  37. glob.quiet = NO 
  38. glob.fspec.0 = 0 
  39. DO WHILE LEFT(cmdline,1) = "-" | LEFT(cmdline,1) = "/"
  40. PARSE VAR cmdline term cmdline
  41. DO i = 2 to LENGTH(term) 
  42. c = TRANSLATE(SUBSTR(term,i,1))
  43. SELECT
  44. WHEN c = "Q" THEN glob.quiet = YES
  45. WHEN c = "I" THEN glob.prompt = YES
  46. WHEN c = "R" THEN glob.recurse = YES
  47. WHEN c = "F" THEN glob.remro = YES
  48. OTHERWISE nop
  49. END 
  50. END 
  51. END 
  52. DO WHILE cmdline <> ""
  53. PARSE VAR cmdline ThisSpec cmdline
  54. i = glob.fspec.0 + 1
  55. glob.fspec.i = ThisSpec
  56. glob.fspec.0 = i
  57. END
  58. RETURN YES
  59. DoAnErase: PROCEDURE EXPOSE glob. YES NO rmrc
  60. parse arg fspec,attribs
  61. DoIt = YES
  62. IsDirectory = NO
  63. IF SUBSTR(attribs,2,1) = "D" THEN
  64. DO
  65. IsDirectory = YES
  66. IF glob.prompt=YES THEN
  67. DoIt = DirPrompt(fspec)
  68. IF DoIt = YES THEN
  69. DO
  70. dirspec = fspec
  71. IF RIGHT(dirspec,1) <> "\" THEN
  72. dirspec = dirspec || "\"
  73. dirspec = dirspec || "*.*"
  74. IF glob.recurse = YES THEN
  75. CALL SysFileTree dirspec,"STEM","B"
  76. ELSE
  77. CALL SysFileTree dirspec,"STEM","F"
  78. DO i = 1 to STEM.0
  79. TheLine = STEM.i
  80. PARSE VAR TheLine . . . dattrib dfname
  81. CALL DoAnErase STRIP(dfname,'b'),STRIP(dattrib,'b')
  82. END
  83. daerc = SysRmDir(fspec)
  84. IF daerc <> 0 THEN
  85. DO
  86. IF glob.quiet = NO THEN
  87. SAY "rxrm: Unable to remove directory" fspec".  Return code was" daerc"."
  88. rmrc = rmrc + 1
  89. END
  90. END
  91. END
  92. ELSE
  93. DO
  94. IF glob.prompt = YES THEN
  95. DoIt = FilePrompt(fspec)
  96. IF DoIt = YES THEN
  97. DO
  98. daerc = SysFileDelete(fspec)
  99. IF daerc <> 0 THEN
  100. IF daerc = 5 & glob.remro THEN
  101. DO
  102. CALL SysFileTree fspec,"X","F",,"***-*" 
  103. daerc = SysFileDelete(fspec)
  104. END
  105. IF daerc <> 0 THEN
  106. DO
  107. IF glob.quiet = NO THEN
  108. SAY "rxrm: Unable to remove file" fspec".  Return code was" daerc"."
  109. rmrc = rmrc + 1
  110. END
  111. END
  112. END
  113. RETURN 
  114. DirPrompt: PROCEDURE EXPOSE YES NO
  115. parse arg dirspec
  116. DO WHILE queued()
  117. PARSE PULL junk
  118. END
  119. SAY "Remove files in directory" dirspec"?"
  120. PARSE PULL answer
  121. IF LEFT(TRANSLATE(STRIP(answer,'b')),1) = "Y" THEN
  122. RETURN YES
  123. ELSE
  124. RETURN NO
  125. FilePrompt: PROCEDURE EXPOSE YES NO
  126. parse arg fspec
  127. DO WHILE queued()
  128. PARSE PULL junk
  129. END
  130. SAY "Remove file" fspec"?"
  131. PARSE PULL answer
  132. IF LEFT(TRANSLATE(STRIP(answer,'b')),1) = "Y" THEN
  133. RETURN YES
  134. ELSE
  135. RETURN NO
  136. IsAmbiguous: PROCEDURE EXPOSE YES NO
  137. parse arg fspec
  138. IF POS('*',fspec) > 0 | POS('?',fspec) > 0 THEN
  139. RETURN YES
  140. ELSE
  141. RETURN NO
  142.