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

  1. :: COMF.BTM (=executes a command on a take file)
  2. :: Reads a specified file which contains a list of filenames
  3. :: and executes desired operation on each of the filenames one by one.
  4. ::       Example: if you have a list of files which you wish to copy
  5. ::       to a target, instead of putting "copy" at the beginning
  6. ::       and the target name at the end of each line, you run this batch.
  7. :--------------------------------------------------------------------
  8. : Note: This file is a different version for COMFILE.BTM. It uses the
  9. : FOR procedure rather than reads the take file line by line. The same
  10. : procedure is also used for counting the number of files handled.
  11. : Itamar Even-Zohar, Tel Aviv University (itiez@ccsg.tau.ac.il)
  12. : Last edited March 7, 1993
  13. :--------------------------------------------------------------------
  14. :syntax
  15. iff .%1==. .or. .%2==. then
  16.   echo.
  17.   text
  18.    SYNTAX:
  19.    COMF <filename> <command> [target]
  20.     (for example: COMF filelist copy a:)
  21.     ('comfile filelist copy a:' will copy all files specified
  22.      in FILELIST to drive a:
  23.     (switches allowed if separated by only one space: 'copy /p', 'dir /klm')
  24.   endtext
  25.   quit
  26.   endiff
  27.  
  28. setlocal
  29. set rsp=%1
  30. set cmd=%2
  31. set trg=%3
  32. iff not .%4==. then set cmd=%2 %3^set trg=%4^endiff
  33. iff not exist %rsp then^echo File %@upper[%rsp] not found^quit^endiff
  34.  
  35. :do_command
  36. :    Checks if the files exist and only then preforms the command,
  37. :    adding to the counter.
  38. :    I would have preferred an internal errorlevel code, but none seems
  39. :    to work, so I've settled for 'if exist'.
  40. set num=0
  41. *for %f in (@%rsp) do (
  42.    if exist %f (
  43.    %cmd %f %trg
  44.    set num=%@eval[%num+1]
  45.    )
  46.  )
  47.  
  48. :end
  49. if %_row ge 21 pause
  50. cls
  51. if %num==0 set num=No
  52. scrput %@eval[%_row+2] 0 bri whi on bla ==`>` %0 terminated (%num files handled)
  53. endlocal
  54. quit
  55.