我正在制作自己的命令,到目前为止,处理.cmd代码的cl代码自己工作得很好。我可以调用它并发送参数,它做了它需要做的事情,所以我假设错误一定是与。cmd:
CMD 'DISPLAY SYSTEM LEVEL (DSPSYSLVL) NADIA S.C.'
PARM KWD(OUTPUT)
MIN(1)
TYPE(*CHAR) LEN(8)
RSTD(*YES)
VALUES(*MSGLINE *DISPLAY)
PROMPT('OUTPUT FOR SYSTEM LEVEL')
PARM KWD(SOLUTION)
TYPE(*CHAR) LEN(4)
RSTD(*YES)
VALUES(*YES *NO)
DFT(*NO)
PROMPT('TELL ME HOW YOU DID IT')
PARM KWD(SHOWCMD)
TYPE(*CHAR) LEN(4)
RSTD(*YES)
VALUES(*YES *NO)
DFT(*NO)
PROMPT('SHOW COMMAND')
当我运行crtcmd
并给出适当的文件名时,我得到消息"Command DSPSYSLVL not created in library [library name]."并得到CPF0201消息。
我对整个系统还很陌生,我真的不知道问题出在哪里。作业日志也没有提供任何新的信息…
这可能只是一个转录问题,但首先突出的是没有连续字符(+)的多行格式:
CMD 'DISPLAY SYSTEM LEVEL (DSPSYSL'
PARM KWD(OUTPUT) +
MIN(1) +
TYPE(*CHAR) LEN(8) +
RSTD(*YES) +
VALUES(*MSGLINE *DISPLAY) +
PROMPT('OUTPUT FOR SYSTEM LEVEL')
PARM KWD(SOLUTION) +
TYPE(*CHAR) LEN(4) +
RSTD(*YES) +
VALUES(*YES *NO) +
DFT(*NO) +
PROMPT('TELL ME HOW YOU DID IT')
PARM KWD(SHOWCMD) +
TYPE(*CHAR) LEN(4) +
RSTD(*YES) +
VALUES(*YES *NO) +
DFT(*NO) +
PROMPT('SHOW COMMAND')
每个PARM
是一个单独的实体,如果分割成多行,则必须"继续"。
CRTCMD
命令应该生成一个假脱机文件,其中包含有关错误的更多详细信息。
EDIT: CMD
提示符的最大长度为30个字符。