ventajas vbs significado ejemplos ejecutar desventajas descargar vbscript include

significado - vbscript pdf



¿Cómo incluyo un archivo común en VBScript(similar a C#include)? (8)

¿Este VBScript se usa localmente o se sirve en estilo ASP clásico?

Si su ASP clásico, puede usar SSI hacerlo todo:

include "../Lib/StringUtilities.vbs"

VBScript no parece tener una forma de incluir un archivo común de funciones.

¿Hay una manera de lograr esto?


IIS 5 y superiores también permiten una etiqueta de script para incluir otros archivos de un archivo ASP. (¿VBScript es una página ASP o una secuencia de comandos de Windows?) Aquí hay un ejemplo:

<script language="VBScript" runat="server" src="include.asp"></script>

El comportamiento y las reglas son un poco diferentes de las incluidas en el servidor. Nota: nunca he intentado usar esta sintaxis desde ASP clásico.



El marco de "Windows Script Host" (si desea llamarlo así), ofrece un documento envoltorio XML que agrega funcionalidad sobre los archivos vbs regulares. Una de ellas es la posibilidad de incluir archivos de script externos de los sabores VBscript y Jscript. Nunca llegué muy adentro, pero creo que haría lo que quisieras hacer. http://msdn.microsoft.com/en-us/library/15x4407c(VS.85).aspx

Puede incluir JavaScript, VBScript o módulos de otros lenguajes de script WScript.

Ejemplo de archivo WSF:

<job id="IncludeExample"> <script language="JavaScript" src="sprintf.js"/> <script language="VBScript" src="logging.vbs"/> <script language="VBScript" src="iis-queryScriptMaps.vbs"/> </job>

Si el archivo anterior se llama "iis-scriptmaps.wsf", ejecútelo de esta manera con cscript.exe:

cscript.exe iis-scriptmaps.wsf


Definitivamente puede usar la etiqueta de script WSF en cscript:

<script language="VBScript" src="ADOVBS.INC"/>

Si usa ADOVBS.inc para un acceso ADODB asegúrese de eliminar el

<% %>

las etiquetas de ADOVBS.INC.


Puede crear una función (relativamente) pequeña en cada archivo en el que desee incluir otros archivos, de la siguiente manera:

sub includeFile (fSpec) dim fileSys, file, fileData set fileSys = createObject ("Scripting.FileSystemObject") set file = fileSys.openTextFile (fSpec) fileData = file.readAll () file.close executeGlobal fileData set file = nothing set fileSys = nothing end sub

y luego utilícelo para incluir archivos específicos; estos se ejecutan como si estuvieran en línea.

includeFile "commonapi.vbi" includeFile "dbcalls.vbi"

Básicamente abre el archivo, lee todo el contenido en una cadena y luego ejecuta esa cadena. No hay manejo de errores en las llamadas de E / S ya que este tipo de cosas generalmente se realiza una vez al inicio del programa, y ​​desea fallar si hay un problema que lo incluya.

Tenga en cuenta que la función includeFile se puede comprimir para:

Sub includeFile(fSpec) With CreateObject("Scripting.FileSystemObject") executeGlobal .openTextFile(fSpec).readAll() End With End Sub

O incluso a (si no eres adverso a las líneas largas):

Sub includeFile(fSpec) executeGlobal CreateObject("Scripting.FileSystemObject").openTextFile(fSpec).readAll() End Sub


Sé que este es un hilo viejo pero publico mi respuesta de todos modos para que otros puedan aprender lo que he aprendido sobre los archivos VBS y WSF por "prueba y error":

Entonces, para tener la misma funcionalidad que en otros idiomas, puede crear un archivo WSF e incluir todas sus bibliotecas de VBS, incluido el programa principal.

Algo como esto :

<job id="MainProg"> <script language="VBScript" src="Constants.vbs"/> <script language="VBScript" src="FileFunctions.vbs"/> <script language="VBScript" src="SendMail.vbs"/> <script language="VBScript" src="LoggingFunctions.vbs"/> <script language="VBScript" src="MainProgram.vbs"/> <script language="VBScript"> '' Here we call the main program MainProgram() </script> </job>

En Constants.vbs recopilar todas las constantes que desea utilizar más adelante y en los otros archivos VBS definir sus funciones. En su archivo de programa principal MainProgram.vbs , cree un sub llamado MainProgram() y escriba allí su programa. En esta subrutina, puede usar todas las constantes y funciones definidas en los otros archivos VBS.

Por ejemplo :

sub MainProgram() '' Local variables Dim strMessage, strSendTo, strSubject '' OpenFile is a function from FileFunctions.vbs strMessage = OpenFile("C:/Msg/message.html") strSendTo = "[email protected]" strSubject = "Daily report - " & date '' SendMessage is a function from SendMail.vbs '' cFrom and cServer are constants from Constants.vbs SendMessage(cFrom, strSendTo, strSubject, strMessage, cServer) '' Logger is a function from LoggingFunctions.vbs Logger("Daily report sent - " & now()) end sub

Espero que entiendas la idea y podría ayudar a algunas personas a escribir mejores aplicaciones VBS :)


Sobre la base de la respuesta aceptada, aquí hay un sub procedimiento include que toma una ruta relativa a la ubicación del script en lugar del directorio de trabajo:

<!-- #include virtual="/PathTo/MyFile.vbs" -->

Tenga en cuenta que también puede usar . y .. partes en su camino para incluir archivos en carpetas principales, etc. y no importará desde dónde inicie el script. Ejemplo:

Sub include( relativeFilePath ) Set fso = CreateObject("Scripting.FileSystemObject") thisFolder = fso.GetParentFolderName( WScript.ScriptFullName ) absFilePath = fso.BuildPath( thisFolder, relativeFilePath ) executeGlobal fso.openTextFile( absFilePath ).readAll() End Sub