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