如何在 HP openVMS DCL 中启用区分大小写?
How to enable case sensitive in HP openVMS DCL?
我的 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=SENSITIVE",但行不通。
有人有什么建议或提示吗?非常感谢。
您是否检查过 中接受的答案是否有助于解决这个问题?
您在管道中的 DEFINE 命令是 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: ...您可能希望在管道命令中从 test.exe
中删除 .exe
。
我的 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=SENSITIVE",但行不通。
有人有什么建议或提示吗?非常感谢。
您是否检查过
您在管道中的 DEFINE 命令是 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: ...您可能希望在管道命令中从 test.exe
中删除 .exe
。