aspose.info
FI

WSF - Windowsin komentosarjatiedosto

Päivitetty

Mikä on WSF-tiedosto?

WSF-tiedosto on komentosarja, joka kuuluu suoritettavaan kategoriaan ja jota käytetään yleisesti Microsoft Windowsissa. Skripti tukee useiden kielten sekoittamista, mikä tarkoittaa, että WSF-tiedostossa voi olla sekoitus JScriptiä, VBScriptiä ja valinnaisesti joitain XML-elementtejä tai muita komentosarjakieliä, kuten Python, Object REXX, Perl, Kixtart, jos käyttäjä on asentanut ne. WSF-tiedostot suorittavat itsensä ilman WScriptiä tai CScriptiä. WSF-tiedostot voivat olla hyödyllisiä virheiden eristämisessä ja vakioiden paljastamisessa.

WSF tiedostomuoto

WSF-tiedostomuoto voi sekoittaa aiempien Windows Script Host -projektiesi JScriptin ja VBScriptin, .wsf-tiedoston avulla voit käyttää niitä Windows Script Hostin kanssa. WSF-skripti sisältää kirjaston funktioita, joita useat WSF-tiedostot voivat käyttää. Alla olevassa esimerkissä näkyy .wsf-tiedosto, joka sisältää JScript-tiedoston (fso.js) sekä VBScript-funktion, joka kutsuu toista funktiota.

<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-muoto tukee seuraavia lisäominaisuuksia:

  • Sisällytä lausunnot
  • Useita moottoreita
  • Tyyppikirjastot
  • Työkalut
  • Useita töitä yhdessä tiedostossa

WSF-tiedostojen edut

WSF-tiedostot voivat olla hyödyllisiä seuraavilla alueilla:

Virheeristys

WSF-tiedoston modulaarinen luonne voi estää yhtä komentosarjaviittausta häiritsemästä toista, mikä tekee WSF:stä hyödyllisen virheiden eristämisessä. Tässä on esimerkki WSF:stä, jossa on yksi moduuli, joka tuottaa virheen ja toinen ei:

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

Sekakielinen tuki

WSF tukee useita kieliä, voit käyttää yhtä skriptikielen koodia toisesta skriptikielestä. Tässä on esimerkki siitä, miten se toimii:

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

Vakioiden paljastaminen

WSF tukee XML-kääreen sitomista objektiviittaukseen tai ohjausobjektiin, jotta voit käyttää objektin vakioita niiden ilmoittamisen sijaan. Seuraavassa on esimerkki:

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

Viitteet

Katso myös