我的DCL如下(TEST.EXE刚刚打印输入)
$ DEFINE DCL$PATH SYS$DISK:[],SYS$LOGIN:,SYS$SYSTEM:
$ PIPE TEST.EXE abc | DEFINE/JOB RET_VALUE @SYS$PIPE
$ x = f$logical("RET_VALUE")
$ WRITE SYS$OUTPUT x我想让这个DCL显示结果是"abc“。但这个DCL结果将显示"ABC“。
我尝试在DCL中添加"SET PROCESS/CASE_LOOKUP=敏感“,但不可行。
有人有什么建议或建议吗?非常感谢。
发布于 2016-04-13 16:30:33
您是否检查过How to store a result to a variable in HP OpenVMS DCL?中接受的答案是否有助于解决这个问题?
管道中的定义命令是DEFINE/JOB RET_VALUE abc,DCL将其更改为DEFINE/JOB RET_VALUE ABC。当引用等效名称时,DCL不会更改为大写,这将是一个DEFINE/JOB RET_VALUE "abc"。但是,在编写"@SYS$PIPE"时,字符串@SYS$PIPE作为等效名称。换句话说,在字符串中,重定向器@不再工作。因此,您必须按原样从SYS$PIPE获取字符串,例如,使用READ,如链接答案中所示。
PS:..。您可能希望在管道命令中从.exe中删除test.exe。
https://stackoverflow.com/questions/36595532
复制相似问题