Wscript.Shell是用来调用程序的组件,可以通过它来执行命令行。不过需要注意,如果之前注销过wshom.ocx组件,将会无法创建该对象

它有exec和run两个方法,下面是通过示例表示使用方法:

Set sh = CreateObject("Wscript.Shell")

Set cmdobj = sh.exec("ping baidu.com")                   '使用exec方法可以得到返回结果,但执行时会弹出一个黑框

cmdresult = cmdobj.stdout.ReadAll()

MsgBox cmdresult

sh.run "ping baidu.com >> pingresult.txt"                '使用run方法不能得到返回结果,只能输出到文件再读文件

Set sh = Nothing

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

sh.run "ping baidu.com",0,True        'run方法有两个参数,第二个参数表示窗口样式,0为不弹出窗口,1为弹出窗口.第三个参数表示是否等待运行完毕.即同步还是异步

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

注意:命令行中所指的路径都是相对于命令行当前所在的路径,而不是BAT文件所在路径

例如 D:\123\test.bat 这个文件,里面的内容是

echo 123 >> result.txt

那么如果是双击运行,或者是在 D:\123> 这个位置下运行 test.bat ,则产生的结果在 D:\123\result.txt 位置

而如果是

C:\> D:\123\test.bat 这样运行,则结果在 C:\result.txt 位置.

因此无论什么情况下,最好先在BAT文件前加上如下内容,使BAT运行时先切换命令行到它所在的目录下.确保不会有误操作.

for %%i in (%0) do set curDir=%%~dpi

03-15 07:03