您的位置:首页 > 编程语言 > VB

VBS学习2 + 如何在运行命令行工具后让命令窗口保持打开状态?

2012-11-06 18:07 441 查看

VBS+CMD

如何在运行命令行工具后让命令窗口保持打开状态?

您可能这样执行过脚本。

Set objShell = CreateObject("Wscript.Shell")

objShell.Run("ipconfig /all")

方便极了。但唯一的问题是您还没来得及阅读 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),它在命令窗口完成任务时自动关闭命令窗口。

Set objShell = CreateObject("Wscript.Shell")

objShell.Run("%comspec% /k ping 192.168.0.1")

看到了吗,我为你高兴!

-------------------------------------------------------------------------------------------------------------------

可以在运行脚本时修改当前命令窗口的标题吗?

问:

嗨,Scripting Guy!在我运行一个批文件的时候,可以使用 Title 命令修改命令窗口的标题。我可以在脚本中修改命令窗口的标题吗?

答:

可以。只要您愿意打开一个新的命令窗口。如果您愿意,可以使用类似下面的这些代码:

Set objShell = CreateObject("Wscript.Shell")

objShell.Run _

         ("%comspec% /K title My Command Window |ping.exe 192.168.1.1"), _

             1, TRUE

请注意我们在这里所做的。我们 创建了 Wscript.Shell 对象的一个实例,然后使用 Run 方法运行 Ping.exe。但是,请看看我们用来运行脚本所用的这个长的命令字符串?我们做的就是调用 %comspec% 打开一个新的命令窗口。我们使用“/K”开关参数确保窗口可以在脚本运行完毕后保持打开,而且我们将窗口的标题设置为“My Command Window”。非常简单明了。

在我们运行 Ping 的时候用了一些技巧;我们必须使用管道分隔符(| 字符)打开一个命令窗口,并且运行 Ping 命令,所有工作都在一个动作中完成。我的意思就是:“打开一个命令窗口,设置窗口标题,然后运行 Ping.exe,所有这些都同时完成。”如果不使用管道,脚本会打开一个标题为“My Command Window”的命令窗口,但是接着再打开 第二个 命令窗口(带有默认标题),并在第二个窗口中运行 Ping。如果您想看看我们说的是否属实,可以试试这段脚本:

Set objShell = CreateObject("Wscript.Shell")

objShell.Run("%comspec% /K title My Command Window "), 1, TRUE

objShell.Run("ping.exe 192.168.1.1"), 1, TRUE

顺便说一下,如果您希望弄的美观漂亮(或者至少在命令行外壳允许的情况下尽可能地美观),可以在修改标题的同时修改窗口的前景和背景颜色。是否厌倦了在绿色背景上看淡黄色文字?那么可以运行这个脚本:

Set objShell = CreateObject("Wscript.Shell")

objShell.Run _

         ("%comspec% /T:2E /K title My Command Window|ping.exe " & _

             "192.168.1.1"), 1, TRUE

The secret here is the mysterious little switch /T:2E, which enables you to change the foreground and background colors. For more information, open up a command window and type this:

color /?

这里的秘密在于神秘的小开关参数“/T:2E”,它允许您修改前景和背景的颜色。更多相关信息,请打开一个命令窗口,并且在其中输入:

color /?

#脚本中心
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: