要簡化指令碼編寫,可以將一個指令碼分成多個部分。使用這種方法,將會建立一個 .wsf 檔案並將其用作執行的起點。其他部分可以是 .js 或 .vbs 檔案。將從 .wsf 檔案中引用這些檔案。
該方法使您的代碼更為強健,因為它將代碼的各個片段隔離開來,允許您一次調試一個片段。它還使您的代碼能重複利用,因為它允許您建立可反覆調用的函數。
Windows 指令檔 (*.wsf) 是含有可延伸標記語言 (XML) (XML) 代碼的文字文件。
.wsf 檔案支援 |
實現 |
Include 語句 |
將函數從 VBScript 或 JScript 檔案合并到 Windows 指令碼宿主專案中。 <job id="IncludeExample"> <script language="JScript" src="FSO.JS"/> <script language="VBScript"> ' 獲得磁碟機 C 的可用空間。 s = GetFreeSpace("c:") WScript.Echo s <sScript> </job> |
多引擎 |
每個檔案使用多種指令碼語言。 <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> |
類型庫 |
將常數添加到代碼中。 <job id="IncludeExample"> <reference object="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> |
工具 |
使用任何 XML 編輯器編輯檔案。 |
一個檔案中的多項作業 |
將所有的代碼儲存在一個位置。 該樣本中的 "MyFirstJob" 是 MyScripts.wsf 檔案中包含的作業名稱。 CScript //Job:MyFirstJob MyScripts.wsf |
檔案結構
<?xml version="1.0" ?><package> <comment> Demo WSH </comment> <job id="ie"> <?job error="True" debug="True" ?> <runtime> <description>**</description> <named name="IP" helpstring="local or remote ip" type="string" required="true" /> <named name="U" helpstring="User Name" type="string" /> <example></example> </runtime> <script language="VBScript"><![CDATA[ ?-]]> </script> </job> <job id="office">?- </job></package>
基本上的檔案結構和以上類似,具體在“Microsoft Windows指令碼技術.CHM”文檔或者MSDN
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/script56/html/vtoriMicrosoftWindowsScriptTechnologies.htm
中有描述。
檔案關聯和執行
選擇一個.wsf檔案右鍵可以看到看到其關聯的是Wscript.exe,因此雙擊這樣的檔案時,就是以wscript.exe執行.wsf檔案的
如果手動控制執行,有兩個形式:
GUI形式:wscript.exe demo.wsf
Console形式:cscript.exe demo.wsf
[當前路徑是demo.wsf的根路徑]
在命令列下執行cscript 可以查看執行的參數,常用的有:
//Job:xxx : 執行某個作業
//X : 跟蹤
跟蹤調試
以demo.wsf為例,執行如下命令列
cscript.exe demo.wsf //Job:jsoffice //X
此時可以進入Script Debugger或者VS2008等開發工具中跟蹤,初始定位在第一行,然後設定斷點、查看變數等,如是進入VS2010的一個跟蹤情況