我正在大学的z / OS(ADCD版本)上编写rexx脚本。 我想用diskw写一个非常长的字符串到pds成员。 遗憾的是,rexx不会自动断行,因此只有大约一半的字符串被写入成员。我的字符串是一个命令,我正在连接,执行并且我想写入日志。
/*REXX*/
"ALLOCATE DATASET('"FILEPATH"') FILE(FILE) SHR REUSE"
command = "adduser" username
command = command || " TSO(ACCTNUM(ACCT) PROC(DBSPROC)",
"MAXSIZE(6072) SIZE(5000) MSGCLASS(H) UNIT(SYSALLDA))"
LOG.1 = command
LOG.2 = "Other Stuff"
"EXECIO" 2 "DISKW FILE (STEM LOG."
"EXECIO 0 DISKW FILE (FINIS"
"FREE FILE(FILE)"
现在创建的日志只包含我对某个字符的命令,而我的命令的其余部分不会写入该成员。像这样:
adduser john TSO(ACCTNUM(ACCT) PROC(DBSPROC) MAXSIZE(6072) SIZE(5
你知道怎么让rexx打破这条线并写下我的整个命令吗?
答案 0 :(得分:0)
将日志文件定义为recfm(v)lrecl(32100)块(32108)或(vb),其中lrecl是预期的最大记录长度。
写如下:
推送命令
“EXECIO 1 DISKW FILE”
推“其他东西”
“EXECIO 1 DISKW FILE”
答案 1 :(得分:0)
示例中的ALLOCATE用于现有数据集。如果要创建具有更长行的新输出数据集(如Joseph所建议的那样),则需要将其作为不同的数据集,并且需要更改ALLOCATE以指向新文件而不是旧文件。
尽管要求使用RECFM(V)或VB等文件并不是系统实际创建的文件,但也有可能。在尝试使用它之前,您需要确保输出文件确实具有长LRECL。有些系统可能会覆盖您要求的内容并创建80字节的记录文件(使用称为SMS规则的内容)。