首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用REXX/CLIST批处理程序(无ISPF)复制成员?

如何使用REXX/CLIST批处理程序(无ISPF)复制成员?
EN

Stack Overflow用户
提问于 2009-11-04 11:48:15
回答 3查看 8.8K关注 0票数 1

在z/OS下,我想编写一个REXX或CLIST脚本,将一个顺序数据集复制到另一个,然后运行另一个脚本(REXX)。另一个脚本期望存在一个特定的SDS,我希望在运行第二个脚本之前能够将许多选项中的一个复制到该成员。这是来自TSO的,所以我不能访问任何花哨的ISPF东西。

所以,基本上:

代码语言:javascript
复制
Copy 'level1.level2.name.type1' to 'level1.level2.name'
runother p1 p2 p3

runother Rexx脚本使用'level1.level2.name‘来完成它自己的魔术--我只是为我的每一种可能性提供了一个不同的名称。

因此,我需要一个名为'xx42‘的脚本,用于复制'level1.level2.name.42’,然后我可以将其修改为42以外的值。更好的方法是将该脚本参数化,这样我就可以使用

代码语言:javascript
复制
xx 42 p1 p2 p3

代码语言:javascript
复制
xx 27 p1 p2 p3

而不是每个值都有一个脚本。这将复制给定的SDS,然后将参数p1p2p3传递给runother

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-04 12:40:05

经过一番折腾之后,我发现您可以手动分配所需的数据集,然后运行IEBGENER进行复制:

代码语言:javascript
复制
/* 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
票数 1
EN

Stack Overflow用户

发布于 2011-10-07 04:31:56

在搜索其他东西的时候,我偶然发现了这篇文章。(也就是说,我没有花两年的时间来表达这个反应),并认为未来的主机(我们还存在吗?)可能会发现它很有用。

您还可以执行SMCOPY:

代码语言:javascript
复制
address TSO "SMCOPY FDS('LEVEL1.LEVEL2.NAME.42') TDS('LEVEL2.LEVEL2.NAME')"

FDS -从数据集,TDS -到数据集。如果TDS不存在,你会得到一个返回码4,但是副本已经被执行了。您也可以使用SMCOPY复制库成员。

票数 2
EN

Stack Overflow用户

发布于 2012-10-25 11:24:46

您还可以使用SORT从SORTIN复制到SORTOUT。您可以使用参数或使用set语句等将JCL包装在进程中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1671578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档