• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >vbs > 在vbs运行命令行工具后让命令窗口保持打开状态的脚本

在vbs运行命令行工具后让命令窗口保持打开状态的脚本

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了vbs命令大全,vbs执行命令,vbs命令,vbs执行cmd命令,关机命令vbs等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问:
您好,脚本专家!如何在运行像 Ping 或 Ipconfig 这样的工具后让命令窗口保持打开状态?
-- DB
答:
您好,DB。这个问题让我们想起了往事。有一个脚本专家刚来 Microsoft,那时许多人认为 WMI 和 ADSI 对于脚本编写者来说太难使用。因此,人们建议这个脚本专家不使用 WMI 或 ADSI,而是干脆使用 VBScript 作为调用命令行工具的方法。事实上,这个脚本专家编写的第一章就是一个关于事件日志管理的章节,该章后来成为 Microsoft Windows 2000 脚本指南的一部分。它也是不含任何脚本编写代码之类内容的章节。
您说对了:只有脚本专家才会发现自己在编写一本绝对不含任何脚本编写代码的脚本编写指南。
当然,脚本专家们使用雄辩的说服,再配合大量的哀求,最终还是能够让人们相信,如果那个叫做 Microsoft Windows 2000 脚本指南的东西实际包含一两个脚本,也是可以的。不过,在此过程中,脚本专家们也对在脚本内调用命令行工具略有了解,这也是为什么我们能够回答您问题的原因。
我们猜测您有与以下类似的脚本,该脚本运行命令行工具 Ipconfig.exe:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("ipconfig /all")
您必定知道该脚本非常有效:弹出命令窗口,然后 Ipconfig 开始运行。唯一的问题是您还未来得及阅读 IPconfig 返回的信息,命令窗口就关闭了(除非您读得确实快)。这确实是个问题。
那么如何解决它呢?方法如下:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k ipconfig /all")
如您所看到的,这个修订的脚本保留了与原来脚本相同的基本结构:我们创建 Wscript.Shell 对象的一个实例,然后调用 Run 方法以实际运行该命令行工具。区别在于调用该命令行工具的方式。在原来的脚本中,我们只是调用工具本身:
objShell.Run("ipconfig /all")
这一次,我们使用的语法大为不同:
objShell.Run("%comspec% /k ipconfig /all")
环境变量 %comspec% 代表 Windows 命令外壳;这等效于调用 Cmd.exe(它当然会打开一个命令窗口)。那为什么不直接调用 Cmd.exe?是这样,假设您的计算机运行 Windows 98。在这些计算机上,通过运行 Command.com 来调用命令外壳,因为没有 Cmd.exe。使用 %comspec% 有助于确保无论该脚本是在什么版本的 Windows 上运行,都可以获得命令窗口。
换句话说,使用此脚本时我们并不是直接运行 Ipconfig,而是运行命令外壳的实例,并向该实例传递几个参数。此类参数中的第一个是 /k,它指示命令外壳执行我们要求它完成的任务,然后保持打开状态。(我们得知 k 是 keep 的简写形式,像在“keep open”中那样,但我们不能肯定是否属实。)我们也可以使用参数 /c(c 代表 close),它在命令窗口完成任务时自动关闭命令窗口。 
传递给命令外壳的其它参数有何作用?那些参数只是运行 IPconfig 所需的命令:ipconfig /all。想要使用 Ping.exe 对 IP 地址 192.168.1.1 执行 ping 命令吗?以下脚本将执行该操作,并确保之后命令窗口保持打开状态:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k ping 192.168.1.1")
想要运行 Net.exe 以获取本地用户帐户列表并可以随后进行查看吗?好的,没问题:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k net user")
想要 ¨C 嗯,您已领会了要旨。
如果往往会在脚本中大量使用命令行工具(这并没什么不对;请尽管使用您认为最方便/最好的工具),则可能会对本专栏感兴趣,它向您介绍如何更改命令窗口标题和命令窗口颜色。过去了这么多年,脚本专家心中对调用命令行工具脚本的好感仍在,而且仍无法弄清楚为什么人们认为编写根本不含任何脚本的脚本编写指南是一个不错的想法。
</div>

您可能想查找下面的文章:

  • 写个设置命令的VBS脚本代码
  • 在vbs运行命令行工具后让命令窗口保持打开状态的脚本

相关文章

  • 用vbs实现选择颜色
  • VBS 自动登录论坛的实现代码
  • 用vbs产生的若干个随机数并写入到一个.txt中的代码
  • VBS 16进制验证特定字符
  • VBS教程:属性-Path 属性
  • VBS教程:运算符-Not 运算符
  • vbscript Registry 注册表操作实现代码(读写删除)
  • VBS教程:属性-Line 属性
  • 黑客必须要知道的几个vbs文件代码
  • VBS教程:函数-FormatDateTime 函数

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
    • VBS 下载方法(CDO.MESSAGE)
    • 用VBScript实现压缩目录中的所有文件(Zip)
    • vbscript,jscript脚本编程教学(1)
    • 用vbs确定计算机是否有 USB 2.0 端口的代码
    • 可以定时自动关机的vbs脚本
    • 脚本编程 4 驱动器
    • vbs实现的定时提醒你休息的脚本
    • VBS实现GB2312,UTF-8,Unicode,BIG5编码转换工具
    • 一段提取用户名和md5的vbs代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有