使用Rexx查找PDS中匹配指定字符串的Member 脚本问题咨询
REXX读取PDS Member并搜索指定字符串脚本修正
以下是修复问题后的可运行版本,同时补充了容错逻辑和中文注释:
/* REXX */ /* 分配要读取的PDS Member,注意替换为实际的数据集和Member名称 */ "ALLOC FILE(input) DA('你的PDS全称(要读取的MEMBER名)') SHR REUSE" /* 捕获分配异常,避免数据集不存在时后续逻辑报错 */ if RC <> 0 then do say '数据集分配失败,返回码:'RC exit 8 end /* 读取整个Member内容到input.数组中,读取完成后关闭文件 */ "EXECIO * DISKR input (STEM input. FINIS" /* 释放分配的文件资源 */ "FREE FILE(input)" /* 遍历读取到的所有行 */ do i = 1 to input.0 /* 检查当前行是否包含指定字符串'met,',可根据需求修改搜索内容 */ if POS('met,', input.i) > 0 Then /* 匹配到字符串的逻辑,这里示例输出行号和匹配到的内容 */ say '第'i'行匹配成功,内容:'input.i else /* 不需要处理未匹配行可以直接删除这行,用nop跳过即可 */ nop end
原脚本的问题说明
- 原输出语句
say Zeile gefunden没有给字符串加引号,REXX会把Zeile、gefunden识别为未定义变量,运行时会直接输出变量名,不符合预期 - 原EXECIO语句中对
input的引用不需要额外拼接引号,直接写EXECIO * DISKR input即可 - 原逻辑每行不管匹配与否都输出提示,批量扫描时会产生大量冗余输出,你可以根据需求调整未匹配分支的逻辑
- 原脚本中的
'.....(MEMBER)'为占位符,需要替换为你实际的数据集全称,要符合MVS数据集命名规则,避免分配失败
内容的提问来源于stack exchange,提问作者user16332592
相关产品推荐
相关产品推荐

