佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 在vbs運行命令行工具后讓命令窗口保持打開狀態(tài)的腳本

在vbs運行命令行工具后讓命令窗口保持打開狀態(tài)的腳本

熱門標簽:美圖手機 網站文章發(fā)布 檢查注冊表項 銀行業(yè)務 服務器配置 呼叫中心市場需求 鐵路電話系統 智能手機
問:
您好,腳本專家!如何在運行像 Ping 或 Ipconfig 這樣的工具后讓命令窗口保持打開狀態(tài)?
-- DB
答:
您好,DB。這個問題讓我們想起了往事。有一個腳本專家剛來 Microsoft,那時許多人認為 WMI 和 ADSI 對于腳本編寫者來說太難使用。因此,人們建議這個腳本專家不使用 WMI 或 ADSI,而是干脆使用 VBScript 作為調用命令行工具的方法。事實上,這個腳本專家編寫的第一章就是一個關于事件日志管理的章節(jié),該章后來成為 Microsoft Windows 2000 腳本指南的一部分。它也是不含任何腳本編寫代碼之類內容的章節(jié)。
您說對了:只有腳本專家才會發(fā)現自己在編寫一本絕對不含任何腳本編寫代碼的腳本編寫指南。
當然,腳本專家們使用雄辯的說服,再配合大量的哀求,最終還是能夠讓人們相信,如果那個叫做 Microsoft Windows 2000 腳本指南的東西實際包含一兩個腳本,也是可以的。不過,在此過程中,腳本專家們也對在腳本內調用命令行工具略有了解,這也是為什么我們能夠回答您問題的原因。
我們猜測您有與以下類似的腳本,該腳本運行命令行工具 Ipconfig.exe:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("ipconfig /all")
您必定知道該腳本非常有效:彈出命令窗口,然后 Ipconfig 開始運行。唯一的問題是您還未來得及閱讀 IPconfig 返回的信息,命令窗口就關閉了(除非您讀得確實快)。這確實是個問題。
那么如何解決它呢?方法如下:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k ipconfig /all")
如您所看到的,這個修訂的腳本保留了與原來腳本相同的基本結構:我們創(chuàng)建 Wscript.Shell 對象的一個實例,然后調用 Run 方法以實際運行該命令行工具。區(qū)別在于調用該命令行工具的方式。在原來的腳本中,我們只是調用工具本身:
objShell.Run("ipconfig /all")
這一次,我們使用的語法大為不同:
objShell.Run("%comspec% /k ipconfig /all")
環(huán)境變量 %comspec% 代表 Windows 命令外殼;這等效于調用 Cmd.exe(它當然會打開一個命令窗口)。那為什么不直接調用 Cmd.exe?是這樣,假設您的計算機運行 Windows 98。在這些計算機上,通過運行 Command.com 來調用命令外殼,因為沒有 Cmd.exe。使用 %comspec% 有助于確保無論該腳本是在什么版本的 Windows 上運行,都可以獲得命令窗口。
換句話說,使用此腳本時我們并不是直接運行 Ipconfig,而是運行命令外殼的實例,并向該實例傳遞幾個參數。此類參數中的第一個是 /k,它指示命令外殼執(zhí)行我們要求它完成的任務,然后保持打開狀態(tài)。(我們得知 k 是 keep 的簡寫形式,像在“keep open”中那樣,但我們不能肯定是否屬實。)我們也可以使用參數 /c(c 代表 close),它在命令窗口完成任務時自動關閉命令窗口。 
傳遞給命令外殼的其它參數有何作用?那些參數只是運行 IPconfig 所需的命令:ipconfig /all。想要使用 Ping.exe 對 IP 地址 192.168.1.1 執(zhí)行 ping 命令嗎?以下腳本將執(zhí)行該操作,并確保之后命令窗口保持打開狀態(tài):
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k ping 192.168.1.1")
想要運行 Net.exe 以獲取本地用戶帳戶列表并可以隨后進行查看嗎?好的,沒問題:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k net user")
想要 ¨C 嗯,您已領會了要旨。
如果往往會在腳本中大量使用命令行工具(這并沒什么不對;請盡管使用您認為最方便/最好的工具),則可能會對本專欄感興趣,它向您介紹如何更改命令窗口標題和命令窗口顏色。過去了這么多年,腳本專家心中對調用命令行工具腳本的好感仍在,而且仍無法弄清楚為什么人們認為編寫根本不含任何腳本的腳本編寫指南是一個不錯的想法。

標簽:樂山 河南 長治 滄州 新疆 沈陽 紅河 上海

巨人網絡通訊聲明:本文標題《在vbs運行命令行工具后讓命令窗口保持打開狀態(tài)的腳本》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    莱阳市| 弋阳县| 永济市| 馆陶县| 达拉特旗| 余干县| 仙居县| 沾化县| 齐河县| 涟水县| 洛浦县| 大英县| 沈丘县| 呼图壁县| 连云港市| 东光县| 九江县| 临潭县| 漳平市| 中江县| 浑源县| 盐津县| 峨边| 阿巴嘎旗| 榆树市| 个旧市| 万全县| 武乡县| 子洲县| 舒城县| 浦城县| 张家界市| 肇源县| 闵行区| 桂平市| 英山县| 汕头市| 邯郸市| 阿拉善右旗| 健康| 孝感市|