Arquivo de Script Windows - Windows Script File
| extensão de arquivo | |
|---|---|
| Desenvolvido por | Microsoft |
| Tipo de formato | Scripting |
| recipiente para | Scripts |
Um arquivo de script do Windows ( FSM ) é um tipo de arquivo usado pelo Microsoft Windows Script host . Ele permite misturar as linguagens de script JScript e VBScript dentro de um único arquivo, ou outras linguagens de script como Perl , Objeto REXX , Python , ou Kixtart se instalado pelo usuário. Estes tipos de scripts também pode ser usado para ligar muitos outros scripts externos em conjunto, utilizando um srcparâmetro na <script>tag de uma maneira semelhante ao HTML . Windows Script arquivos têm a extensão ".WSF". A FSM faz referência a cada módulo de script em um muito básico XML hierarquia, conforme mostrado abaixo, aderindo a essas normas fora das <script>tags. Uso literal de "</ script>" ou "<script>" dentro de suas <script>tags e desafios semelhantes podem ser tratados com o uso de CDATA , como mostrado nos exemplos.
Conteúdo
isolamento de erro
A FSM pode ser útil para isolar erros. Sua natureza modular evita uma referência de script de interferir com outro. Aqui está um exemplo do FSM com um módulo que produz um erro e que não faz:
<?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>
O primeiro módulo de script irá produzir uma "divisão por zero" de erro. Normalmente, isso faria com que o script para terminar no Windows Script Host , mas este método modular permite que o script para continuar e executar o segundo módulo de script.
suporte ao idioma misto
Um arquivo de script do Windows suporta vários idiomas, conforme descrito no Windows Script Host referência. Uma das características deste formato de arquivo é que você pode usar mais de um ao mesmo tempo. Isto significa que você pode ter um script código de uso da língua de outra linguagem de script. O exemplo mais memorável para de longa data VBScript usuários é o uso do Microsoft JScript para atender a um pedido de classificação para VBScript , uma vez que não tem uma função de classificação interna para uma matriz de valores. VBScript usuários podem escrever seu próprio método de classificação ou pedir emprestado um de um objeto existente como um ADO ( ActiveX Data Objects ) de registros ou um .NET ( .NET Framework ) ArrayList , mas a maneira mais rápida para classificar uma matriz é usar o método incorporado JScript . Aqui está um exemplo básico de como isso funciona:
<?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>
A saída parecido com este, classificado por ASCII seqüência de código:
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
expondo constantes
Outra característica muito útil de um FSM é que o wrapper XML pode ser vinculado a uma referência de objeto ou controle para que você pode usar constantes daquele objeto, em vez de ter de declará-los. Em regulares VBScript e JScript arquivos, você seria obrigado a declarar o valor de uma constante (fora aqueles que são internos ao Windows Script Host ), a fim de usar a constante. Um exemplo disto é mostrado abaixo:
const adLockBatchOptimistic = 4
MsgBox "The value of ""adLockBatchOptimistic"" is " & _
adLockBatchOptimistic & ".", vbInformation,"adLockBatchOptimistic"
Se a documentação do objeto refere-se apenas ao nome da constante e não o valor da constante, você não teria nenhuma maneira de saber o valor sem a ajuda de um ambiente de desenvolvimento integrado para lhe dizer o que equivale a. Ao usar a declaração referência FSM, você pode usar as constantes sem declarar os seus valores. O exemplo abaixo enumera os valores de várias constantes comuns nos (ADO ActiveX Data Objects ) de registos .
<?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>
A execução do script acima de um arquivo com uma ".WSF"extensão, como uma chamada "EnumerateConstantsADO.wsf", irá produzir o resultado mostrado abaixo:
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
Além disso, usando a referência do objeto para expor as constantes faz escrevendo o roteiro mais como escrever em uma linguagem de programação padrão. Na verdade, o conteúdo do script de exemplo, escrito em VBScript, vai realmente compilar em um Visual Basic programa e executar a mesma forma, enquanto que o programa usa a mesma referência a ADODB.
Veja também
links externos
- Usando o Windows Script Arquivos - A partir do Microsoft Web site
- Linguagens de script disponível no Centro de Script - A partir de The Wayback Machine arquivo de uma página da Microsoft website