在dcl脚本中隐藏错误消息

时间:2013-02-13 16:11:56

标签: vms dcl

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

$ write sys$output

显示是否存在预期错误。

我尝试使用

$ DEFINE SYS$ERROR ERROR.LOG

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

[错误示例]

%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

2 个答案:

答案 0 :(得分:5)

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

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

更好的是......如果您预计会出现某些错误情况, 那为什么不测试它们呢? 例如:

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

干杯, 海因

答案 1 :(得分:1)

禁止脚本中的错误消息。试试这个命令

 $ DEFINE/USER SYS$ERROR NL:

NL:是一个空设备,因此您不会在终端上看到任何错误消息。

祝你好运