我对OpenVMS的DCL中的一些语法感到困惑.例如,这些是困扰我的一些线路:
$ wo = "write sys$output"
Run Code Online (Sandbox Code Playgroud)
它是否wo为write sys $输出创建了一个符号?
$ billing_run_number == p1
Run Code Online (Sandbox Code Playgroud)
是否p1在执行时将参数传递给.com文件?它可以提供多少个参数?
$ wo "BILLING_RUN_NUMBER = ''billing_run_number'"
Run Code Online (Sandbox Code Playgroud)
'abc'是否被符号abc的内容替换?为什么它''abc'而不是'abc'?我们可以使用""吗?
$ if ((status .nes. "P") .and. (status .nes. "M")) .or. (ftp_status .nes. "Y")
Run Code Online (Sandbox Code Playgroud)
什么.nes.意思?等于?我也见过.ne.,.eqs.太.他们有什么不同?
为什么"和"和"或"被两个点包围?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) 我想将程序的输出保存到变量.
我使用以下方法,但失败了.
$ PIPE RUN TEST | DEFINE/JOB VALUE @SYS$PIPE
$ x = f$logical("VALUE")
我收到一个错误:%DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters
\WORLD\
我们有一个基于OpenVMS的传统COBOL应用程序 - 我们对配置没有一个清晰的认识.在这种情况下,通过"配置",我说的是:
上面的1是一个未知的东西似乎很奇怪,但随着时间的推移,可执行文件已经"来去匆匆"(并且许多仍然被使用).其中的可执行文件构成的应用程序,因为它存在的知识,今天,因为知识,其中的可执行文件,不再需要在时间已丢失不得而知.实际上,团队忠实地编译所有源代码文件并部署生成的可执行文件,尽管显然有不再使用的程序.
不言而喻,没有正式的配置管理过程,并且源代码没有保存在版本控制系统中.由于应用程序在OpenVMS上运行,因此相应的基于Files-11的文件系统保留了旧版本的文件(包括源文件),这一直是不将应用程序源放入版本控制系统的借口(尽管使用的原因) VCS的扩展远远超出了以前版本的记录.
当然,有许多方法可以确定配置,但我想从第一个"小步骤"开始,即:确定构成应用程序的可执行文件集.此时我应该提到应用程序的可执行组件不仅限于OpenVMS映像,还包括DCL命令文件.我想要:
如果我们在延长的时间段(例如两个月)内对我们的生产系统进行此日志记录,我们可以很好地了解应用程序包含的内容.与用户咨询一起,我们将能够确认是否需要未被调用的可执行文件.
我想我已经知道如何做1以上,虽然我不确定具体,即使用SET/AUDIT.第二部分,在这个阶段,我不知道该怎么做.
因此,这项工作的主要标准是,为了获得上述信息,现有系统的影响很小.由于配置周围的问号(以及完全缺乏自动化测试),改变任何事情都是一项令人头疼的事情.
使用操作系统级服务SET/AUDIT可以让人们在不需要更改源代码和/或重新编译任何内容的情况下了解正在运行的内容.所以,我的问题是多方:
SET/AUDIT为仅监视特定目录中的图像需要做什么?.COM源文件的情况下记录命令文件调用?