问题标签 [dcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2950 浏览

filesystems - 如何列出 OpenVMS 卷上的目录

我一直在搜索 Google 以及 OpenVMS 系统管理员指南和用户指南,但仍然找不到任何关于列出 OpenVMS 卷上存在的目录的信息。我看不出这在文档中是如何被认为是理所当然的,因为其他一切都是非常具体的,所以要么我看不到它,要么它无法完成。如果它不能完成,那么关于使用 VMS,我会遗漏一些非常大的图片。任何建议表示赞赏。

TIA, grobe0ba

0 投票
3 回答
531 浏览

openvms - OpenVMS - 批处理检查是否运行最新版本的脚本

是否可以编写一个批处理脚本来检查自从这个版本排队以来没有添加任何版本,如果是这样,请运行更新的脚本。

我可以通过为其编写子脚本来做到这一点,但这意味着我拥有的每个脚本都有 2 个脚本。

谢谢你的帮助。

0 投票
5 回答
5252 浏览

openvms - 如何在 OpenVMS 中存储命令输出

我在 OpenVMS 中编写 DCL 时遇到问题,因为我需要 DCL 调用命令并捕获其输出(但不将输出输出到屏幕) 稍后在 DCL 中,我需要打印我存储的输出。

这是一个例子:

如果直接在 OpenVMS 中执行,上面的命令会输出:

所以我创建了一个 DCL 试图包装这个输出以显示更简化的输出。到目前为止,这是我的代码:

在 ICE SET 'P1' 上面的行中,正在设置冰环境,但我不希望此输出回显到 VMS。但我想要的是将 $ICE SHOW 的输出写入一个变量,然后稍后在 DCL 中回显(为了简化起见,我省略了大部分)

所以应该输出的应该是:

代替:

我浏览了手册,我有点困惑,所以我想我在这里尝试过。我很感激任何指针。谢谢。

编辑

这是我在评论后提出的问题,我遇到的问题是当我使用 SecureCRT 等模拟器连接到 VMS 时,会回显正确的输出。但是当我通过 .NET 中的 SSH2 库运行 DCL 时,它不会输出任何内容。我想那是因为它暂时关闭了 SYS$OUTPUT 流还是什么?

编辑 2

所以我想我真的需要澄清我想在这里做什么。阻止输出并不重要,我只是试图将它捕获到一个符号中。

因此,例如在 C# 中,您可以拥有一个返回字符串的方法。所以你会有 string myResult = vms.ICETo("FASTER"); 它将返回并将其存储在变量中。

我想我在 VMS 中寻找类似的东西,这样一旦我适应了环境,我就可以调用:

但我当然会得到那个陈述的错误

0 投票
2 回答
1282 浏览

database-connection - 远程数据和查询到 OpenVMS RMS 文件

在 OpenVMS 中查询 RMS 文件有哪些选项?查询/访问的上下文将用于 BI 和报告。目前,正在使用一个非常旧的 FOCUS(Infomation Builders,v. 6.9.8),并且只能在本机 OpenVMS 命令行 shell 中使用。

我在 VMS 环境中工作的挑战是输出旨在用于 Excel、R 和 Business Objects/Crystal Reports 和 Splunk/Hunk 中的平台外消费和分析。在平台上,我可以在我自己的用户空间中编译和/或运行的任何东西都受到限制,并且 CONNX 和类似工具看起来都需要 VMS 环境中的服务器进程。

编辑:我已经接受了一个全面的答案,考虑到组织限制,这可能不可行。我可能的路径是在 FOCUS 中编写额外的数据提取作业,并承担随之而来的延迟和维护开销。

0 投票
1 回答
983 浏览

error-handling - 在第一个错误后处理 DCL ON ERROR 操作?

OpenVMS DCL命令显示HELP ON EXAMPLE

例子

根据帮助,如果既不存在[-]x.for也不[-]y.for存在,则不会执行最后两行:

有没有办法像第一行一样设置处理,而在脚本的每一行之间ON ERROR放置一个语句?ON ERROR

0 投票
2 回答
223 浏览

openvms - 通过对 OpenVMS 的监控确定应用程序可执行工件范围

我们有一个基于 OpenVMS 的遗留 COBOL 应用程序——我们对它的配置没有清晰的概念。在这种情况下,我所说的“配置”是:

  1. 哪些可执行文件包含应用程序;
  2. 哪些原始源文件对应于哪些可执行文件。

上面的 1 是未知的东西可能看起来很奇怪,但随着时间的推移,可执行文件“来来去去”(并且许多仍在使用)。由于不再需要哪些可执行文件的知识已经随着时间的流逝而丢失,因此不知道哪些可执行文件构成了当今存在的应用程序。实际上,该团队忠实地编译所有源代码文件并部署生成的可执行文件,尽管有明显不再使用的程序。

不用说,没有正式的配置管理流程,源代码也没有保存在版本控制系统中。由于应用程序运行在 OpenVMS 上,相应的基于Files-11的文件系统保留了旧版本的文件(包括源文件),这一直是不将应用程序源放入版本控制系统的借口(尽管使用一个 VCS 远远超出了仅具有以前版本的记录)。

当然,可以通过多种方式确定配置,但我想从第一个“小步骤”开始,即:确定构成应用程序的可执行文件集。在这一点上我应该提一下,应用程序的可执行组件不仅限于 OpenVMS 映像,还包括 DCL 命令文件。我想:

  1. 记录驻留在某个目录或一组目录中的所有图像调用;
  2. 记录驻留在某个目录或一组目录中的命令文件的所有调用。

如果我们在生产系统上运行这个日志记录很长一段时间,比如两个月,我们可以很好地了解应用程序包含什么。连同用户咨询,我们将能够确认是否需要未调用的可执行文件。

我想我对如何执行上述 1 有一个想法,尽管我不确定具体情况,即使用SET/AUDIT. 第二部分,现阶段,我不知道该怎么做。

因此,这项工作的主要标准是尽可能少地影响现有系统以获得上述信息。由于围绕配置的问号(以及完全缺乏自动化测试),改变任何东西都是一件令人伤脑筋的事情。

使用操作系统级别的服务SET/AUDIT可以让人们了解正在运行的内容,而无需更改源代码和/或重新编译任何内容。所以,我的问题是多方的:

  1. 这是在 OpenVMS 上执行此操作的最佳方式吗?
  2. 我需要做什么来限制SET/AUDIT只监视特定目录中的图像?
  3. 如何在不更改.COM源文件的情况下记录命令文件调用?
  4. 由于记录此类信息而导致性能下降,我应该期待什么?
0 投票
3 回答
1155 浏览

openvms - 如何将结果存储到 HP OpenVMS DCL 中的变量中?

我想将程序的输出保存到变量中。

我使用以下方法,但失败了。

$ PIPE RUN TEST | DEFINE/JOB VALUE @SYS$PIPE $ x = f$logical("VALUE")

我收到一个错误:%DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters \WORLD\

参考: 如何将程序的输出分配给 VMS 上 DCL com 脚本中的变量?

0 投票
3 回答
687 浏览

openvms - 在 DCL 中运行带有参数的程序并保存输出

我正在尝试运行一个程序并在 DCL 中获取输出值。

在 Linux 平台脚本中,如下所示

我尝试在 HP openVMS 平台上执行相同的脚本,但失败了。

谁能提供样品或给我一些提示?

非常感谢。

参考: 如何将程序的输出分配给 VMS 上 DCL com 脚本中的变量?

0 投票
1 回答
350 浏览

openvms - 如何在 HP openVMS DCL 中启用区分大小写?

我的 DCL 如下(TEST.EXE 只打印输入)

我想让这个 DCL 显示结果是“abc”。但是这个 DCL 结果将显示“ABC”。

我尝试在 DCL 中添加“SET PROCESS/CASE_LOOKUP=SENSITIVE”,但不可行。

有没有人有任何建议或提示?非常感谢。

0 投票
1 回答
946 浏览

parameters - 使用 Openvms DCL 中的文件进行迭代

我有这个文件input.text,说 20 行。(虽然我希望能够使用任意数量的行)

所以我想打开所述文件并使用每个字符串,就好像它是另一个命令的参数一样。

这个另一个命令将使用每个参数执行它的功能,然后将输出写入另一个文件本身。

我怎样才能达到预期的目的?