aspose.info
BG

WSF - Windows скрипт файл

Обновено

Какво е WSF файл?

WSF файлът е скрипт, който попада в категорията на изпълними файлове и често се използва в Microsoft Windows. Скриптът поддържа смесване на множество езици, което означава, че WSF файлът може да включва комбинация от JScript, VBScript и по избор някои XML елементи или други скриптови езици като Python, Object REXX, Perl, Kixtart, ако са инсталирани от потребителя. WSF файловете се изпълняват сами при липса на WScript или CScript. WSF файловете могат да бъдат полезни при изолиране на грешки и излагане на константи.

WSF файлов формат

Файловият формат WSF може да смесва JScript и VBScript от вашите предишни проекти за Windows Script Host, .wsf файл ви позволява да ги използвате с Windows Script Host. WSF скрипт капсулира библиотека от функции, които могат да се използват от различни WSF файлове. Примерът по-долу показва .wsf файл, който включва JScript файл (fso.js), плюс VBScript функция, която извиква друга функция.

<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 форматът поддържа следните допълнителни функции:

  • Включете изявления
  • Множество двигатели
  • Типови библиотеки
  • Инструменти
  • Няколко работни места в един файл

Предимства на WSF файловете

WSF файловете могат да бъдат полезни в следните области:

Изолиране на грешки

Модулният характер на WSF файла може да попречи на една препратка към скрипт да пречи на друга, което прави WSF полезен за изолиране на грешки. Ето пример за WSF с един модул, който генерира грешка и един, който не:

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

Поддръжка на смесени езици

WSF поддържа множество езици, можете да накарате един скриптов език да използва код от друг скриптов език. Ето пример как работи това:

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

Излагане на константи

WSF поддържа обвързването на XML обвивка към препратка към обект или контрола, така че можете да използвате константите на този обект, вместо да се налага да ги декларирате. Следва пример:

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

Препратки

Вижте също