Un archivo de comandos de Windows (*.wsf) es un documento de texto que contiene código de Lenguaje de marcado extensible (XML, Extensible Markup Language). Incluye varias características que mejoran la flexibilidad de las secuencias de comandos. Como los archivos de comandos de Windows no son específicos de ningún motor, pueden contener código de cualquier motor de secuencias de comandos compatible con Windows Script. Actúan como contenedor.
Con los archivos .wsf puede aprovechar las siguientes características al crear las secuencias de comandos:
Los archivos .wsf admiten | Puede |
---|---|
Instrucciones Include | Incorporar funciones de archivos de VBScript o JScript en un proyecto de Windows Script Host. |
Múltiples motores | Utilizar más de un lenguaje de secuencias de comandos en cada archivo. |
Bibliotecas de tipos | Agregar constantes al código. |
Herramientas | Modificar los archivos en cualquier editor XML. |
Varios trabajos en un archivo | Almacenar todo el código en una misma ubicación. |
Si tiene archivos .js y .vbs de proyectos anteriores de Windows Script Host, los archivos .wsf le permitirán utilizarlos con Windows Script Host. Un archivo .wsf encapsula una biblioteca de funciones que, a su vez, pueden utilizar múltiples archivos .wsf.
El siguiente ejemplo muestra un archivo .wsf que incluye un archivo JScript (fso.js), así como una función de VBScript que llama a una función (GetFreeSpace) del archivo incluido. También se muestra el contenido de fso.js.
<job id="IncludeExample"> <script language="JScript" src="fso.js"/> <script language="VBScript"> ' Obtiene el espacio libre en la unidad C:. s = GetFreeSpace("c:") WScript.Echo s <sScript> </job>
El archivo fso.js contiene:
function GetFreeSpace(drvPath) { var fs, d, s; fs = new ActiveXObject("Scripting.FileSystemObject"); d = fs.GetDrive(fs.GetDriveName(drvPath)); s = "Unidad " + drvPath + " - " ; s += d.VolumeName; s += " Espacio libre: " + d.FreeSpace/1024 + " Kbytes"; return s; }
Como es posible que un único lenguaje de secuencias de comandos no disponga de todas las funciones que necesite, Windows Script Host permite combinar varios lenguajes en un mismo archivo .wsf. El siguiente ejemplo muestra un archivo .wsf que incluye código de VBScript y de PerlScript:
<job id="PERLandVBS"> <script language="PerlScript"> sub HolaEnPerl { my $cad = @_[0]; $WScript->Echo($cad); } </script> <script language="VBScript"> WScript.Echo "Esto es VBScript" HolaEnPerl "Esto es PERLScript" </script> </job>
En el siguiente ejemplo, "MyComponent" se desarrolló con Microsoft Visual Basic 5.0. "MyComponent" define la constante MyError con la siguiente instrucción.
Public Const MyError = "No utiliza MyComponent correctamente"
La biblioteca de tipos está incluida en mycomponent.lib
, que se instala en C:\MyComponent
.
<job id="IncludeExample"> <reference progid="MyComponent.MyClass"> <script language="VBScript"> Dim MyVar Set MyVar = CreateObject("MyComponent.MyClass") Currentreturn = MyVar.MyMethod If Currentreturn = False then WScript.Echo MyError End If </script> </job>
Como el archivo .wsf está en formato XML, puede utilizar cualquier procesador de textos que admita archivos XML para modificar los archivos .wsf. Esto incluye procesadores de texto como el Bloc de notas.
En lugar de guardar cada secuencia de comandos en un archivo diferente, puede incluirlas todas en un mismo archivo .wsf y dividirlas en trabajos diferentes. Después, puede ejecutar cada trabajo por separado mediante una sintaxis parecida a la del siguiente ejemplo, en el que "MyFirstJob" es el nombre del trabajo incluido en el archivo MyScripts.wsf.
CScript //Job:MyFirstJob MyScripts.wsf
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com. |