2013-02-13 60 views
1

我有一个测试脚本,我正在运行,产生一些错误,如下所示,我期望这些错误。无论如何,我可以阻止它们在屏幕上显示吗?我使用在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 
+0

你'Define'命令,这是你的脚本里面,或者你进入它的DCL提示? – Saju 2013-02-13 16:18:44

+0

它在脚本里面,它看起来像我继续使用error.log,直到我做了注销并再次登录 – user1943219 2013-02-13 16:34:43

+2

您是否尝试过'设置消息/ nofacility/noseverity/noidentification/notext'?如果这对你有用,那么你可以使用'f $ environment(“message”)'来获取当前设置,以便在退出之前可以恢复它们。 – HABO 2013-02-13 17:05:20

回答

1

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

$ DEFINE/USER SYS$ERROR NL: 

NL:是一个空设备,所以你不`吨看到你的终端上显示的任何错误消息。

好运

4

DEFINE/USER创建消失下一图像退出时的逻辑名称。 所以如果你只是在一个命令之前使用那个命令来保护那个命令,那很好。 否则,我宁愿SET MESSAGE来控制输出。

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

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

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

干杯, 海恩