使用 Windows 脚本文件 (.wsf)
使用 Windows 腳本文件 (.wsf)
Windows 腳本文件 (*.wsf) 是含有可擴展標記語言 (XML) 代碼的文本文檔。它綜合了幾個可增強腳本靈活性的功能。由于 Windows 腳本文件不是特定于引擎的,因此它們可包含與 Windows 腳本兼容的任何腳本引擎中的腳本。它們充當容器。
使用 .wsf 文件,可以在創建腳本時使用以下功能:
| Include 語句 | 將函數從 VBScript 或 JScript 文件合并到 Windows 腳本宿主項目中。 |
| 多引擎 | 每個文件使用多種腳本語言。 |
| 類型庫 | 將常數添加到代碼中。 |
| 工具 | 使用任何 XML 編輯器編輯文件。 |
| 一個文件中的多項作業 | 將所有的代碼存儲在一個位置。 |
Include 語句
如果您的 .js 和 .vbs 文件來自以前版本的 Windows 腳本宿主項目,則 .wsf 文件允許您將它們用于 Windows 腳本宿主。.wsf 文件封裝了一個可以被多個 .wsf 文件使用的函數庫。
下面的示例顯示包含 JScript 文件 (fso.js) 的.wsf 文件,以及在包含文件中調用函數 ("GetFreeSpace") 的 VBScript 函數。還顯示 fso.js 的內容。
<job id="IncludeExample">??? <script language="JScript" src="FSO.JS"/>
??? <script language="VBScript">
?????? ' 獲得驅動器 C 的可用空間。
?????? s = GetFreeSpace("c:")
?????? WScript.Echo s
??? <sScript>
</job>
fso.js 文件包含以下內容:
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;
}
多引擎支持
由于一種腳本語言不能涵蓋用戶需要的所有功能,因此 Windows 腳本宿主為您提供了可以在一個 .wsf 文件中結合使用多種語言的功能。下面的示例顯示了同時包含 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 開發的。"MyComponent" 用以下語句定義了常數 MyError。
Public Const MyError = "You are not using MyComponent correctly"類型庫包含在安裝于 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 的任意編輯器來編輯 .wsf 文件。其中包括文本編輯器,如“記事本”。
一個文件中的多項作業
CScript //Job:MyFirstJob MyScripts.wsf不用將所有腳本分別保留在不同的文件中,可以將它們合并到一個.wsf 文件中,并分解成幾個不同的作業。然后用與下例相似的語法分別運行各個作業,該示例中的 "MyFirstJob" 是 MyScripts.wsf 文件中包含的作業名稱。
WScript.exe 和 CScript.exe 選項
cscript因為把輸出放進了控制臺 所以可以對它重定向 方便程序調用wscript直接用窗口輸出 適合調試程序和編寫小工具 在windows下不用cmd的話cscript的輸出會一閃而過
大多數情況下,列在下表中的選項適用于 WScript.exe 和 CScript.exe。例外情況會加以注釋。
| //B | 批處理模式;隱藏用戶提示和腳本錯誤在命令行中的顯示。默認模式是交互模式。 |
| //D | 打開調試程序。 |
| //E:engine | 用指定的腳本引擎執行腳本。 |
| //H:CScript 或 //H:Wscript | 將 CScript.exe 或 WScript.exe 注冊為運行腳本的默認應用程序。如果未指定,則將 WScript.exe 假設為默認應用程序。 |
| //I | 默認。交互模式;允許顯示用戶提示和腳本錯誤。與批處理模式相反。 |
| //Job:<JobID> | 從 .wsf 文件運行指定的 JobID。 |
| //logo | 默認。顯示標題。與 nologo 相反。 |
| //nologo | 防止在運行時顯示執行標題。默認設置是 logo。 |
| //S | 保存該用戶的當前命令行選項。 |
| //T:nn | 啟用超時:腳本可以運行的最大秒數。默認設置是無限制。//T 參數通過設置定時器來防止腳本執行過度。當執行時間超過指定值時,CScript 用 IActiveScript::InterruptThread 方法中斷腳本引擎,并終止過程。 |
| //U | 用于 Windows NT 和 Windows 2000,強制命令行以 Unicode 格式輸出。CScript 無法決定以 Unicode 還是以 ANSI 輸出;默認設置為 ANSI。 |
| //X | 在調試程序中啟動該程序。 |
| //? | 顯示命令參數(用法信息)的簡要說明和用法信息。 |
總結
以上是生活随笔為你收集整理的使用 Windows 脚本文件 (.wsf)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中同名目录复制,Linux下把
- 下一篇: 最小二乘法原理、推导和运用