¿Cómo declaro un tipo de variable vbscript? [duplicar]
Lo siguiente arroja un error con o sin Option Explicit
set.
Cree un archivo llamado dim.vbs
.
Dim a as String
Luego, ejecute en el símbolo del sistema.
cscript dim.vbs
Error de compilación de Microsoft VBScript: fin esperado de la declaración
¿Hay alguna forma de forzar el tipo de variable con o sin un Option Explicit
conjunto?
Respuestas
¿Cómo declaro un tipo de variable en vbscript?
No puedes.
- VBScript no admite el concepto de variables de tipo estático.
- VBScript es un lenguaje de interfaz para el entorno ActiveScripting de Windows.
- Este entorno está alojado por
cscript
(para la línea de comandos) ywscript
(cuando no desea que aparezca una ventana de CMD). - El entorno también está alojado en IIS para Classic ASP
.asp
/.asa
y anteriormente Internet Explorer (antes de Internet Explorer 9), donde era la base de su motor JavaScript.- "JScript" es la marca (o dialecto) de JavaScript que también es compatible con ActiveScripting: tanto VBScript como JScript comparten similitudes en lo que son capaces de hacer.
- Este entorno está alojado por
- ActiveScripting está diseñado para trabajar con objetos COM.
La sintaxis de VBScript es un subconjunto de VBA y en gran medida es mutuamente inteligible porque VBA escribirá implícitamente variables sin una definición de tipo estático como un Variant
objeto COM , que es aproximadamente equivalente (y posiblemente idéntico, lo olvido) al tipo subyacente real utilizado por las variables de VBScript.
(Internamente se escribe VBScript : de lo contrario, sería imposible que VBScript use COM. Puede notar que hay algo de escritura bajo el capó debido a cómo necesita usar las palabras clave Set
y Let
según el tipo esperado de un valor, o cómo solo se puede usar Const
en VBScript con ciertos tipos de valor literal, y así sucesivamente).
Por analogía: tiene una licencia de conducir para un automóvil de pasajeros (sabe cómo escribir VBA) y decide conducir una carretilla elevadora (VBScript), porque sabe cómo conducir un automóvil de pasajeros y porque los controles / interfaz se ven lo mismo (tiene volante, freno de mano, asiento del conductor, velocímetro) que tus habilidades como conductor de un vehículo de pasajeros significan que deberías poder conducir una carretilla elevadora de inmediato y sin problemas. Usted no puede y no lo hará: las carretillas elevadoras se manejan de manera muy diferente (por ejemplo, la dirección de las ruedas traseras, la conducción eléctrica y muchas regiones requieren una licencia especial para los conductores de carretillas elevadoras por este motivo).
A pesar de su no posible declarar variables con tipos específicos de EBV como lo haría en VB o VBA, no son varias funciones de conversión que aseguren que la variable contiene el tipo de datos que desea.
CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr
por ejemplo
Option Explicit
Dim x
x = "1"
WScript.Echo TypeName(x)
x = CInt("1")
WScript.Echo TypeName(x)
x = CInt(1)
WScript.Echo TypeName(x)
produce
String
Integer
Integer
Solo tenga en cuenta que pasar valores no convertibles a una función de conversión puede causar errores de no coincidencia de tipos. Por ejemplo, una cadena como "x9x" no se puede convertir en un número, por lo que CInt ("x9x") provocará un error de tiempo de ejecución que detiene la ejecución.