我想使用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是一项非常强大的功能。