WScript.Shell對象的run和exec


createobject("wscript.shell").run """BAT或EXE的文件路徑及名稱""",0 true


0 表示隱藏運行窗口

true表示在繼續執行腳本中的下一條語句之前,腳本是否等待執行完程序


WScript.Shell對象的run和exec

方法聲明:
Function Exec(ByVal Command As String) As WshExec
Function Run(ByVal Command As String, [ByVal WindowStyle], [ByVal WaitOnReturn]) As Integer
區別:
1、返回值
run的返回值是一個整數,就是0或1成功和失敗兩個狀態,而exec方法的返回值是一個對象,從返回對象中可以獲得控制檯輸出信息和控制檯錯誤信息,即StdOut和StdErr屬性等。
如:
Dim oShell,exeRs
Set oShell = CreateObject("WSCript.shell")
commandLine = "xcopy.exe"
Set exeRs = oShell.Exec(commandLine)
errMsg = exeRs.StdErr.ReadAll()
stdMsg = exeRs.StdOut.ReadAll()
WScript.echo "errMsg:" & errMsg & "stdMsg:" & stdMsg
ret = oShell.run(commandLine, 0, true)
WScript.echo "run method return value:" & ret
Set oShell = Nothing
Set exeRs = Nothing
可以取道控制檯錯誤和控制檯信息。
附記:WshExec類具有屬性ExitCode,ProcessID,Status,StdErr,StdIn,StdOut以及一個函數Terminate,這些屬性和函數都很好理解。
Status屬性具有三個值:
Const WshFailed   = 2
Const WshFinished = 1

Const WshRunning  = 0


2、執行參數
Run的後兩個參數,一個是cmd窗口的風格,一個是是否等待執行完成。最後一個參數很有用,如果你希望等待本次cmd執行的程序結束後,再執行run後面的語句,設置這個參數爲true,否則後面的語句將不等待cmd窗口完成,直接運行。
另外,如果你使用exec 方法的時候,如果希望等待cmd中程序執行完後,再執行後面的語句,也可以通過下面的方法: oExec.StdErr.ReadAll()或者oExec.StdOut.ReadAll(),道理上也應該好理解,要得到輸出的信息,肯定要cmd執行完後纔會有輸出的。
WshShell.run函數的參數
set WshShell= CreateObject(“Wscript.Shell”)
WshShell.run   "notepad.exe",,
run函數有三個參數,第一個參數是你要執行的程序的路徑,若路徑中存在空格,記得要用""括起來,如 """C:\Program Files\nn.exe"""的形式或者Chr(34)&"C:\Program Files\nn.exe"&Chr(34)的形式,第二個程序是窗口的形式,0是在後臺運行;1表示正常運行;2表示激活程序並且顯示爲最小化;3表示激活程序並且顯示爲最大化;一共有10個這樣的參數如下表。 第三個參數是表示這個腳本是等待還是繼續執行,如果設爲了true,腳本就會等待調用的程序退出後再向後執行。
其實,run做爲函數,前面還有一個接受返回值的變量,一般來說如果返回爲0,表示成功執行,如果不爲0,則這個返回值就是錯誤代碼,可以通過這個代碼找出相應的錯誤。
intWindowStyle 說明
0 隱藏一個窗口並激活另一個窗口。
1 激活並顯示窗口。如果窗口處於最小化或最大化狀態,則系統將其還原到原始大小和位置。第一次顯示該窗口時,應用程序應指定此標誌。
2 激活窗口並將其顯示爲最小化窗口。
3 激活窗口並將其顯示爲最大化窗口。
4 按最近的窗口大小和位置顯示窗口。活動窗口保持活動狀態。
5 激活窗口並按當前的大小和位置顯示它。
6 最小化指定的窗口,並按照 Z 順序激活下一個頂部窗口。
7 將窗口顯示爲最小化窗口。活動窗口保持活動狀態。
8 將窗口顯示爲當前狀態。活動窗口保持活動狀態。
9 激活並顯示窗口。如果窗口處於最小化或最大化狀態,則系統將其還原到原始大小和位置。還原最小化窗口時,應用程序應指定此標誌。
10 根據啓動應用程序的程序狀態來設置顯示狀態。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章