home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 6 File / 06-File.zip / fm2_267.zip / example.tmp < prev    next >
Text File  |  1998-05-03  |  3KB  |  90 lines

  1. /************************************************************************
  2.  * Example of how a rexx file can operate on a list file created by     *
  3.  * FM/2 (the list file should contain filenames only, one per line).    *
  4.  *                                                                      *
  5.  * This example can be editted at the boxed comment area below and      *
  6.  * used with FM/2 Commands containing the %! metastring.                *
  7.  *                                                                      *
  8.  * Call as "%c /C <drive:\path\>EXAMPLE.CMD %!" (exclude quotes)        *
  9.  *  (for example:  %c /C e:\fm2\EXAMPLES.CMD %!)                        *
  10.  ************************************************************************/
  11.  
  12. /* suppress echo from "batch" commands */
  13. '@Echo off'
  14. /* clear screen (GPs). */
  15. '@cls'
  16.  
  17. /* get name of listfile from command line. */
  18. parse arg listfile
  19.  
  20. /* if no listfile name was given, issue help and exit. */
  21. if listfile = '' then
  22. do
  23.   say 'Give the name of a listfile as an argument to this REXX script.'
  24.   exit
  25. end
  26.  
  27. /* for debugging purposes: */
  28. say 'Name of our listfile is "'listfile'".'
  29.  
  30. /* see if the listfile given exists -- exit with error message if not */
  31. rc = stream(listfile,'C','QUERY EXISTS')
  32. if rc = '' then
  33. do
  34.   say 'File "'listfile'" doesn''t exist.'
  35.   exit
  36. end
  37.  
  38. /* attempt to open the listfile given on the command line */
  39. rc = stream(listfile,'C','OPEN')
  40.  
  41. /* if open was successful, enter loop */
  42. if rc = 'READY:' then
  43. do
  44.   counter = 0     /* initialize counter (debugging aid) */
  45.  
  46.   /* read each line of the listfile into filename */
  47.   do while lines(listfile) = 1
  48.     filename = linein(listfile)
  49.  
  50.     /* remove any leading/trailing blanks */
  51.     filename = strip(filename,'b')
  52.  
  53.     /* process only non-blank strings */
  54.     if filename \= '' then
  55.     do
  56.     /*************************************************************
  57.      * here you would do something to/with the file in filename. *
  58.      * since this is only an example, we'll just print the name. *
  59.      * note that you could do most anything to the file here --  *
  60.      * use your imagination.                                     *
  61.      *************************************************************/
  62.  
  63.       say filename  /* replace with your command(s)! */
  64.  
  65.     /*************************************************************
  66.      * end of area where you'd do your special processing.       *
  67.      *************************************************************/
  68.       counter = counter + 1 /* count files processed for debugging. */
  69.     end
  70.   end
  71.  
  72.   /* close the listfile. */
  73.   rc = stream(listfile,'C','CLOSE')
  74.  
  75.   /* remove the listfile -- checks to disallow wildcards in name (GPs). */
  76.   if (pos('*',listfile) = 0) & (pos('?',listfile) = 0) then
  77.   do
  78.     'del "'listfile'" 1>NUL 2>NUL'
  79.   end
  80.  
  81. end
  82. else /* couldn't open listfile */
  83. do
  84.   say 'Error opening "'listfile'".'
  85.   exit
  86. end
  87.  
  88. /* we're done -- issue count for debugging. */
  89. say '  **I processed 'counter' objects.'
  90.