我想使用Rexx捕获以下命令的输出:

QUEUE "-DIS DATABASE(*) SPACENAM(*) RESTRICT(CHKP,COPY)"
QUEUE "END"
ADDRESS TSO "DSN SYSTEM(DB2D)"


是否有任何方法可以获取上述命令输出的表的名称,这些表将这些表显示在变量或其他某种构造中,以便可以通过编程方式处理数据?

问候

最佳答案

OUTTRAP函数应捕获DSN命令的输出。 OUTTRAP旨在陷阱大多数TSO命令的输出。输出放置在您提供的变量(通常是词干变量)中。 (无法捕获某些TSO命令;《 TSO / E REXX参考》中的其他地方对此进行了讨论。)

根据上面提供的代码,我们可以将其拼凑起来:

ORC = OUTTRAP('O.')             /* preserve prior setting of OUTTRAP */
QUEUE "-DIS DATABASE(*) SPACENAM(*) RESTRICT(CHKP,COPY)"
QUEUE "END"
ADDRESS TSO "DSN SYSTEM(DB2D)"
CALL OUTTRAP ORC                /* restore OUTTRAP setting */
DO #O = 1 TO O.0                /* The 0 entry by convention has the number of records */
  /* You can PARSE, analyze, or do whatever here */
  SAY "O."'#O "='"O.#O"'"         /* example */
END #O                          /* end the loop */


在TSO / E REXX中编写脚本时,OUTTRAP是一项非常强大的功能。

10-05 21:52