摘要
Windows Scripting Host (WSH) 是一個用於 32 位 Windows 平台的獨立於語言的指令碼主機。Windows Scripting Host 將整合到 Microsoft Windows 作業系統的更新程式和新版本中。
引言
Windows Scripting Host (WSH) 是一個獨立於語言的指令碼主機,用於 32 位 MicrosoftWindows 作業系統平台上。Microsoft 同時給 Visual Basic Script 以及 Java Script 指令碼引擎提供了 WSH。Microsoft 預計,其它軟體公司將會給其它一些語言(如 Perl、TCL、REXX 以及 Python)提供 ActiveX 指令碼引擎。
WSH 可以從基於 Windows 的主機運行 (Wscript.exe),也可以從基於命令列解譯器的主機運行 (Cscript.exe)。
本文將講述:
- WSH 的用途。
- 如何安裝 WSH。
- 如何使用 WSH。
Windows Scripting Host 已整合到 Windows 98、Internet Information Server 4.0 版, Windows 2000 Server 以及 Windows 2000 Professional 中。它也可用於 Windows 95 作業系統。
Windows Scripting Host 的優點
Windows Scripting Host (WSH) 給 32 位 Windows 平台提供了使用簡便、功能強大和變化靈活的指令碼。
過去,Windows 作業系統支援的唯一正宗的指令碼語言是 MS-DOS 命令語言。儘管 MS-DOS 速度很快,且很小巧,但與 Visual Basic Script 和 Java Script 相比,其功能有限。現在,ActiveX 指令碼體繫結構可讓使用者能使用強大的諸如 Visual Basic Script 和 Java Script 之類的指令碼語言,同時也支援 MS-DOS 命令指令碼。
ActiveX 指令碼體繫結構允許使用諸如 VB Script、Java Script 及 Perl 等語言編寫功能強大的指令碼。Microsoft 現為在 Windows 平台上運行這些指令碼語言提供三種主機:
- Microsoft Internet Explorer
- Internet Information Server (IIS)
- Windows Scripting Host (WSH)
Internet Explorer 能使指令碼在客戶電腦上從 HTML 頁內運行。
Internet Information Server 現支援 Active Server Page,它能使指令碼在 Web 服務器上運行;換句話說,它在 Internet 或 Intranet 上啟用伺服器端指令碼。
Windows Scripting Host 能使指令碼直接在 Windows 案頭或命令控制台上執行,無須將指令碼嵌入到 HTML 文檔中。指令碼可以直接從案頭(通過點擊指令檔)或命令控制台上運行。WSH 提供了一個記憶體消耗少的指令碼主機,非常適合於非互動指令碼,如登入指令檔、管理指令碼等等。
WSH 安裝
要使用 Windows Scripting Host,必須安裝 Microsoft Internet Explorer 3.0 版或更高版本。WSH 依賴與 Internet Explorer 3.0 或更高版本一起提供的 Visual Basic Script 和 Java Script 引擎。WSH 作為 Windows 98、Windows 2000 以及 Internet Information Server 4.0 的一部分安裝的。在 Windows 95 中安裝,則需要單獨的安裝程式。
要在基於 Windows 95 的系統上安裝 WSH,如還未安裝 Microsoft Internet Explorer 3.0 版或更高版本,則必須安裝。如沒有 Internet Explorer 3.0 或更高版本,請參見 Microsoft IE Web 頁,網址是:http://www.microsoft.com/ie/ie.htm。
從 Microsoft 下載網站下載 WSH 安裝程式,網址是:http://www.microsoft.com/msdownload/vbscript/scripting.asp。
使用基於命令的指令碼主機運行指令碼
Cscript.exe 使用以下文法:
cscript [host optionsU] [script name] [script options]
- Host parameters(主機參數)啟用或禁用各種 WSH 選項。主機參數前面有兩條斜線 (//)。
- script name(指令碼名稱)是指令檔的名稱;例如 CHART.VBS。
- Script parameters(指令碼參數)傳遞給指令碼。指令碼參數前面有一條斜線 (/)。
每個參數都是可選的;但是,不能指定指令碼參數而不指定指令碼。如果不指定參數,Cscript.exe 就會顯示 Cscript.exe 文法,以及有效主機參數。
Cscript.exe 支援以下主機參數:
參數 |
說明 |
//R |
通過搜尋註冊的指令碼引擎來註冊指令碼副檔名(.vbs、.js、.tcl)。 備忘 當使用 //R 轉移指令時,不需要提供指令檔名。 |
//I |
互動模式 (預設值,與 //B 相反) |
//B |
批處理模式。禁止指令碼請求的任何非命令列控制台 UI。 |
//T:nn |
逾時(秒數)。指令碼可啟動並執行最長時間,預設值為 No limit(沒有限制)。 此選項用來防止指令碼執行時間過長;它設定一個計時器。當執行時間超過指定值,Cscript 就會使用 IActiveScript::InterruptThread 方法中斷指令碼引擎,並終止該進程。 備忘 有一個回叫掛鈎。如果調用逾時,就調用 OnTimeOut 函數進行清理。儘管可能會產生無限迴圈,但使用此功能,還是利多弊少。 |
//logo |
在執行時顯示執行橫幅標誌(預設值 - 與 //NoLogo 相反)。 |
//nologo |
執行時不顯示執行橫幅標誌。 |
//C |
將 Cscript.exe 作為運行指令碼的預設應用程式。 |
//S |
為這個使用者(每個使用者)儲存當前命令列選項。 |
// |
顯示命令用法(與不帶參數運行相同)。 |
當安裝 WSH 時,就會安裝一些指令碼樣本。指令碼樣本放在 %windir%/WSamples 檔案夾中(其中 %windir% 是 Windows 95 或 Windows 2000 檔案夾)。
要運行 Chart.vbs
- 請轉到 Windows 2000 或 Windows 95 命令提示字元。
- 運行以下命令:
cscript //logo %windir%/wsamples/chart.vbs
cscript //nologo %windir%/wsamples/chart.vbs
使用基於 Windows 的指令碼主機運行指令碼
在 Windows 中使用 WSH 有三種方法運行指令碼。可以:
- 在“我的電腦”、“資源管理員”和“尋找”視窗中雙擊檔案和表徵圖。
- 使用 Windows“運行”命令。
- 運行 Wscript.exe。
當您使用 Wscript.exe 運行指令碼時,您可以選擇“始終使用 Windows Scripting Host 開啟該檔案”複選框,並在“WSH 屬性”頁上設定屬性。
當運行指令碼且選定了“始終使用 Windows Scripting Host 來開啟檔案”複選框時,對於帶有正在啟動並執行指令碼的副檔名的檔案,Wscript.exe 就成為運行這些檔案的預設應用程式。例如,當您運行 Chart.vbs 時,如果選定了該複選框,Wscript.exe 就成為運行所有副檔名為 .vbs 的檔案的預設應用程式。此複選框對 Cscript.exe //C 轉移指令同樣適用。
WSH 屬性頁提供以下選項:
屬性 |
用途 |
CSCRIPT.EXE 的對應項 |
註冊常見的指令碼副檔名 |
通過搜尋常見的註冊指令碼引擎,重新註冊常見的指令碼副檔名 (.vbs、.js、.tcl)。 |
//R |
n 秒後終止指令碼 |
指定指令碼啟動並執行最大秒數。(預設值是沒有限制。) |
//T:nn |
預設情況下,以下列模式運行指令碼:互動/批處理 |
禁用或啟用指令碼的所有非命令列控制台 UI 請求。互動模式允許非命令列控制台 UI 請求。而批處理則不允許。 |
//I & //B |
WSH 體繫結構概述
Windows Scripting Host 用作 ActiveX 指令碼引擎的控制器,其作用如同 Microsoft Internet Explorer。因為該指令碼主機不是完全 Internet 瀏覽器,所以它比 Microsoft Internet Explorer 需要的記憶體少;因此,WSH 適於執行簡單快速的任務。
該指令碼主機按指令碼引擎提供的 IActiveScriptParse::ParseScriptText 方法讀取指定指令檔內容並將其送到註冊的指令碼引擎。
該指令碼引擎並不使用 SCRIPT 標記(在 HTML 中使用),而使用檔案的副檔名。因此,指令碼編寫者無須熟悉各種指令碼引擎的確切 ProgID。此指令碼主機維持了一種指令碼副檔名與 ProgID 的對應關係,並使用 Windows 關聯模式啟動相應的引擎。
其它資訊
有關 Windows 2000 Server 的最新資訊,請查閱 Microsoft TechNet 或訪問 Web 網站,網址是:http://www.microsoft.com/china/windows2000/ 或 Microsoft Network 上的 Windows 2000 Server Forum (GO WORD:MSNTS)。
有關 Windows 指令碼技術的最新資訊,請訪問 Microsoft Developer Network,網址是:http://www.microsoft.com/china/msdn/。