Soubor Windows Script - Windows Script File
| Přípona názvu souboru | |
|---|---|
| Vyvinul | Microsoft |
| Typ formátu | Skriptování |
| Kontejner pro | Skripty |
Soubor Windows Script ( WSF ) je typ souboru používaný hostitelem Microsoft Windows Script Host . Umožňuje míchání skriptovacích jazyků JScript a VBScript do jednoho souboru nebo jiných skriptovacích jazyků, jako je Perl , Object REXX , Python nebo Kixtart, pokud jsou nainstalovány uživatelem. Tyto typy skriptů lze také použít k propojení mnoha dalších externích skriptů pomocí srcparametru na <script>značce podobným způsobem jako HTML . Soubory Windows Script mají příponu ".WSF". WSF odkazuje na každý skriptový modul ve velmi základní hierarchii XML, jak je znázorněno níže, a dodržuje tyto standardy mimo <script>značky. Doslovné použití výrazů „</script>“ nebo „<script>“ ve <script>značkách a podobné výzvy lze řešit použitím CDATA , jak je uvedeno v příkladech.
Obsah
Izolace chyby
WSF může být užitečné pro izolaci chyb. Jeho modulární povaha brání tomu, aby jedna reference skriptu zasahovala do jiné. Zde je příklad WSF s jedním modulem, který produkuje 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>
První modul skriptu způsobí chybu „dělení nulou“. Obvykle by to způsobilo, že skript skončí v hostiteli skriptů Windows, ale tato modulární metoda umožňuje skriptu pokračovat a spustit druhý modul skriptu.
Podpora smíšených jazyků
Soubor Windows Script podporuje více jazyků, jak je popsáno v odkazu Windows Script Host . Jednou z funkcí tohoto formátu souboru je, že můžete použít více než jednu najednou. To znamená, že můžete mít jeden skriptovací jazyk používat kód z jiného skriptovacího jazyka. Nejpamátnějším příkladem pro dlouholeté uživatele VBScript je použití Microsoft JScript pro obsluhu požadavku na řazení pro VBScript, protože nemá vestavěnou funkci řazení pro řadu hodnot. Uživatelé VBScript mohou psát vlastní metodu řazení nebo si ji vypůjčit z existujícího objektu, jako je sada záznamů ADO ( ActiveX Data Objects ) nebo .NET ( .NET Framework ) ArrayList , ale nejrychlejší způsob třídění pole je použití metody zabudované do JScript . Zde je základní příklad toho, 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>
Výstup vypadá takto, seřazený podle sekvence kódu ASCII :
Original List of values: a,b,c,1,2,3,X,Y,Z,p,d,q
JScript sorted in 0 seconds: 1,2,3,X,Y,Z,a,b,c,d,p,q
Vystavující konstanty
Další velmi užitečnou funkcí WSF je, že obálku XML lze vázat na odkaz na objekt nebo ovládací prvek, takže můžete místo toho deklarovat konstanty daného objektu. V běžných souborech VBScript a JScript byste byli nuceni deklarovat hodnotu konstanty (mimo ty, které jsou interní pro Windows Script Host ), abyste mohli konstantu používat. Níže je uveden příklad:
const adLockBatchOptimistic = 4
MsgBox "The value of ""adLockBatchOptimistic"" is " & _
adLockBatchOptimistic & ".", vbInformation,"adLockBatchOptimistic"
Pokud vaše dokumentace objektu odkazuje pouze na název konstanty, a ne na hodnotu konstanty, bez pomoci integrovaného vývojového prostředí, které by vám řeklo, k čemu se rovnou , byste neměli možnost tuto hodnotu znát . Pomocí referenční deklarace WSF můžete použít konstanty bez deklarace jejich hodnot. V následujícím příkladu jsou výčty hodnot několika běžných konstant v sadě záznamů ADO ( ActiveX Data Objects ) .
<?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>
Spuštěním výše uvedeného skriptu ze souboru s ".WSF"příponou, například s názvem "EnumerateConstantsADO.wsf", bude výsledkem následující:
ADO Recordset Values for Constants
*CursorTypeEnum Constants*
-1 adOpenUnspecified
0 adOpenForwardOnly
1 adOpenKeyset
2 adOpenDynamic
3 adOpenStatic
*LockTypeEnum Constants*
-1 adLockUnspecified
1 adLockReadOnly
2 adLockPessimistic
3 adLockOptimistic
4 adLockBatchOptimistic
Kromě toho použití odkazu na objekt k odhalení konstant umožňuje psaní skriptu spíše jako psaní ve standardním programovacím jazyce. Ve skutečnosti bude obsah ukázkového skriptu napsaný ve VBScript ve skutečnosti zkompilován do programu Visual Basic a spuštěn stejným způsobem, pokud tento program používá stejný odkaz na ADODB.
Viz také
externí odkazy
- Použití programu Windows Script souborů - od Microsoftu stránkách
- Skriptovacích jazyků je k dispozici v Script Center - Z Útěk ze Sibiře Machine archivu stránku z Microsoft webové stránky