WSF是什么文件格式,WSF格式简介

WSF文件是属于可执行类别的脚本,通常在Microsoft Windows中使用。该脚本支持多种语言的混合,这意味着在WSF文件中可能包含JScript、VBScript和可选的一些XML元素或其他脚本语言,如Python、ObjectREXX、Perl、Kixtart(如果用户安装)的混合。WSF文件在没有WScript或CScript的情况下自行执行。WSF文件有助于错误隔离和公开常量。

 

WSF文件格式

WSF文件格式可以混合您以前的Windows脚本宿主项目中的JScript和VBScript,.wsf文件允许您将它们与Windows脚本宿主一起使用。WSF脚本封装了可供各种WSF文件使用的函数库。下面的示例显示了一个.wsf文件,其中包括一个JScript文件(fso.js),以及一个调用另一个函数的VBScript函数。

<job id=”IncludeExample”>

<script language=”JScript” src=”FSO.JS”/>

<script language=”VBScript”>

‘ Get the free space for drive C.

s = GetFreeSpace(“c:”)

WScript.Echo s

<script>

</job>

 

WSF格式支持以下附加功能:

  • 包括语句
  • 多个引擎
  • 类型库
  • 工具
  • 一个文件中的多个作业

 

WSF文件的优点

WSF文件可在以下领域中发挥作用:

 

错误隔离

WSF文件的模块化特性可以防止一个脚本引用干扰另一个脚本引用,这使得WSF可用于隔离错误。下面是一个WSF示例,其中一个模块产生错误,一个模块不产生错误:

<?xml version=”1.0″ ?>

<job id=”Partially works”>

<!– This will not work –>

<script language=”VBScript”>

‘    <![CDATA[

WScript.echo 4/0 ‘ Oh, boy! You cannot divide by zero…

]]>

</script>

<!– This will work… definitely… –>

<script language=”VBScript”>

<![CDATA[

WScript.echo “Hello, Scripters!” & vbNewline & _

“Fantastic! It worked!”

‘    ]]>

</script>

</job>

 

混合语言支持

WSF支持多种语言,您可以让一种脚本语言使用另一种脚本语言的代码。这是一个如何工作的示例:

<?xml version=”1.0″ ?>

<!– Mixing JScript and VBScript –>

<job id=”SORT-VBScriptWithJScript”>

<script language=”JScript”>

function SortVBArray(arrVBArray) {return arrVBArray.toArray().sort();}

</script>

<script language=”VBScript”>

‘    <![CDATA[

‘** Fastest sort: call the Jscript sort from VBScript

myData = “a,b,c,1,2,3,X,Y,Z,p,d,q”

wscript.echo “Original List of values: ” & vbTab & myData

starttime = timer()

sortedArray = SortVBArray(split(myData,”,”))

endtime=timer()

jscriptTime = round(endtime-starttime,2)

wscript.echo “JScript sorted in ” & jscriptTime & ” seconds: ”  & vbTab & sortedArray

‘    ]]>

</script>

</job>

 

暴露常量

WSF支持将XML包装器绑定到对象引用或控件,因此您可以使用该对象的常量而不必声明它们。下面是一个例子:

<?xml version=”1.0″ ?>

<!– WSF Example with Object Reference

Notes for this very formal example:

CDATA is used to help the XML parser ignore

special characters in the content of the script.

The CDATA open and close must be masked

from VBScript by making them comments.

–>

<package>

<job id=”EnumerateConstantsADO”>

<reference object=”ADODB.Recordset” />

<script language=”VBScript”>

‘  <![CDATA[

dim title, str, i

ctecArray = Array(“adOpenUnspecified”,”adOpenForwardOnly”, _

“adOpenKeyset”,”adOpenDynamic”,”adOpenStatic”)

title = “ADO Recordset Values for Constants”

str = title & vbNewLine & vbNewLine

str = str & “*CursorTypeEnum Constants*” & vbNewLine

For i = 0 to ubound(ctecArray)

str = str & Eval(ctecArray(i)) & vbTab & ctecArray(i) & vbNewLine

Next

str = str & vbNewLine

str = str & “*LockTypeEnum Constants*” & vbNewLine

ltecArray = Array(“adLockUnspecified”,”adLockReadOnly”, _

“adLockPessimistic”,”adLockOptimistic”, _

“adLockBatchOptimistic”)

For i = 0 to ubound(ltecArray)

str = str & Eval(ltecArray(i)) & vbTab & ltecArray(i) & vbNewLine

Next

MsgBox str, vbInformation, Title

‘  ]]>

</script>

</job>

</package>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注