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.'
|
---|