aspose.info
LT

WSF – „Windows“ scenarijaus failas

Atnaujinta

Kas yra WSF failas?

WSF failas yra scenarijus, kuris patenka į vykdomųjų kategoriją ir dažniausiai naudojamas Microsoft Windows. Scenarijus palaiko kelių kalbų maišymą, tai reiškia, kad WSF faile gali būti JScript, VBScript ir pasirinktinai kai kurių XML elementų arba kitų scenarijų kalbų, tokių kaip Python, Object REXX, Perl, Kixtart, derinys, jei jas įdiegė vartotojas. WSF failai paleidžiami patys, jei nėra WScript arba CScript. WSF failai gali būti naudingi išskiriant klaidas ir atskleidžiant konstantas.

WSF failo formatas

WSF failo formatas gali maišyti JScript ir VBScript iš ankstesnių Windows Script Host projektų, .wsf failas leidžia juos naudoti su Windows Script Host. WSF scenarijus apima funkcijų, kurias gali naudoti įvairūs WSF failai, biblioteką. Toliau pateiktame pavyzdyje parodytas .wsf failas, kuriame yra JScript failas (fso.js) ir VBScript funkcija, kuri iškviečia kitą funkciją.

<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 formatas palaiko šias papildomas funkcijas:

  • Įtraukite pareiškimus
  • Keli varikliai
  • Tipų bibliotekos
  • Įrankiai
  • Keli darbai viename faile

WSF failų pranašumai

WSF failai gali būti naudingi šiose srityse:

Klaidų izoliavimas

Modulinis WSF failo pobūdis gali neleisti vienai scenarijaus nuorodai trukdyti kitai, todėl WSF naudinga atskiriant klaidas. Štai WSF pavyzdys su vienu moduliu, kuris sukuria klaidą, o kitą - 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>

Mišrių kalbų palaikymas

WSF palaiko kelias kalbas, galite turėti vieną scenarijų kalbos kodą iš kitos scenarijų kalbos. Štai pavyzdys, kaip tai veikia:

<?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>

Konstantų atskleidimas

WSF palaiko XML paketo susiejimą su objekto nuoroda arba valdikliu, kad galėtumėte naudoti to objekto konstantas, o ne jas deklaruoti. Toliau pateikiamas pavyzdys:

<?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>

Nuorodos

Taip pat žiūrėkite