VBS学习2 + 如何在运行命令行工具后让命令窗口保持打开状态?
来源:互联网 发布:mac imovie教程 编辑:程序博客网 时间:2024/05/21 21:44
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 /?
- VBS学习2 + 如何在运行命令行工具后让命令窗口保持打开状态?
- Linux 命令,如何让运行一个jar程序,当控制台退出后,仍然保持运行状态
- Win7下如何让Numlock保持打开状态
- 如何在win7快速打开命令行窗口
- 通过tmux让程序在ssh退出后保持运行
- 如何让在客户端改变的状态保持连续性
- 在命令行状态下,如何运行编译后的.class 文件???
- 如何让应用在清除内存时保持运行
- 如何在打开窗口时,让窗口居中!
- 关于在eclipse中编译后的java小程序如何在命令行窗口运行的说明
- 如何让bat文件运行后 cmd窗口不关闭
- ssh连接linux服务器中断后,如何让命令继续在服务器运行
- 如何在Windows的命令行cmd中运行vbs和js脚本文件
- 如何在Windows的命令行cmd中运行vbs和js脚本文件
- 如何在windows命令行窗口运行Java程序
- 如何让IE窗口保持最大化
- 如何让手机保持唤醒状态
- 如何让button保持点击状态
- Caused by: java.sql.SQLException: The user specified as a definer ('mail'@'%
- Android UI管理系统
- Java中接口和抽象类有什么区别
- SQL Server XML基础学习<2>之--FOR XML AUTO/RAW
- Android 记录和恢复ListView滚动的位置的三种方法
- VBS学习2 + 如何在运行命令行工具后让命令窗口保持打开状态?
- Extjs4学习资料(TreeStore使用)
- redirect与forward区别
- C++ swap宏
- js刷新页面方法大全
- hdu1498 50 years, 50 colors
- 笔记-2003-A Maximum Entropy Chinese Character-Based Parser
- 微软strcpy,strcat和strcmp的实现源代码
- Struts1和struts2的执行流程