2. Die Ausführungsumgebungen von VBSCRIPT
2.1. Einleitung
Ein vbscript-Programm wird nicht direkt unter Windows ausgeführt, sondern in einem Container, der ihm einen Ausführungskontext und eine Reihe von ihm eigenen Objekten bereitstellt. Darüber hinaus kann das VBScript-Programm Objekte nutzen, die ihm vom Windows-System zur Verfügung gestellt werden; diese Objekte werden als ActiveX-Objekte bezeichnet.
![]() |
In diesem Dokument werden wir zwei Container verwenden: den Windows Scripting Host, der gemeinhin als WSH bezeichnet wird, und den Internet Explorer, der im Folgenden manchmal als IE bezeichnet wird. Es gibt noch viele weitere. So sind beispielsweise die MS-Office-Anwendungen Container für eine Ableitung von VB, die als VBA (Visual Basic for Applications) bezeichnet wird. Darüber hinaus gibt es zahlreiche Windows-Anwendungen, die es ihren Benutzern ermöglichen, die Grenzen des Betriebssystems zu überwinden, indem sie Programme entwickeln können, die innerhalb der Anwendung ausgeführt werden und deren spezifische Objekte nutzen.
Der Container, in dem das VBScript-Programm ausgeführt wird, spielt eine entscheidende Rolle:
- Die Objekte, die dem VBScript-Programm vom Container zur Verfügung gestellt werden, unterscheiden sich von Container zu Container. So stellt WSH einem VBS-Programm ein Objekt namens WScript zur Verfügung, das beispielsweise Zugriff auf die Netzwerkfreigaben und -drucker des Host-Rechners gewährt. IE hingegen stellt dem VBS-Programm ein Objekt namens document zur Verfügung, das das gesamte angezeigte Dokument HTML repräsentiert. Das VBS-Programm kann dann auf dieses Dokument zugreifen. Excel stellt einem Programm namens VBA Objekte zur Verfügung, die Arbeitsmappen, Arbeitsblattseiten, Diagramme usw. darstellen – also alle Objekte, die von Excel verarbeitet werden.
- Auch wenn die Objekte eines Containers einem VBScript-Programm seine volle Leistungsfähigkeit verleihen, können sie manchmal bestimmte Bereiche einschränken. So kann ein im Browser ausgeführtes VBScript-Programm IE aus Sicherheitsgründen nicht auf die Festplatte des Host-Rechners zugreifen.
Wenn also von VBScript-Programmierung die Rede ist, muss angegeben werden, in welchem Container das Programm ausgeführt wird.
Unter Windows ist VBScript nicht die einzige Sprache, die in den Containern WSH oder IE verwendet werden kann. Man kann beispielsweise JScript (=JavaScript), PerlScript (=Perl), Python usw. verwenden. Viele dieser Sprachen scheinen auf den ersten Blick VBScript überlegen zu sein. Letzteres hat jedoch einige wesentliche Vorteile:
- VB und seine Varianten VBSCRIPT und VBA sind auf Windows-Rechnern weit verbreitet. Kenntnisse dieser Sprache scheinen unverzichtbar zu sein.
- Es sind eher die Objekte, die ein Programm nutzen kann, als die von ihm verwendete Sprache, die seine Leistungsfähigkeit ausmachen. Viele dieser Objekte werden jedoch von den Containern bereitgestellt und nicht von den Sprachen selbst.
Ein Nachteil von VBSCRIPT ist, dass es nicht auf andere Systeme als Windows, beispielsweise Unix, übertragbar ist. Seine Konkurrenten JavaScript, Perl und Python sind dies hingegen. Wenn man auf heterogenen Systemen arbeiten muss, kann es interessant oder sogar unerlässlich sein, auf den verschiedenen Systemen dieselbe Sprache zu verwenden.
2.2. Der Container WSH
Der Container WSH (Windows Scripting Host) ermöglicht die Ausführung von Programmen, die in verschiedenen Sprachen geschrieben sind – darunter VBScript, JavaScript, PerlScript, Python usw. –, innerhalb von Windows. Damit eine Sprache in WSH verwendet werden kann, muss ein bestimmter Standard eingehalten werden. Jede Sprache, die diesen Standard erfüllt, kommt für die Ausführung in WSH in Frage. Es ist denkbar, dass sich die oben genannte Liste der in WSH ausführbaren Sprachen noch erweitern wird. Ein Container stellt den von ihm ausgeführten Programmen Objekte zur Verfügung, die ihnen ihre eigentliche Leistungsfähigkeit verleihen. Dies trägt dazu bei, die Unterschiede zwischen den Sprachen zu verwischen, da sie dann alle denselben Satz an Objekten verwenden. Die Entscheidung für eine bestimmte Sprache anstelle einer anderen kann somit eher eine Frage des Geschmacks als der Leistung sein.
Die Ausführung eines Programms in WSH erfolgt mithilfe von zwei ausführbaren Dateien: wscript.exe und cscript.exe. wscript.exe befindet sich normalerweise im Windows-Installationsverzeichnis, das üblicherweise %windir% heißt:
C:\ >echo %windir%
C:\WINDOWS
C:\>dir c:\windows\wscript.exe
WSCRIPT EXE 123 280 19/09/01 11:54 wscript.exe
L'exécutable cscript.exe se trouve lui sous %windir%\command :
C:\>dir c:\windows\cscript.* /s
Répertoire de C:\WINDOWS\COMMAND
CSCRIPT EXE 102 450 26/06/01 17:49 cscript.exe
Das „w“ in wscript steht für windows und das „c“ in cscript steht für console. Ein Skript kann wahlweise mit „wscript“ oder „cscript“ ausgeführt werden. Der Unterschied liegt in der Art und Weise, wie Meldungen auf dem Bildschirm angezeigt werden:
- wscript zeigt sie in einem Fenster an
- cscript zeigt sie auf dem Bildschirm an
Hier ist ein Skript coucou.vbs, das coucou auf dem Bildschirm anzeigt:
![]()
Öffnen wir ein Fenster mit dem Namen DOS und führen wir es nacheinander mit wscript und cscript aus:
DOS>wscript coucou.vbs

