我想创建一些Rexx代码,允许我以任何格式分配新数据集,例如PDS, Sequential等。通过读取现有数据集的数据集信息,然后将这些参数应用于新的分配。
例如,当我在3.2中输入数据集名称并按enter键时,我得到以下信息:
Data Set Name . . . . : HLQ.ETE.CNTL
General Data Current Allocation
Management class . . : MC000101 Allocated blocks . : 6
Storage class . . . : SC002020 Allocated extents . : 1
Volume serial . . . : VOL007 Maximum dir. blocks : 11
Device type . . . . : 3390
Data class . . . . . : None
Organization . . . : PO Current Utilization
Record format . . . : FB Used blocks . . . . : 5
Record length . . . : 80 Used extents . . . : 1
Block size . . . . : 27920 Used dir. blocks . : 6
1st extent blocks . : 6 Number of members . : 35
Secondary blocks . : 2
Data set name type : PDS Dates
Creation date . . . : 2014/04/02
Referenced date . . : 2014/07/01
Expiration date . . : ***None***
所以在我的Rexx中,我想做两件事:
读取如上所示的现有数据集分配参数
使用read in参数分配一个新的数据集
我将运行这个Rexx作为JCL批处理作业的一部分。
我将感谢您的任何帮助,因为我已经研究了几天,看不到这样做的方法
如果在ISPF下运行,SPF命令DSINFO更容易使用,因为它可以为您设置变量。
如果在TSO下运行,Kenny对ListDsi的回答是正确的。
对于ISPF DSINFO,您可以这样做(其中变量包含dsname):
Address ispexec 'DSINFO DATASET('dsname')'
say 'dsn=' dsname
say 'volume=' ZDSVOL
say 'recfm=' ZDSRF
.....
您需要查看TSO函数LISTDSI。这样你就能得到你需要的一切了。http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ikjb800/listdsi.htm
然而,根据您正在做的事情,我还会指出DD LIKE参数(用于SMS管理的数据集),或DCB=选项,用于非SMS管理的数据集。请参阅http://pic.dhe.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieab600/xddlike.htm和http://pic.dhe.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieab600/iea2b690169.htm#dcbdsn获取文档。
与其编写自己的REXX来遍历和执行此操作,为什么不利用内置工具呢?尤其是你说过你会批量处理的?