CA的自动化点产品具有嵌入式rexx解释器。在使用CMS之前,我已经使用过其他Rexx解释器。我正在尝试访问外部数据队列,以允许AP rexx脚本调用并从其他语言的程序中获取数据。现在CA已经明确表示它不是Object rexx或OORexx而是“Milstead”(原文如此)rexx。我使用Neil Milsted的Uni-Rexx(如果你正在阅读的话,这是一个很好的Neil),它实现了我所需要的rxqueue。
解析版本名称级别 说“rexx是”名称“和”级别 说“rexx util is”RxFuncQuery(“SysUtilVersion”) 得到: rexx是REXX:Open-REXX:299:Open-REXX:ASCII:MultiThread:DynamicLink和4.00 2008年2月4日
07/15/2011 08:27:19 rexx util是30
我的google-fu在这里失败了,我不断回到相同的网站 那么有谁知道这个特定的Rexx以及如何让它运行非rexx代码并获得输出?我真的不想成为临时文件的I / O绑定。
答案 0 :(得分:4)
如果您想要从外部程序(可执行文件)输出到REXX,您可以使用POPEN功能将命令的标准输出重定向到外部数据队列。然后,您可以按照以下说明操作队列:
一个简单的例子:
call popen ('dir /?')
lines = QUEUED()
say "Number of output lines:" lines
do i = 1 to lines
pull line
say "Line #"||i||":" line
end
答案 1 :(得分:3)
更现代的方法具有错误诊断的额外好处:
cmd = 'dir /?'
address COMMAND cmd with output stem cmdout. error stem cmderr.
if cmderr.0 <> 0 then do /* an error has occurred executing this command */
do i = 1 to cmderr.0
say "Error text line" i": '"cmderr.i"'"
end
end
else do i = 1 to cmdout.0 /* no error has occurred so just process the output */
say "Line #"i":'"cmdout.i"'"
end