DOS>cscript coucou.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
coucou
Oben ist der Unterschied zwischen den beiden Modi deutlich zu erkennen. In diesem Dokument werden wir fast ausschließlich den Konsolenmodus cscript verwenden. Dieser Modus eignet sich für sogenannte „Batch“-Anwendungen, d. h. Anwendungen ohne Interaktion mit einem Benutzer über die Tastatur. Bei den vorstehenden Ergebnissen sind zwei Punkte zu beachten:
- Wir sind davon ausgegangen, dass sich die ausführbaren Dateien wscript.exe und cscript.exe beide im Verzeichnis „PATH“ des Rechners befinden, sodass sie durch einfache Eingabe ihrer Namen gestartet werden können. Wäre dies nicht der Fall, hätte man hier schreiben müssen:
- Es sei darauf hingewiesen, dass die in diesem Beispiel und im weiteren Verlauf des Dokuments verwendete wsh-Version die Version 5.6 ist.
- Die Quelldatei des Skripts hat die Endung .vbs. Diese Endung bezeichnet ein Skript vbscript, während ein Skript javascript durch die Endung .js bezeichnet wird.
Das Programm cscript verfügt über verschiedene Startoptionen, die man erhält, wenn man cscript ohne Argumente ausführt:
Das Argument //nologo unterdrückt die Anzeige des wsh-Banners:
2.3. Die Form eines Skripts WSH
Wir haben gerade ein erstes Skript gesehen: coucou.vbs
![]()
Wir haben darauf hingewiesen, dass die Dateiendung .vbs auf ein Skript mit der Bezeichnung vbscript hinweist. Dies ist jedoch keine zwingende Vorgabe. Wir hätten das Skript auch in eine Datei mit der Endung .wsf in der folgenden, komplexeren Form einfügen können:

