Errores y dificultades comunes

En VBScriptUn lenguaje de scripting de Visual Basic es un lenguaje de programación de alto nivel desarrollado por Microsoft®. existen dos tipos de variables:

Tipo de variable Descripción
Simple Las variables son tipos True, como entero, booleano y cadena.
Objetos Son elementos complejos cuya funcionalidad se expone a través de la interfaz de objetos de automatización.

Es importante declarar los tipos de objetos de automatización como objetos antes de asignarles valores.

Importante

Se le recomienda encarecidamente asignar un valor a todas las variables y todos los objetos declarados.

Ejemplo

Function Main

'declarar el objeto que se utilizará

Dim nameStr As String

'asignar un valor a la variable

nameStr = "Se trata de una asignación de texto de prueba"

'mostrar el resultado en la ventana de actividad del detector de la asignación

echo nameStr

'devolver el resultado

Main = true

End Function

Para que cuente con un ejemplo más avanzado, en el script a continuación se mencionarán los servicios instalados en el equipo de destino (localhost = 127.0.0.1). Copie y pegue el siguiente texto en el depurador de scripts y ejecútelo (F5). En la ventana de depuración, verá la lista de servicios instalados en el equipo local.

Function main

'declare the objects we will need to use

Dim wmi As Object

Dim objswbemobject As Object

'declarar otras variables que se necesitan

Dim strComputer As String

Dim cr As String

strComputer = "127.0.0.1"

'Retorno de carro

cr = Chr(13) + Chr(10)

'vincular con gancho con el objeto wmi

Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

'Verificar que el gancho haya sido correcto

If wmi is Nothing Then echo ("error1")

'Devolver la instancia de servicios de la wmi

Set wmiinst=wmi.instancesof("Win32_Service")

'Verificar que la instancia esté disponible

If wmiinst is Nothing Then echo ("error2")

'Aplicar loop true a cada instancia

For Each objswbemobject In wmiinst

echo("Service Name= ")

'Mostrar servicios

echo(objswbemobject.DisplayName+cr)

Siguiente

End Function

Nota

Si intenta utilizar un objeto de automatización sin declaración, se producirá un error en el script durante la compilacón. A modo de ejemplo, considere la misma sección de código aunque con la ausencia de una declaración completa de la WMI de la variable de objeto. De forma instantánea cuando intente ejecutar el script, se le presentarán un mensaje de error y una indicación clara de la línea en la que se produjo el error:

Function main

Dim wmi 'WARNING : missing “as object”

Dim objswbemobject As Object

End Function