在dcl脚本中隐藏错误消息

use*_*219 2 vms dcl

我有一个运行的测试脚本会产生一些错误,如下所示,我希望这些错误.反正我可以阻止它们出现在屏幕上吗?我用

$ write sys$output
Run Code Online (Sandbox Code Playgroud)

显示是否存在预期错误.

我试着用

$ DEFINE SYS$ERROR ERROR.LOG
Run Code Online (Sandbox Code Playgroud)

但是这会将我的整个错误输出日志更改为此,如果这是正确的处理方式,我可以在脚本的某端以某种方式取消设置吗?

[错误示例]

%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input
-RMS-E-FNF, file not found
%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input
-RMS-E-FNF, file not found
%DCL-W-UNDFIL, file has not been opened by DCL - check logical name
Run Code Online (Sandbox Code Playgroud)

小智 5

DEFINE/USER创建一个逻辑名称,在下一个图像退出时消失.因此,如果您只是在命令之前使用它来保护该命令,那么很好.否则我更喜欢SET MESSAGE来控制输出.

当然,yoy想要获取$ STATUS并在成功命令或预期错误后验证它,报告任何意外错误.

更好的是......如果您希望发生某些错误情况,那么为什么不测试它们呢?例如:

$ file = F$SEARCH("TEST$DISK:[AAA]NOTTHERE.TXT")
$ IF file.NES."" THEN TYPE 'file'
Run Code Online (Sandbox Code Playgroud)

干杯,海因