Batch Telnet实现的两个方法

网络 网络管理
下面我们介绍一下batch Telnet的过程。首先我们需要了解实现这个目的的目标是实现bat转换为EXE。然后,我们对实现batch Telnet这个的操作进行一下分析。那么具体内容请参考下文。

我们知道batch Telnet是批处理Telnet的意思。在自动化工程中,常会设计这方面问题。那么现在我们就来对这些问题进行一下研究。其中我们提供了两种方法实现这个目标,那么具体的操作请从正文来了解一下吧。

两种办法可以实现bat转换为EXE

有两种办法可以实现bat转换为EXE,一种是利用工具,如DOS下的bat2exe工具;另一种方法是在VB中使用Shell函数,其形式如下(结束后DOS窗口会自行关闭): 

  1. Shell "command.com /c copy c:\1.txt a:\",vbNormalFocus  

如何在批处理中运行Telnet自动任务?
 
一般来说ftp做batch处理事务时非常常见的事情。那么如果Batch Telnet,让我们的管理工作更加的轻松呢?

一般来说两种方法:

1、VBS法(Windows Script Host)

2、自动终端法(一些可以配置自动Telnet的终端)

在这里我们讨论第一种方法:VBS法。由于Windows Script Host是系统自带的,我们不需要安装地方放软件就可以搞定。所以它一般是解决问题的首选。

首先,我们建立一个名字叫做tel.vbs的脚本,这里用Telnet 到cisco路由器上作为一个例子,相关内容大家可以修改。

  1. ’建立Shell对象  
  2. set sh=WScript.CreateObject("WScript.Shell")  
  3. WScript.Sleep 1000  
  4. ’向Telnet发送我们平时录入的命令  
  5. sh.SendKeys "open 192.168.1.1"  
  6. WScript.Sleep 1000  
  7. sh.SendKeys "{ENTER}"  
  8. WScript.Sleep 1000  
  9. sh.SendKeys "password{ENTER}"  
  10. WScript.Sleep 1000  
  11. sh.SendKeys "en{ENTER}"  
  12. WScript.Sleep 1000  
  13. sh.SendKeys "passord{ENTER}"  
  14. WScript.Sleep 1000  
  15. ’运行cisco的show run命令  
  16. sh.SendKeys "show run{ENTER}" 

然后,建立一个batch_tel.bat的批处理文件:

  1. rem 启动Telnet  
  2. start Telnet.exe  
  3. rem batch Telnet  
  4. cscript //nologo tel.vbs 

最后,我们只需要运行batch_tel.bat就可以轻松搞定Telnet的工作了。

对于SendKeys这个命令可以send什么,我们可以看下面的列表:#p#

  1. BACKSPACE {BACKSPACE}, {BS}, or {BKSP}  
  2. BREAK {BREAK}  
  3. CAPS LOCK {CAPSLOCK}  
  4. DEL ;or DELETE {DELETE} or {DEL}  
  5. DOWN ARROW {DOWN}  
  6. END {END}  
  7. ENTER {ENTER}or ~  
  8. ESC {ESC}  
  9. HELP {HELP}  
  10. HOME {HOME}  
  11. INS or INSERT {INSERT} or {INS}  
  12. LEFT ARROW {LEFT}  
  13. NUM LOCK {NUMLOCK}  
  14. PAGE DOWN {PGDN}  
  15. PAGE UP {PGUP}  
  16. PRINT SCREEN {PRTSC}  
  17. RIGHT ARROW {RIGHT}  
  18. SCROLL LOCK {SCROLLLOCK}  
  19. TAB {TAB}  
  20. UP ARROW {UP}  
  21. F1 {F1}  
  22. F2 {F2}  
  23. F3 {F3}  
  24. F4 {F4}  
  25. F5 {F5}  
  26. F6 {F6}  
  27. F7 {F7}  
  28. F8 {F8}  
  29. F9 {F9}  
  30. F10 {F10}  
  31. F11 {F11}  
  32. F12 {F12}  
  33. F13 {F13}  
  34. F14 {F14}  
  35. F15 {F15}  
  36. F16 {F16}  
  37.  
  38. SHIFT +  
  39. CTRL ^  
  40. ALT % 

Shell一个应用程序并等待该程序执行完毕后继续运行

Shell & Wait 的程序怎么写? 希望某一 VB 程序利用 Shell 执行某一个外部程序(假设是 notepad.exe)之后, 就一直等到此一程序结束执行时, 才回到 VB 程序继续执行, 该怎么办到呢? 当我们调用 Shell 时, 会传回一个数值, 此一数值称为 Process Id, 利用此 一 Process Id, 我们可以调用 OpenProcess API 取得 Process Handle, 然后 再利用 Process Handle 调用 WaitForSingleObject, 即可等待被 Shell 执行的 程序执行完毕, 才继续向下执行。细节如下: 

1. API 的声明: 

  1. Const SYNCHRONIZE = &H100000  
  2. Const INFINITE = &HFFFFFFFF  
  3. Private Declare Function OpenProcess Lib "kernel32" (ByVal  
  4. dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId  
  5. As Long) As Long  
  6. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As  
  7. Long) As Long  
  8. Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal  
  9. hHandle As Long, ByVal dwMilliseconds As Long) As Long 

注:如果以上的声明放在「一般模块」底下, 应将 Declare 之前的 Private 保 留字去掉, 并且在 Const 之前加上 Public 保留字。

2. 程序范例:(以执行 Notepad 程序为例) 

  1. Dim pId As Long, pHnd As Long ’分别声明 Process Id 及 Process Handle 变 数    
  2. pId = Shell("Notepad", vbNormalFocus) ’Shell 传回  
  3. Process Id pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ’ 取得 Process Handle  
  4. If pHnd <> 0 Then Call WaitForSingleObject(pHnd, INFINITE) ’ 无限等待,直到程序结束  
  5. Call CloseHandle(pHnd)  
  6. End If 

DPG联盟 http://www.xhstudio.net 

责任编辑:佟健 来源: IT168
相关推荐

2010-07-25 14:31:54

Telnet程序

2010-07-16 10:31:02

Batch Telne

2010-07-17 00:59:44

cmd Telnet

2010-07-27 14:52:37

Batch Telne

2009-06-30 09:37:02

对象比较Java

2010-07-22 12:15:59

Batch Telne

2010-07-26 14:46:08

batch Telne

2009-07-16 10:39:00

SwingUtilit

2010-09-13 16:55:27

DIV横向排列

2010-07-22 10:58:49

batch Telne

2012-05-22 10:12:59

jQuery

2022-07-05 15:15:11

Python日期命令

2016-03-31 11:28:21

imageView图片轮播

2010-07-16 10:23:28

Batch telne

2010-07-21 11:32:35

SQL Server日

2010-05-27 09:50:18

MySQL导入sql脚

2021-06-07 14:59:06

芯片敏捷SoC

2021-09-08 09:52:34

语言

2021-01-14 10:24:55

压缩集合方式

2009-09-08 15:26:13

NFS服务器
点赞
收藏

51CTO技术栈公众号