home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / podstawy / dos / 4dos / 4uzytki / ez-btm11.exe / FINDALL.BTM < prev    next >
Text File  |  1994-05-05  |  4KB  |  119 lines

  1. :: FINDALL.BTM
  2. set source=%@search[%0]
  3. :: %@filename[%source] - Looks for specified files, or a string thereof,
  4. :: using Ledbetter's (c) WHEREIS (STT), then searches diskette catalogue
  5. :: created with David Frey's DFC.BTM (c), then calls results to screen
  6. :: via Buerg's (c) LIST (or 4DOS internal command "list").
  7. :  Basic routines based on David Frey's DFC.BTM.
  8. :  Last edited September 3, 1992; HELP modified March 30, 1994
  9. :  By Itamar Even-Zohar
  10. :: --------------------
  11. :: SYNTAX:
  12. :: FINDALL filename, or "string"
  13. :: where "string" means: any string anywhere in the filename or its
  14. :: description.
  15. :: NOTE: "string" MUST be put between inverted commas.
  16. :: NOTE: You can use filenames without extension. If you use
  17. :: wildcards, no efficient search in the catalogue will be executed.
  18.  
  19. :----Batch begins here--------------------------------
  20. if "%&" == "" goto help
  21. goto check_whereis
  22.  
  23. :check_whereis
  24. rem      Finds out if Ledbetter's program is found on your path.
  25. iff "%@search[whereis.exe]" =="" .and. "%@search[SST.exe]" =="" then
  26. echo.
  27. echo You need Ledbetter's SST (formerly WHEREIS) to run this sub-program
  28. quit
  29. endiff
  30.  
  31. :get
  32. echo.
  33. echos Searching for:  %&
  34. echo.
  35. echo Please wait...
  36.  
  37. setlocal
  38.  
  39. call settemp.btm
  40. set findall=%temp%findall.tmp
  41.  
  42. :set_whereis
  43. rem     Sets variable "whereis" to either WHEREIS or SST (whatever is
  44. :       found on disk).
  45. iff "%@search[whereis.Exe]" =="" .and. not "%@search[SST.Exe]" =="" then
  46. set whereis=sst
  47.   else
  48. set whereis=whereis
  49.   endiff
  50.  
  51. gosub list?
  52.  
  53. rem     Search performed by WHEREIS.EXE (or SST.EXE) on the whole disk,
  54. :       including archives.
  55.  
  56. (echo.^echo Files found on disk  
  57.  echo ──────────────────────────────────────────────────────────────────────────── ^
  58. %whereis %& -o"&f &m" -a) >%findall
  59.  
  60. :match1
  61. :      This procedure checks if anything at all was found by looking
  62. :      at the 4th line. If this line contains '*EOF*', then nothing
  63. :      was found.
  64. iff %@index[%@line[%findall,3],*EOF*] ge 0 then
  65. echo ==`>` No match found on disk for "%&" >>%findall
  66. echo.
  67. endiff
  68.  
  69. (echo.^echo Files found in Catalogue of Diskettes:^echo (Press W to see full text of description)^echo Disk        Scanned  File             Size      Date   Time Description      ^
  70.  echo ──────────────────────────────────────────────────────────────────────────── ^
  71.  grep -i "%&" %diskdb) >>%findall
  72.  
  73. :match2
  74. :      This procedure checks if anything at all was found by looking
  75. :      at the LAST line. If this line contains '──' (part of the longer
  76. :      line), then nothing was found in the catalogue.
  77. iff %@index[%@line[%findall,%@lines[%findall]],──] ge 0 then
  78. echo ==`>` No match found in %diskdb for "%&" >>%findall
  79. endiff
  80.  
  81. :callfile
  82. %list %findall
  83.  
  84. endlocal
  85. quit
  86.  
  87. :=== HELP ===
  88. :help
  89. set lnumber=2
  90. :: (modify if necessary)
  91. iff exist %@search[masthelp] then
  92.     call masthelp
  93.     unset lnumber source
  94.     cancel
  95. else
  96.     cls^screen 3 4           You must have %@upper[masthelp.btm]
  97.     screen %@eval[%_row+1] 4 for this HELP procedure to work
  98.     echo.
  99.     quit
  100. endiff
  101. :==============SUB-ROUTINES================
  102. :list?
  103. rem     Cancels a "list" alias, if it exists.
  104. iff not "%@alias[list]" == "" then
  105. unalias list
  106. endiff
  107. gosub list??
  108. return
  109. :
  110. :list??
  111. rem     Checks if Buerg's LIST exists; else sets
  112. rem     4DOS internal command ("list").
  113. iff not "%@search[list.com]" == "" then
  114. set list=%@search[list.com]
  115.  else
  116. set list=list
  117.  endiff
  118. return
  119.