2

我有一个正在运行的测试脚本会产生一些错误,如下所示,我预计这些错误。无论如何我可以阻止它们显示在屏幕上吗?我用

$ 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
4

2 回答 2

6

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

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

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

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

干杯,海因

于 2013-02-13T20:07:40.440 回答
1

抑制脚本内的错误消息。试试这个命令

 $ DEFINE/USER SYS$ERROR NL:

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

祝你好运

于 2013-02-13T16:51:50.653 回答