Die Ausführung dieses Skripts ergibt Folgendes:
Ein Skript mit der Endung WSH kann verschiedene Sprachen mischen:

Die Ausführung dieses Skripts ergibt Folgendes:
Wir halten folgende Punkte fest:
- Der Container WSH ist nicht an eine bestimmte Sprache gebunden. Ein WSH-Skript kann verschiedene Sprachen in einer Datei mit der Endung .wsf mischen
- Das Skript wird dann von den Tags <job id="..."> ... </job> umschlossen
- Innerhalb der Anwendung (=Job) werden die von den verschiedenen Codeabschnitten verwendeten Sprachen durch die Tags <script language="...."> .... </script> gekennzeichnet
- Diese Auszeichnungssprache hat einen Namen: XML für eXtended Markup Language. XML definiert keine Tags, sondern Regeln für die Anordnung von Tags. Hier müsste man also sagen, dass die in einem WSH-Skript verwendete Auszeichnungssprache dem Standard XML entspricht.
Im weiteren Verlauf werden wir in .vbs-Dateien ausschließlich VBScript verwenden.
2.4. Das Objekt WSCRIPT
Der Container WSH stellt den von ihm ausgeführten Skripten ein Objekt namens wscript zur Verfügung. Ein Objekt verfügt über Eigenschaften und Methoden:
![]() |
Ein Objekt Obj verfügt über Eigenschaften Pi, die seinen Zustand festlegen. So kann ein Objekt thermomètre eine Eigenschaft température haben. Diese Eigenschaft ist einer der Aspekte des Zustands des Thermometers. Ein weiterer Aspekt könnte die maximale Temperatur Tmax sein, die es aushalten kann.
Das Objekt Obj kann Methoden Mj besitzen, die es externen Akteuren ermöglichen, entweder:
- seinen Zustand abfragen
- seinen Zustand zu ändern
So könnte unser Thermometer, sofern es elektronisch ist, eine Methode allumer haben, die es einschaltet, eine weitere éteindre, die es ausschaltet, und eine weitere afficher, die die Gleichgewichtstemperatur anzeigt, sobald diese erreicht ist. In der Programmierung ist eine Methode eine Funktion, die Argumente entgegennehmen und Ergebnisse zurückgeben kann.
In VBScript werden die Eigenschaften Pi eines Objekts Obj als Obj.Pi und die Methoden Mj als Obj.Mj bezeichnet. Das Objekt „wscript“ von WSH ist ein wichtiges Objekt für die Methoden, die es den Skripten zur Verfügung stellt. So ermöglicht beispielsweise seine Methode echo die Anzeige einer Meldung. Die Syntax dieser Methode lautet wie folgt:
Die Werte der Argumente von argi werden dann in einem Fenster (Ausführung über wscript) oder auf dem Bildschirm (Ausführung über cscript unter DOS) angezeigt.
2.5. Der Internet Explorer als Container
Wir haben oben erwähnt, dass der Internet Explorer als Container für ein VBScript dienen kann. Lassen Sie uns dies anhand eines einfachen Beispiels veranschaulichen. Es folgt eine HTML-Seite (HyperText Markup Language) mit dem Namen coucou2.htm, die kein VBScript enthält.
21

