Wie deklariere ich ein vbscript vom Variablentyp? [Duplikat]
Das Folgende löst einen Fehler mit oder ohne Option ExplicitSatz aus.
Erstellen Sie eine Datei mit dem Namen dim.vbs.
Dim a as String
Führen Sie dann an der Eingabeaufforderung aus.
cscript dim.vbs
Microsoft VBScript-Kompilierungsfehler: Erwartetes Ende der Anweisung
Gibt es eine Möglichkeit, den Variablentyp mit oder ohne Out- Option ExplicitSet zu erzwingen ?
Antworten
Wie deklariere ich einen Variablentyp in vbscript?
Das kannst du nicht.
- VBScript unterstützt das Konzept statisch typisierter Variablen nicht.
- VBScript ist eine Frontend-Sprache für die ActiveScripting-Umgebung von Windows.
- Diese Umgebung wird gehostet von
cscript(für die Befehlszeile) undwscript(wenn kein CMD-Fenster angezeigt werden soll). - Die Umgebung wird auch von IIS für Classic ASP
.asp/.asaund früher von Internet Explorer (vor Internet Explorer 9) gehostet , wo sie die Grundlage für die JavaScript-Engine bildete.- "JScript" ist die Marke (oder der Dialekt) von JavaScript, die auch von ActiveScripting unterstützt wird: Sowohl VBScript als auch JScript haben Ähnlichkeiten in dem, was sie beide können.
- Diese Umgebung wird gehostet von
- ActiveScripting ist für die Arbeit mit COM-Objekten vorgesehen.
Die Syntax von VBScript ist eine Teilmenge der VBAs und weitgehend gegenseitig verständlich, da VBA implizit Variablen ohne statische Typdefinition als COM- VariantObjekt eingibt , was in etwa dem von VBScript-Variablen verwendeten realen zugrunde liegenden Typ entspricht (und möglicherweise identisch ist, vergesse ich).
(Intern VBScript wird getippt: sonst wäre es für VBScript zu verwenden COM unmöglich sein , Sie sagen können , es gibt einige Typisierung unter der Motorhaube , weil, wie Sie benötigen , um die verwenden. SetUnd LetKeywords auf dem erwarteten Typ eines Werts basiert, oder wie Sie kann nur Constin VBScript mit bestimmten Literalwerttypen usw. verwendet werden.
Analog dazu: Sie haben einen Führerschein für einen Pkw (Sie wissen, wie man VBA schreibt) und Sie entscheiden sich für das Fahren eines Gabelstaplers (VBScript) - weil Sie wissen, wie man einen Pkw fährt und weil die Steuerung / Schnittstelle aussieht Das gleiche (es hat ein Lenkrad, eine Handbremse, einen Fahrersitz, einen Tacho), das Ihre Fähigkeiten als Pkw-Fahrer bedeuten, dass Sie in der Lage sein sollten, einen Gabelstapler sofort und ohne Probleme zu fahren. Sie können und Sie werden nicht: Gabelstapler fahren sehr unterschiedlich (z. B. Hinterradlenkung, elektrischer Antrieb und viele Regionen erfordern aus diesem Grund eine spezielle Lizenz für Gabelstaplerfahrer ).
Obwohl es nicht möglich ist, Variablen mit bestimmten Typen in VBS wie in VB oder VBA zu deklarieren, gibt es mehrere Konvertierungsfunktionen, die sicherstellen, dass Ihre Variable den gewünschten Datentyp enthält.
CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr
zum Beispiel
Option Explicit
Dim x
x = "1"
WScript.Echo TypeName(x)
x = CInt("1")
WScript.Echo TypeName(x)
x = CInt(1)
WScript.Echo TypeName(x)
produziert
String
Integer
Integer
Beachten Sie jedoch, dass die Übergabe nicht konvertierbarer Werte an eine Konvertierungsfunktion zu Typfehlanpassungsfehlern führen kann. Beispielsweise kann eine Zeichenfolge wie "x9x" nicht in eine Zahl konvertiert werden, sodass CInt ("x9x") einen Laufzeitfehler verursacht, der die Ausführung anhält.