Co je soubor WSF?
Soubor WSF je skript, který spadá do kategorie spustitelných souborů a bÄžnÄ se použÃvá v systému Microsoft Windows. Skript podporuje mÃchánà vÃce jazyků, to znamená, že v souboru WSF může obsahovat smÄs JScript, VBScript a volitelnÄ nÄkteré prvky XML nebo jiné skriptovacà jazyky, jako je Python, Object REXX, Perl, Kixtart, pokud si je uživatel nainstaloval. Soubory WSF se spouÅ¡tÄjà samy v nepÅÃtomnosti WScript nebo CScript. Soubory WSF mohou být užiteÄné pÅi izolaci chyb a odhalenà konstant.
Formát souboru WSF
Formát souboru WSF může kombinovat JScript a VBScript z vaÅ¡ich pÅedchozÃch projektů Windows Script Host, soubor .wsf vám umožÅuje použÃvat je s Windows Script Host. Skript WSF zapouzdÅuje knihovnu funkcÃ, které mohou použÃvat různé soubory WSF. NÞe uvedený pÅÃklad ukazuje soubor .wsf, který obsahuje soubor JScript (fso.js), plus funkci VBScript, která volá jinou funkci.
<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>
Formát WSF podporuje následujÃcà dodateÄné funkce:
- Zahrnout prohlášenÃ
- VÃce motorů
- Knihovny typů
- Nástroje
- VÃce úloh v jednom souboru
Výhody souborů WSF
Soubory WSF mohou být užiteÄné v následujÃcÃch oblastech:
Izolace chyb
Modulárnà povaha souboru WSF může zabránit tomu, aby jedna reference skriptu interferovala s jinou, což Äinà WSF užiteÄným pro izolovánà chyb. Zde je pÅÃklad WSF s jednÃm modulem, který generuje chybu, a jednÃm, který ne:
<?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>
Podpora smÃÅ¡ených jazyků
WSF podporuje vÃce jazyků, můžete mÃt jeden skriptovacà jazyk použÃvat kód z jiného skriptovacÃho jazyka. Zde je pÅÃklad, jak to funguje:
<?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>
Odhalovánà konstant
WSF podporuje vazbu obálky XML na odkaz na objekt nebo ovládacà prvek, takže můžete použÃt konstanty tohoto objektu mÃsto toho, abyste je museli deklarovat. Následuje pÅÃklad:
<?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>