Windows 腳本文件 (*.wsf) 是含有可擴(kuò)展標(biāo)記語(yǔ)言 (XML) 代碼的文本文檔。它綜合了幾個(gè)可增強(qiáng)腳本靈活性的功能。由于 Windows 腳本文件不是特定于引擎的,因此它們可包含與 Windows 腳本兼容的任何腳本引擎中的腳本。它們充當(dāng)容器。
使用 .wsf 文件,可以在創(chuàng)建腳本時(shí)使用以下功能:
.wsf 文件支持 | 實(shí)現(xiàn) |
---|---|
Include 語(yǔ)句 | 將函數(shù)從 VBScript 或 JScript 文件合并到 Windows 腳本宿主項(xiàng)目中。 |
多引擎 | 每個(gè)文件使用多種腳本語(yǔ)言。 |
類(lèi)型庫(kù) | 將常數(shù)添加到代碼中。 |
工具 | 使用任何 XML 編輯器編輯文件。 |
一個(gè)文件中的多項(xiàng)作業(yè) | 將所有的代碼存儲(chǔ)在一個(gè)位置。 |
如果您的 .js 和 .vbs 文件來(lái)自以前版本的 Windows 腳本宿主項(xiàng)目,則 .wsf 文件允許您將它們用于 Windows 腳本宿主。.wsf 文件封裝了一個(gè)可以被多個(gè) .wsf 文件使用的函數(shù)庫(kù)。
下面的示例顯示包含 JScript 文件 (fso.js) 的.wsf 文件,以及在包含文件中調(diào)用函數(shù) ("GetFreeSpace") 的 VBScript 函數(shù)。還顯示 fso.js 的內(nèi)容。
<job id="IncludeExample"> <script language="JScript" src="FSO.JS"/> <script language="VBScript"> ' 獲得驅(qū)動(dòng)器 C 的可用空間。 s = GetFreeSpace("c:") WScript.Echo s <sScript> </job>
fso.js 文件包含以下內(nèi)容:
function GetFreeSpace(drvPath) { var fs, d, s; fs = new ActiveXObject("Scripting.FileSystemObject"); d = fs.GetDrive(fs.GetDriveName(drvPath)); s = "Drive " + drvPath + " - " ; s += d.VolumeName; s += " Free Space: " + d.FreeSpace/1024 + " Kbytes"; return s; }
由于一種腳本語(yǔ)言不能涵蓋用戶需要的所有功能,因此 Windows 腳本宿主為您提供了可以在一個(gè) .wsf 文件中結(jié)合使用多種語(yǔ)言的功能。下面的示例顯示了同時(shí)包含 VBScript 和 PerlScript 代碼的 .wsf 文件:
<job id="PERLandVBS"> <script language="PerlScript"> sub PerlHello { my $str = @_[0]; $WScript->Echo($str); } </script> <script language="VBScript"> WScript.Echo "Hello from VBScript" PerlHello "Hello from PERLScript" </script> </job>
在下面的示例中,"MyComponent" 是用 Microsoft Visual Basic 5.0 開(kāi)發(fā)的。"MyComponent" 用以下語(yǔ)句定義了常數(shù) MyError。
Public Const MyError = "You are not using MyComponent correctly"
類(lèi)型庫(kù)包含在安裝于 C:\MyComponent
下的 mycomponent.lib
中。
<job id="IncludeExample"> <reference progid="MyComponent.MyClass"> <script language="VBScript"> Dim MyVar Set MyVar = CreateObject("MyComponent.MyClass") Currentreturn = MyVar.MyMethod If Currentreturn = False then WScript.Echo MyError End If </script> </job>
由于 .wsf 文件采用 XML 格式,所以可以使用支持 XML 的任意編輯器來(lái)編輯 .wsf 文件。其中包括文本編輯器,如“記事本”。
不用將所有腳本分別保留在不同的文件中,可以將它們合并到一個(gè).wsf 文件中,并分解成幾個(gè)不同的作業(yè)。然后用與下例相似的語(yǔ)法分別運(yùn)行各個(gè)作業(yè),該示例中的 "MyFirstJob" 是 MyScripts.wsf 文件中包含的作業(yè)名稱(chēng)。
CScript //Job:MyFirstJob MyScripts.wsf