【发布时间】:2017-04-13 00:27:17
【问题描述】:
首先,我是一个完全的新手,不应该被允许使用键盘。也就是说,我正在尝试编写一个 DCL .COM 文件,该文件将允许用户通过从列表中选择它来连接到远程设备。
我要做的就是让他们选择一个设备并连接,然后当他们与设备断开连接时,回到他们开始的地方。在我终止远程连接后,它一直把我甩出去。
操作系统是 OpenVMS。这是代码(其中 xxx.xxx.xxx.xxx 将是远程系统的 IP 地址)。
任何帮助将不胜感激!
$! MRV Terminal Server Connection Menu
$!
$ ON ERROR THEN $ LOGOUT
$ GOMENU:
$!
$ CLS:==SET TERM/WIDTH=80
$ WT:==WRITE SYS$OUTPUT
$!
$ CLS
$ WT " MRV Terminal Server Connection Menu "
$ WT " "
$ WT " 1 MRV 1"
$ WT " 2 MRV 2"
$ WT " 3 MRV 3"
$ WT " 4 MRV 4"
$ WT " 5 MRV 5"
$ WT " 6 MRV 6"
$ WT " 7 MRV 7"
$ WT " 8 MRV 8"
$ WT " 9 MRV 9"
$ WT " 10 MRV 10"
$ WT " 11 MRV 11"
$ WT " 12 MRV 12"
$ WT " 13 MRV 13"
$ WT " 14 MRV 14"
$ WT " "
$ WT " "
$ WT " "
$ WT " "
$ WT " "
$ WT " X EXIT"
$ WT " "
$ INQUIRE ANS "Select the MRV you wish to connect to:"
$!
$!
$ IF ANS .EQS. "X" then goto goodbye
$!
$!
$ IF ANS .EQS. "1" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "2" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "3" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "4" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "5" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "6" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "7" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "8" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "9" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "10" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "11" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "12" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ IF ANS .EQS. "13" then SSH "InReach@xxx.xxx.xxx.xxx"
$!
$ GOODBYE:
$!EXIT
【问题讨论】:
-
“把我赶出去”和“回到他们开始的地方”有点不专业。你能澄清一下吗?在最后一个
if之后添加$ goto GoMenu应该让您保留在存储过程中(如果这是您的目标)。如果会话终止时 SSH 因错误退出,$ on error then goto GoMenu可能会有所帮助。 Ref. -
感谢您的输入 - 所以,“将我赶出去”是指我返回到 VMS 提示而不是返回菜单。目标是,在用户结束远程会话后,他们将返回到菜单。
-
另外,如果他们选择了未列出的选项,我该如何防止它退出?例如,如果用户键入 W,它只会退出程序并将用户返回到 VMS 提示符。
-
顺便说一句 - 非常感谢您的帮助!