我在 vms 中有一个工具xyz。我想获取它的安装位置。例如,在unix中,我们可以通过使用which命令来实现这一点。所以请帮助我 vms 等效于这个命令。
4 回答
在 VMS 中没有等效的命令。要找到此类工具的位置,取决于该工具在 VMS 上的设置方式。VMS 命令可以是 DCL 命令,即 DCL 动词,也可以是外来命令,即 DCL 符号。我假设您只需在 DCL 命令提示符下键入“xyz”即可调用 xyz 工具。
DCL 动词在 DCL 命令表中定义。您的系统管理员可能已将 xyz 工具添加到 DCL 命令表之一,例如使用$ SET COMMAND
系统范围的 LOGIN 命令过程中的命令。如果您的工具设置为 DCL 命令,您可能需要获取并查看 VERB 实用程序(该实用程序可从 VMS 免费软件 CD 获得),它将显示您的 XYZ 命令和 DCl 命令$ VERB XYZ
。它的输出将列出一个“图像”行,因此该关键字之后的任何内容都是该工具的可执行图像的(文件)规范。这里的默认目录是SYS$SYSTEM
,这是一个逻辑名称。请记住,规范可以是(完整的)VMS 文件规范,也可以只是一个逻辑名称。
对于外部命令(几乎总是用于从 Unix 移植的工具),您可以使用 DCL 命令检查 DCL 符号$ SHOW SYMBOL XYZ
。如果以这种方式设置工具,您将看到类似“XYZ == $file_specification”的输出。同样,文件规范可以是(完整的)VMS 文件规范或只是一个逻辑名称。
此外,最新版本的 VMS 支持自动外部命令。也就是说,在逻辑名称指向的目录/-ies 中找到的可执行映像(和命令过程)DCL$PATH
将自动用作外来命令。所以你的工具 xyz 可能是这样一个目录中的一个文件。这将是找到其位置的最简单方法:$ DIRECTORY DCL$PATH:XYZ
应该这样做。
由于user2116290提到了免费软件VERB
实用程序,我将插入另一个名为DFU (用于磁盘/文件实用程序)的免费软件实用程序的插件。
DFU 可以做的一件事是在磁盘卷的索引文件中搜索与特定名称匹配的所有文件。(它还可以按日期、文件大小、文件所有者等进行搜索)。
DFU 可以做很多其他有用的事情。请查看我上面链接到的网站以获取更多信息。
一种定位 EXE 图像的实用方法。这就是我会做的:
询问您的同事或 VMS 管理员
检查外部命令,例如 MYEXE (
MYEXE :== $SOMEWHERE:[DIR]MYEXE.EXE
):SHOW SYMBOL/GLOBAL MYEXE DIR 'f$string(MYEXE - "$")
检查外部批处理命令,例如 MYCOM (
MYCOM :== @SOMEWHERE:[DIR]MYCOM.COM
):DIR 'f$string(MYCOM - "@")
检查已定义的DCL 命令动词,例如 MYVERB (
SET COM MYCOMMANDS.CLD
) - 这是最棘手的,具体取决于 .CLD 文件的处理方式),您可能需要一个VERB
实用程序(VMS 免费软件)从 DCLTABLES.EXE 中提取命令动词的详细信息HELP MYVERB HELP VERB DIR SYS$SYSTEM:MYVERB.EXE
但是,如果您在搜索中达到这一点,我实际上会查看 LOGIN 程序,这就是可能从 .CLD 文件设置此类动词的地方……除非直接安装了自定义 DCLTABLES。所以这很棘手,应该直接交给管理员。
SEARCH SYS$LOGIN:LOGIN.COM MYVERB, "SET COM", ".CLD"
SEARCH SYS$MANAGER:SY*.COM MYVERB, "SET COM", ".CLD"
不过,最简单的方法是询问你的同事或友好的 VMS 管理员……除非你俩都是 :)
您可以使用....
$ PRODUCT SHOW HISTORY
上面的命令将帮助您显示已安装的产品。