在z/OS下,我想编写一个REXX或CLIST脚本,将一个顺序数据集复制到另一个,然后运行另一个脚本(REXX)。另一个脚本期望存在一个特定的SDS,我希望在运行第二个脚本之前能够将许多选项中的一个复制到该成员。这是来自TSO的,所以我不能访问任何花哨的ISPF东西。
所以,基本上:
Copy 'level1.level2.name.type1' to 'level1.level2.name'
runother p1 p2 p3runother Rexx脚本使用'level1.level2.name‘来完成它自己的魔术--我只是为我的每一种可能性提供了一个不同的名称。
因此,我需要一个名为'xx42‘的脚本,用于复制'level1.level2.name.42’,然后我可以将其修改为42以外的值。更好的方法是将该脚本参数化,这样我就可以使用
xx 42 p1 p2 p3或
xx 27 p1 p2 p3而不是每个值都有一个脚本。这将复制给定的SDS,然后将参数p1、p2和p3传递给runother。
发布于 2009-11-04 12:40:05
经过一番折腾之后,我发现您可以手动分配所需的数据集,然后运行IEBGENER进行复制:
/* REXX */
"ALLOC FI(SYSPRINT) DUMMY REUSE"
"ALLOC FI(SYSIN) DUMMY REUSE"
"ALLOC FI(SYSUT1) DA('LEVEL1.LEVEL2.NAME.42') SHR REUSE"
"ALLOC FI(SYSUT2) DA('LEVEL1.LEVEL2.NAME') SHR REUSE"
"IEBGENER"
RC2 = RC
"FREE FI(SYSUT1)"
"FREE FI(SYSUT2)"
"FREE FI(SYSPRINT)"
"FREE FI(SYSIN)"
IF RC2 ^= 0 THEN DO
SAY "IEBGENER FAILED."
END
ELSE DO
RUNOTHER P1 P2 P3
END发布于 2011-10-07 04:31:56
在搜索其他东西的时候,我偶然发现了这篇文章。(也就是说,我没有花两年的时间来表达这个反应),并认为未来的主机(我们还存在吗?)可能会发现它很有用。
您还可以执行SMCOPY:
address TSO "SMCOPY FDS('LEVEL1.LEVEL2.NAME.42') TDS('LEVEL2.LEVEL2.NAME')"FDS -从数据集,TDS -到数据集。如果TDS不存在,你会得到一个返回码4,但是副本已经被执行了。您也可以使用SMCOPY复制库成员。
发布于 2012-10-25 11:24:46
您还可以使用SORT从SORTIN复制到SORTOUT。您可以使用参数或使用set语句等将JCL包装在进程中。
https://stackoverflow.com/questions/1671578
复制相似问题