1

我正在我大学的 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 换行并写下我的整个命令吗?

4

2 回答 2

0
  1. 将日志文件定义为 recfm(v) lrecl(32100) block(32108) 或 (vb) 其中 lrecl 是预期的最大记录长度。

  2. 写给它如下:

    推送命令

    “执行 1 磁盘文件”

    推“其他东西”

    “执行 1 磁盘文件”

于 2015-10-01T11:13:26.357 回答
0

您示例中的 ALLOCATE 用于现有数据集。如果您想创建一个具有更长行的新输出数据集(如 Joseph 建议的那样),它需要是一个不同的数据集,并且 ALLOCATE 需要更改为指向新文件而不是旧文件。

此外,尽管要求使用 RECFM(V) 或 VB 等文件,但可能不是系统实际创建的文件。在尝试使用它之前,您需要确保输出文件确实有很长的 LRECL。某些系统可能会覆盖您的要求并创建 80 字节的记录文件(使用所谓的 SMS 规则)。

于 2017-10-20T13:50:24.537 回答