2016-03-30 55 views
2

我正在寻找openVMS的一些帮助。在OpenVMS中更改提示

VMS在默认的提示是$

我想更新这反映在Unix/Linux操作系统,我位于当前工作目录,我可以当我改变目录。

我创建了一个名为login.com一个文件,并把这个变成我的主目录中的OpenVMS系统,并添加以下代码:

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

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

是否有无论如何更新login.com来动态更新提示每次我改变目录?

+0

您无法使提示变为动态,但您可以更改改变目录的方式。使用命令过程来设置目录并更新提示。不幸的是,如果现有的命令过程或应用程序改变当前的默认目录,这将无济于事看看20和21 [这里](http://www.cts.wustl.edu/~allen/vms-sdt.html)的方法来操作一堆默认目录。你可以给他们添加'set prompt'。或者[this](https://www.mpp.mpg.de/~huber/vmssig/src/COM/DIRSTACK.COM)主题变体。 – HABO

+0

HABO很久以前就出现了一个动态提示,显示时间(所以你的提示是10点03分10点03分,17点12分17点12分),我记得。不知道它是否与dclcompete http://www.digiater.nl/openvms/freeware/v80/dclcomplete/dclcomplete.readme有关系,所以你绝对可以从ftp://www.digiater提取动态 – user2915097

+0

提取。 nl/openvms/decus/vmslt96b/net96b/files_ftp2_kcl_ac_uk.txt'SSHOOK \t \t挂钩到系统服务中的例子,给予动态提示' – user2915097

回答

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] 

唯一的一次,这将不会更新提示正确的是如果你使用内的另一个COM文件CD命令。但它仍然会正确更改目录。