aspose.info
RO

WSF - Fișier Script Windows

Actualizat

Ce este un fișier WSF?

Un fișier WSF este un script care se încadrează în categoria executabile și este utilizat în mod obișnuit în Microsoft Windows. Scriptul acceptă amestecarea mai multor limbi, înseamnă că în fișierul WSF poate include un amestec de JScript, VBScript și opțional unele elemente XML sau alte limbaje de scripting, cum ar fi Python, Object REXX, Perl, Kixtart dacă sunt instalate de utilizator. Fișierele WSF se execută singure în absența WScript sau CScript. Fișierele WSF pot fi benefice în izolarea erorilor și expunerea constantelor.

Format de fișier WSF

Formatul de fișier WSF poate combina JScript și VBScript din proiectele dvs. anterioare Windows Script Host, un fișier .wsf vă permite să le utilizați cu Windows Script Host. Un script WSF încapsulează o bibliotecă de funcții care pot fi utilizate de diferite fișiere WSF. Exemplul de mai jos arată un fișier .wsf care include un fișier JScript (fso.js), plus o funcție VBScript care apelează o altă funcție.

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

Formatul WSF acceptă următoarele caracteristici suplimentare:

  • Includeți declarații
  • Mai multe motoare
  • Biblioteci de tipări
  • Unelte
  • Mai multe locuri de muncă într-un singur fișier

Beneficiile fișierelor WSF

Fișierele FSM pot fi benefice în următoarele domenii:

Izolarea erorii

Natura modulară a fișierului WSF poate împiedica o referință de script să interfereze cu alta, ceea ce face ca WSF să fie util pentru izolarea erorilor. Iată un exemplu de WSF cu un modul care produce o eroare și unul care nu:

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

Suport pentru limbi mixte

Un WSF acceptă mai multe limbi, puteți avea un cod de utilizare a unui limbaj de scripting dintr-un alt limbaj de scripting. Iată un exemplu despre cum funcționează:

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

Expunerea constantelor

WSF acceptă legarea unui wrapper XML la o referință de obiect sau un control, astfel încât să puteți utiliza constantele acelui obiect în loc să trebuiască să le declarați. Mai jos este un exemplu:

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

Referințe

Vezi și