Comment déclarer un type de variable vbscript? [dupliquer]
Ce qui suit génère une erreur avec ou sans Option Explicitjeu.
Créez un fichier nommé dim.vbs.
Dim a as String
Ensuite, exécutez à l'invite de commande.
cscript dim.vbs
Erreur de compilation Microsoft VBScript: fin prévue de l'instruction
Existe-t-il un moyen de forcer le type de variable avec ou sans Option Explicitjeu?
Réponses
Comment déclarer un type de variable dans vbscript?
Vous ne pouvez pas.
- VBScript ne prend pas en charge le concept de variables typées statiquement.
- VBScript est un langage frontal pour l'environnement ActiveScripting de Windows.
- Cet environnement est hébergé par
cscript(pour la ligne de commande) etwscript(lorsque vous ne voulez pas qu'une fenêtre CMD apparaisse). - L'environnement est également hébergé par IIS pour ASP classique
.asp/.asa, et anciennement Internet Explorer (avant Internet Explorer 9) où il était la base de son moteur JavaScript.- «JScript» est la marque (ou le dialecte) de JavaScript également pris en charge par ActiveScripting: VBScript et JScript partagent des similitudes dans ce dont ils sont tous deux capables.
- Cet environnement est hébergé par
- ActiveScripting est conçu pour travailler avec des objets COM.
La syntaxe de VBScript est un sous-ensemble de VBA et largement mutuellement intelligible parce que VBA typera implicitement des variables sans définition de type statique en tant Variantqu'objet COM , qui est à peu près équivalent (et peut-être identique, j'oublie) au type sous-jacent réel utilisé par les variables de VBScript.
(En interne, VBScript est tapé: sinon, il serait impossible pour VBScript d'utiliser COM. Vous pouvez voir qu'il y a une saisie sous le capot en raison de la façon dont vous devez utiliser les mots Set- Letclés et en fonction du type attendu d'une valeur, ou ne peut être utilisé Constdans VBScript qu'avec certains types de valeurs littérales, et ainsi de suite).
Par analogie: vous avez un permis de conduire pour une voiture particulière (vous savez écrire VBA) et vous décidez de conduire un chariot élévateur (VBScript) - parce que vous savez conduire une voiture particulière et parce que les commandes / l'interface ont l'air le même (il a un volant, un frein à main, un siège conducteur, un compteur de vitesse) que vos compétences en tant que conducteur de voiture de tourisme signifient que vous devriez être capable de conduire un chariot élévateur immédiatement et sans aucun problème. Vous ne pouvez pas et vous ne le ferez pas: les chariots élévateurs se comportent très différemment (par exemple, la direction des roues arrière, la propulsion électrique, et de nombreuses régions exigent une licence spécialisée pour les conducteurs de chariots élévateurs pour cette raison).
Bien qu'il ne soit pas possible de déclarer des variables avec des types spécifiques dans VBS comme vous le feriez dans VB ou VBA, il existe plusieurs fonctions de conversion qui garantiront que votre variable contient le type de données que vous désirez.
CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr
par exemple
Option Explicit
Dim x
x = "1"
WScript.Echo TypeName(x)
x = CInt("1")
WScript.Echo TypeName(x)
x = CInt(1)
WScript.Echo TypeName(x)
produit
String
Integer
Integer
Gardez simplement à l'esprit que la transmission de valeurs non convertibles dans une fonction de conversion peut entraîner des erreurs d'incompatibilité de type. Par exemple, une chaîne comme "x9x" ne peut pas être convertie en un nombre donc CInt ("x9x") provoquera une erreur d'exécution qui interrompt l'exécution.