2

我正在寻找有关 openVMS 的帮助。

VMS下的默认提示是$

我想更新它以反映我在 Unix/Linux 中更改目录时所在的当前工作目录。

我创建了一个名为 login.com 的文件并将其放入 openVMS 系统的主目录中,并添加了以下代码:

$ SET PROMPT='f$environment("default")'

这应该通过显示当前目录来工作,但是它只反映我登录时的主目录。当我更改目录时,它不会动态更新。如果我在终端中运行上述命令,它将显示当前目录。

无论如何更新 login.com 以在每次更改目录时动态更新提示?

4

1 回答 1

0

据我所知,您能做的最好的事情是创建一个命令文件来更改目录并设置提示。

创建一个名为CD.COM以下内​​容的文件:

$ set default 'p1'
$ current = f$dir()
$ d_start = f$locate ( "[", current ) + 1
$ d_stop = f$length ( current ) - 2
$ current_dir = f$extract( d_start, d_stop, current )
$ new_prompt = "SERVER::" + current_dir + ">"
$
$loop:
$ if f$length(new_prompt) .ge. 30
$       then
$       d_start = f$locate ( ".", new_prompt ) + 1
$       new_prompt = "SERVER::" + f$extract ( d_start, d_stop, new_prompt )
$       goto loop
$ endif
$ set prompt='new_prompt

您可以根据您希望提示持续多长时间来更改循环中的条件

然后在你的LOGIN.COM文件中创建一个逻辑指向文件所在的CD.COM目录

$ DEFINE /GROUP CD "Disk:[Folder.Containing.COM.File]"

然后像这样使用它:

CD Disk:[Full.Path.To.Dir]

或者

CD [.subdir]

唯一不会正确更新提示的情况是您CD在另一个 COM 文件中使用该命令。但是,它仍会正确更改目录。

于 2017-03-02T13:13:58.920 回答