Das direkte Laden dieser Seite durch den Internet Explorer (Fichier/Ouvrir) führt zu folgenden Ergebnissen:
![]() |
Der Inhalt der Datei coucou2.htm zeigt uns, dass HTML eine Auszeichnungssprache ist. Wer die Sprache HTML kennt, kennt auch diese Tags. Diese dienen in erster Linie dazu, dem Browser mitzuteilen, wie ein Dokument angezeigt werden soll. HTML entspricht nicht genau dem Standard XML, kommt diesem jedoch sehr nahe.
In coucou2.htm gibt es zwei darzustellende Informationen, die mit 1 und 2 gekennzeichnet sind. Wir haben sie ebenfalls in der daraus erstellten Anzeige dargestellt. Durch das Tag <title>...</title> wurde die Information 1 in die Titelleiste des Browsers platziert, und durch das Tag <body>..</body> wurde die Information 2 im Dokumentbereich des Browsers platziert.
Wir werden nicht weiter auf die Sprache HTML eingehen. Ändern wir die Datei coucou2.htm, indem wir ein VBScript einfügen, und nennen wir sie nun coucou1.htm:

Das VBScript-Skript wurde in das Tag <head>...</head> eingefügt. Es hätte auch an einer anderen Stelle platziert werden können. Es zeigt beim ersten Laden der Seite „Hallo“ an. Hier muss es sich um den Internet Explorer handeln, da nur dieser Browser standardmäßig als Container für VBScript-Skripte dient. Die resultierende Anzeige sieht dann wie folgt aus:

gefolgt von der normalen Darstellung der Seite:

Das ausgeführte Skript lautete wie folgt:
![]()
Während der Container WSH dem Skript ein Objekt namens wscript zur Verfügung stellte, mit dem mithilfe der Methode echo Anzeigen erstellt werden konnten, stellt hier IE dem Skript ein Objekt namens window zur Verfügung, mit dem mithilfe der Methode alert Ausgaben erzeugt werden können. Um also „Hallo“ anzuzeigen, schreibt man wscript.echo „Hallo“ in WSH und window.alert „Hallo“ in IE. Auch hier lässt sich zeigen, dass man im Container IE tatsächlich mehrere Sprachen verwenden kann. Wir greifen das bereits in WSH vorgestellte Beispiel innerhalb einer Seite coucou3.htm wieder auf:

Beim Laden dieser Seite durch IE werden zunächst drei Informationsfenster angezeigt:
![]() | ![]() | ![]() |
bevor die endgültige Seite angezeigt wird:

2.6. Die Hilfe zu WSH
WSH verfügt über ein Hilfesystem, das sich normalerweise im Ordner „C:\Program Files\Microsoft Windows Script\ScriptDocs“ befindet. Bei der Version 5.6 von WSH heißt die Hilfedatei „SCRIPT56.CHM“. Ein Doppelklick auf diese Datei reicht aus, um die Hilfe aufzurufen. Es kann praktisch sein, eine Verknüpfung auf dem Desktop anzulegen.
Nach dem Start sieht es in etwa wie folgt aus:

Darin findet man die Hilfe zum Container „WSH“, aber auch die Hilfe zu den Sprachen VBScript und JavaScript. Es handelt sich um ein unverzichtbares Werkzeug sowohl für Anfänger als auch für erfahrene Programmierer. Es gibt mehrere Möglichkeiten, mit dieser Hilfe zu arbeiten:
- Man weiß nicht so recht, wonach man sucht. Man möchte einfach nur entdecken, was angeboten wird. Dann kann man die oben gezeigte Registerkarte „Sommaire“ nutzen. Man kann sich beispielsweise ansehen, was für VBScript angeboten wird:

In der Hilfe zu VBscript finden Sie zahlreiche Informationen, die in diesem Dokument nicht enthalten sind.
- Sie können nach etwas Bestimmtem suchen, zum Beispiel nach der Verwendung der Funktion msgbox aus VBscript. Verwenden Sie dazu die Registerkarte Rechercher:

Die Hilfe listet alle Themen auf, die mit dem gesuchten Begriff in Zusammenhang stehen. In der Regel sind die ersten vorgeschlagenen Themen am relevantesten. Das ist auch hier der Fall, wo das erste vorgeschlagene Thema das richtige ist. Doppelklicken Sie einfach darauf, um die Informationen zu diesem Thema anzuzeigen:






