Windows Komut Dosyası Dosya - Windows Script File

Windows Komut Dosyası Dosya
Dosya adı uzantısı .wsf
Tarafından geliştirilmiş Microsoft,
formatın Tipi Komut
için Konteyner Senaryo

Bir , Windows Script Dosyası ( DSF ) tarafından kullanılan bir dosya türüdür Microsoft Windows Script Host . Bu karıştırma sağlar programlama dillerine JScript ve VBScript tek dosya içinde veya bu gibi diğer betik dilleri Perl , REXX Nesne , Python veya KiXTart kullanıcı tarafından yüklenmiş eğer. Komut edildiği bu tür bir kullanarak birlikte diğer birçok dış komut dosyalarını bağlamak için kullanılabilir srcüzerinde parametreyi <script>benzer bir şekilde etiketi HTML . Windows komut dosyası Dosyalar uzantısına sahip ".WSF". Bir DSF çok temel her komut modülüne başvuru yapan XML dışında bu standartlara bağlı kalarak, aşağıda gösterildiği gibi hiyerarşi <script>etiketleri. "</ Script>" veya içinde "<script>" edebi kullanım <script>etiketleri ve benzeri zorluklardan kullanımı ile ele alınabilir CDATA'da örnekler içinde gösterildiği gibi,.

Hata izolasyon

Bir DSF hataları izole edilmesi için faydalı olabilir. Modüler yapısı başka bir müdahale bir komut dosyası başvurusu önler. İşte yapmaz bir hata ve bir üretir bir modül ile bir DSF örnektir:

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

İlk senaryo modülü hatası "Sıfıra bölme" üretecek. Genellikle bu komut sona neden olur Windows Script Host ama bu modüler yöntem komut devam etmek ve ikinci komut modülü çalıştırmasına izin veriyor.

Karışık dil desteği

Açıklandığı gibi Windows Komut Dosyası, birden çok dili destekler Windows Komut Dosyası referans. Bu dosya biçiminin özelliklerinden biri tek seferde birden fazla kullanabilir olmasıdır. Bu, başka bir kodlama dili itibaren bir kodlama dili kullanımı kodunu olabileceği anlamına gelir. Uzun süredir en unutulmaz örneği VBScript kullanıcıları Microsoft kullanılmasıdır JScript için bir tür isteği hizmet VBScript bu değerler dizisi için yerleşik bir sıralama fonksiyonu yoktur çünkü. VBScript kullanıcıların kendi sıralama yöntemi yazma ya da ADO (gibi mevcut bir nesneden birini ödünç alabilir ActiveX Data Objects ) Recordset veya .NET ( .NET Framework ) ArrayList , ancak bir dizi sıralamak için hızlı yolu yerleşik yöntemini kullanmaktır JScript . İşte bunun nasıl temel bir örnektir:

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

Çıktı, sıralama şekli şöyle ASCII kodu dizisi:

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

sabitleri maruz

Bir DSF başka çok yararlı özelliği bildirmek zorunda yerine bu nesnenin sabitleri böylece XML sargı bir amacı, referans veya denetime bağlı olmasıdır. Düzenli olarak VBScript ve JScript dosyaları, siz (iç olanları dışında sabitin değerini ilan etmek zorunda kalacağı Windows komut dosyası sabit kullanmak için). Bunun bir örneği, aşağıda gösterilmiştir:

const adLockBatchOptimistic = 4
MsgBox "The value of ""adLockBatchOptimistic"" is " & _
       adLockBatchOptimistic & ".", vbInformation,"adLockBatchOptimistic"

Nesneniz belgeleri sadece sabitin değeri sabitin isme değil başvuruyorsa, bir yardımı olmadan değerini bilmenin bir yolu olurdu Entegre geliştirme ortamı onlar denk gelenleri anlatmak. DSF referans beyanı kullanarak, kendi değerlerini bildirmek olmadan sabitleri kullanabilirsiniz. Aşağıdaki örnek, ADO (çeşitli yaygın sabitleri değerlerini sıralamaktadır ActiveX veri nesneleri ) Recordset'in .

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

Bir ile bir dosyadan yukarıdaki komut çalıştırma ".WSF"böyle adlandırılmış biri olarak, uzatma "EnumerateConstantsADO.wsf", sonuç üretecektir aşağıda gösterilen:

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

Buna ek olarak, sabitler duyurmak için nesne başvurusu kullanarak daha fazla standart bir programlama dilinde yazmak gibi senaryo yazıyor yapar. Aslında, VBScript yazılmış örnek komut dosyası, içeriği, aslında bir içine derlemek olacak Visual Basic programı ve sürece bu programın ADODB aynı başvuru kullanır aynı şekilde çalıştırın.

Ayrıca bakınız

Dış bağlantılar