中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WScript.Shell對象的 run()和exec()函數使用詳解

發布時間:2020-06-26 21:40:22 來源:網絡 閱讀:14357 作者:孤月2012 欄目:軟件技術

vbScript 中 WScript.Shell 對象的 run 和 exec 函數功能使用詳解

函數聲明:

    Set Ws = CreateObject("Wscript.Shell")
    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 執行完后才會有輸出的。
 
Ws.Run 函數的參數:

    Set Ws = CreateObject("Wscript.Shell")
    Ws.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,則這個返回值就是錯誤代碼,可以通過這個代碼找出相應的錯誤。
 
    窗口風格 說明
    0  隱藏一個窗口并激活另一個窗口。
    1  激活并顯示窗口。如果窗口處于最小化或最大化狀態,則系統將其還原到原始大小和位置。第一次顯示該窗口時,應用程序應指定此標志。
    2  激活窗口并將其顯示為最小化窗口。
    3  激活窗口并將其顯示為最大化窗口。
    4  按最近的窗口大小和位置顯示窗口。活動窗口保持活動狀態。
    5  激活窗口并按當前的大小和位置顯示它。
    6  最小化指定的窗口,并按照 Z 順序激活下一個頂部窗口。
    7  將窗口顯示為最小化窗口。活動窗口保持活動狀態。
    8  將窗口顯示為當前狀態。活動窗口保持活動狀態。
    9  激活并顯示窗口。如果窗口處于最小化或最大化狀態,則系統將其還原到原始大小和位置。還原最小化窗口時,應用程序應指定此標志。
    10  根據啟動應用程序的程序狀態來設置顯示狀態。
 
    參數(的)詳細信息可以參考 msdn:
    http://msdn.microsoft.com/zh-cn/library/ateytk4a(en-us,VS.85).aspx
    http://msdn.microsoft.com/zh-cn/library/d5fk67ky(en-us,VS.85).aspx

 

注:經過實驗驗證,執行一般的exe,建議使用Exec()

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

道孚县| 保靖县| 中卫市| 自贡市| 华蓥市| 桃江县| 宝应县| 西藏| 拉萨市| 乐昌市| 融水| 隆回县| 客服| 徐州市| 罗平县| 台东县| 淄博市| 简阳市| 民和| 章丘市| 云浮市| 紫金县| 乌兰浩特市| 特克斯县| 饶河县| 和平区| 麦盖提县| 彝良县| 始兴县| 昆山市| 轮台县| 渭南市| 湖北省| 桐乡市| 阿尔山市| 祁连县| 临颍县| 广宗县| 桑日县| 宁国市| 黄大仙区|