我正在寻找一些关于openVMS的帮助。
VMS下的默认提示为$
当我更改目录时,我想要更新它以反映我所在的当前工作目录,就像我在Unix/Linux中一样。
我创建了一个名为login.com的文件,并将其放入我在openVMS系统中的主目录中,并添加了以下代码:
$ SET PROMPT='f$environment("default")'它应该通过显示当前目录来工作,但是它只反映我登录时的主目录。当我更改目录时,它不会动态更新。如果我在终端中运行上面的命令,它将显示当前目录。
有没有办法更新login.com,以便每次我更改目录时都能动态更新提示符?
发布于 2017-03-02 21:13:59
据我所知,您能做的最好的事情是创建一个命令文件来更改目录并设置提示符。
使用以下内容创建一个名为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]只有当您在另一个COM文件中使用CD命令时,才会无法正确更新提示符。但是,它仍然会正确地更改目录。
https://stackoverflow.com/questions/36312510
复制相似问题