Microsoft Windows Script-Technologien

In diesem Abschnitt

JScript
Die leistungsfähige Skriptsprache von Microsoft, speziell für das Internet. JScript.NET, ist die nächste Generation der Microsoft-Implementation der ECMA 262-Sprache. Zu den Verbesserungen in JScript.NET – das zusammen mit ECMAScript Edition 4 entwickelt wird – gehören wirklich kompilierter Code, Variablen mit und ohne Typbindung, Klassen (mit Vererbung, Überladen von Funktionen, Eigenschaftszugriff usw.), Pakete, sprachenübergreifende Unterstützung und Zugriff auf die .NET-Frameworks.
VBScript
Microsoft Visual Basic Scripting Edition ermöglicht das Erstellen aktiver Skripte für eine Vielzahl von Umgebungen, einschließlich Webclientscripting in Microsoft Internet Explorer und Webserverscripting in Microsoft Internet-Informationsdiensten.
Script-Laufzeit
Ein Dictionary-Objekt ist das Äquivalent eines assoziativen Arrays in PERL. Elemente können aus beliebigen Arten von Daten bestehen und werden im Array gespeichert. Jedem Element wird ein eindeutiger Schlüssel zugeordnet. Der Schlüssel wird verwendet, um ein einzelnes Element abzurufen, und besteht in der Regel aus einer ganzen Zahl oder einer Zeichenfolge, kann aber auch von einem anderen Typ (außer vom Typ Array) sein.

Das FileSystemObject (FSO)-Objektmodell ermöglicht es Ihnen, Ordner und Dateien mit Hilfe der bekannten Syntax Objekt.Methode mit einer Vielzahl von Eigenschaften, Methoden und Ereignissen zu verarbeiten.

Script Encoder ist ein einfaches Befehlszeilentool, mit dem Skriptentwickler das fertige Skript verschlüsseln können, damit Webhosts und Webclients die Quelle weder anzeigen noch ändern können.

Windows Script Components
Microsoft® Windows® Script Components bieten Ihnen eine einfache Methode zur Erstellung von COM-Komponenten unter Verwendung von Skriptsprachen wie z. B. Microsoft® Visual Basic® Scripting Edition (VBScript) und Microsoft® JScript®.
Windows Script Host
Microsoft Windows Script Host (WSH) ist ein Tool, mit dem Sie Visual Basic Scripting Edition und JScript systemeigen innerhalb des Basisbetriebssystems ausführen können, entweder unter Windows 95 oder unter Windows NT 4.0.
Windows Script Interfaces
Microsoft Windows Script Interfaces stellt eine neue Methode zum Hinzufügen von Scripting- und OLE-Automatisierungsfähigkeiten zu einer Anwendung dar.

Verwandte Abschnitte

Homepage der Microsoft Windows Script-Technologien
Eine umfassende Site zu den Script-Technologien von Microsoft. Enthält die vollständige Dokumentation zu JScript, VBScript, Windows Script Host, Windows Script Components, Remote Scripting, Script Control und Script Debugger. Hier können Sie die jeweils aktuellen Versionen von JScript und VBScript sowie Updates und Erweiterungen zu anderen Script-Technologien von Microsoft downloaden.

© 2001 Microsoft Corporation. Alle Rechte vorbehalten.

Build: Thema-Version 5.6.9309.1546


JScript

JScript

JScript-Benutzungshandbuch

Verwenden von JScript in Internet Explorer

JScript-Sprachverzeichnis


JScript-Benutzerhandbuch

Grundlegende Informationen zu JScript

JScript für Fortgeschrittene


Grundlegende Informationen zu JScript

Was ist JScript?

Schreiben von JScript-Code

JScript-Variablen

JScript-Datentypen

JScript-Operatoren

Operatorvorrang

Steuern des Programmablaufs

Bedingte Kompilierung

Variablen für die bedingte Kompilierung

JScript-Funktionen

JScript-Objekte

Intrinsische Objekte

Erstellen eigener Objekte

Reservierte Wörter von JScript


Was ist JScript?

JScript ist die Microsoft-Implementierung der Sprachspezifikation ECMA 262 (ECMAScript Edition 3). JScript ist mit nur wenigen kleinen Ausnahmen (für die Abwärtskompatibilität) eine vollständige Implementierung des ECMA-Standards. Diese Übersicht erläutert die ersten Schritte mit JScript.

Verwenden von JScript

JScript ist eine interpretierte objektbasierte Skriptsprache. Obgleich sie über einen geringeren Funktionsumfang als umfangreichere objektorientierte Sprachen wie C++ verfügt, ist JScript für die beabsichtigten Zwecke leistungsfähig genug.

JScript ist weder eine eingeschränkte Version noch eine Vereinfachung einer anderen Sprache (sie ist z. B. nur entfernt und indirekt mit Java verwandt). Sie unterliegt jedoch Einschränkungen. So können Sie keine selbstständigen Anwendungen in ihr schreiben, und sie bietet keine integrierte Unterstützung zum Lesen und Schreiben von Dateien. Darüber hinaus können JScript-Skripten nur bei vorhandenem Interpreter oder "Host" ausgeführt werden, wie z. B. Active Server Pages (ASP), Internet Explorer (IE) oder Windows Script Host (WSH).

JScript ist eine lose typisierte Sprache. Lose typisiert bedeutet, dass Sie den Datentyp von Variablen nicht explizit deklarieren müssen. Tatsächlich geht JScript noch einen Schritt weiter. Es besteht in JScript keine Möglichkeit zur Deklaration von Datentypen. Darüber hinaus führt JScript in vielen Fällen Konvertierungen automatisch nach Bedarf durch. Wenn Sie z. B. eine Zahl einem Element hinzufügen, das aus Text besteht (eine Zeichenfolge), wird die Zahl in Text konvertiert.

Das weitere Benutzerhandbuch bietet eine Übersicht über die JScript-Funktionen. Ausführliche Informationen zur Sprachimplementierung finden Sie im Sprachverzeichnis.

Anmerkung Der Code vieler folgender Beispiele ist ausführlicher und weniger kompakt als der Code, den Sie wahrscheinlich auf realen Webseiten finden. Die verfolgte Absicht ist das Verdeutlichen der Konzepte, nicht die Darstellung einer optimalen Codierung hinsichtlich Prägnanz und Stil. Es ist auf jeden Fall eine gute Sache, Code zu schreiben, den Sie lesen und leicht verstehen können, und zwar sechs Monate, nachdem Sie ihn geschrieben haben.


Schreiben von JScript-Code

Wie bei vielen anderen Programmiersprachen auch wird der Code von Microsoft JScript-Programmen im Textformat geschrieben und besteht aus Anweisungen, Blöcken von zusammengehörigen Anweisungen und Kommentaren. In Anweisungen können Sie Variablen, Daten (wie Zeichenfolgen und Zahlen (auch "Literale" genannt)) und Ausdrücke verwenden.

Anweisungen

Ein JScript-Programm ist eine Gruppe von Anweisungen. Eine JScript-Anweisung entspricht einem vollständigen englischen Satz. JScript-Anweisungen kombinieren Ausdrücke so, dass sie einen vollständigen Task ausführen.

Eine Anweisung besteht aus einem oder mehren Ausdrücken, Schlüsselwörtern oder Operatoren (Symbolen). In der Regel wird eine Anweisung auf einer einzelnen Zeile geschrieben, obwohl eine Anweisung auch über zwei oder mehr Zeilen geschrieben werden kann. Es können auch zwei oder mehrere Anweisungen auf derselben Zeile geschrieben werden, indem die Anweisungen durch Semikolon voneinander getrennt werden. Im Allgemeinen beginnt jede neue Zeile mit einer neuen Anweisung. Es wird empfohlen, die Anweisungen ausdrücklich zu beenden. Verwenden Sie dafür das Semikolon (;), das JScript-Endzeichen für Anweisungen. Im Folgenden finden Sie zwei Beispiele für JScript-Anweisungen.

einVogel = "Amsel"; // Weisen Sie den Text "Amsel" zur Variable einVogel zu
var heute = new Date(); // Weisen Sie dem heutigen Datum die Variable heute zu

Eine von geschweiften Klammern ({}) eingeschlossene Gruppe von JScript-Anweisungen wird als Block bezeichnet. Anweisungen, die in einem Block gruppiert sind, können im Allgemeinen wie eine einzelne Anweisung verwendet werden. Das bedeutet, dass Sie Blöcke an den meisten Stellen verwenden können, an denen JScript eine einzelne Anweisung erwarten würde. Zu den wichtigen Ausnahmen gehören die Kopfzeilen von for- und while-Schleifen. Beachten Sie, dass die einfachen Anweisungen in einem Block mit einem Semikolon beendet werden, der Block selbst jedoch nicht.

Im Allgemeinen werden Blöcke in Funktionen und Bedingungen verwendet. Beachten Sie, dass, abweichend von C++ und anderen Programmiersprachen, JScript Blöcke nicht als einen neuen Gültigkeitsbereich ansieht; nur Funktionen erstellen einen neuen Gültigkeitsbereich. Im folgenden Beispiel beginnt die erste Anweisung die Definition einer Funktion, die aus einem Block mit fünf Anweisungen besteht. Dem Block folgen drei Anweisungen, die nicht in Klammern eingeschlossen werden. Diese Anweisungen sind kein Block und deshalb auch kein Bestandteil der Funktionsdefinition.

function Konvertieren(zoll)  {
   fuss = zoll / 12;  //  Diese fünf Anweisungen stehen in einem Block.
   meilen = fuss / 5280;
   seemeilen = fuss / 6080;
   cm = zoll * 2.54;
   meter = zoll / 39.37;
}
km = meter / 1000;  // Diese drei Anweisungen stehen nicht in einem Block.
kradius = km;
mradius = meilen;

Kommentare

Ein einzeiliger JScript-Kommentar beginnt mit zwei Schrägstrichen (//).

eineGuteIdee = "Kommentieren Sie Ihren Code sorgfältig.";  //  Dies ist ein einzeiliger Kommentar.

Ein mehrzeiliger JScript-Kommentar beginnt mit einem Schrägstrich und einem Sternchen (/*) und endet mit der umgekehrten Kombination (*/).

/*
Dies ist ein mehrzeiliger Kommentar, der das vorherige Codebeispiel erläutert.

Die Anweisung weist der Variablen eineGuteIdee einen
Wert zu. Der in Anführungszeichen eingeschlossene
Wert wird als Literal bezeichnet. Ein Literal enthält
 explizite Informationen, es verweist anders als andere
 Konstrukte nicht indirekt auf Informationen.
(Die Anführungszeichen sind nicht Bestandteil des Literals.)
*/
Anmerkung Wenn Sie versuchen, einen mehrzeiligen Kommentar in einen anderen einzubetten, interpretiert JScript den daraus resultierenden mehrzeiligen Kommentar nicht wie erwartet. Das Sternchen und der Schrägstrich (*/), die das Ende des eingebetteten Kommentars markieren, werden als das Ende des gesamten mehrzeiligen Kommentars interpretiert. Dies bedeutet, dass der Text, der dem eingebetteten mehrzeiligen Kommentar folgt nicht auskommentiert wird, sondern als JScript-Code interpretiert wird, wodurch Syntaxfehler erzeugt werden.

Es wird empfohlen, dass Sie alle Kommentare als Blöcke mit einzeiligen Kommentaren schreiben. Auf diese Weise können Sie später große Codesegmente mit einem mehrzeiligen Kommentar auskommentieren.

// Ein weiterer mehrzeiliger Kommentar, als Folge von einzeiligen Kommentaren geschrieben.
// Nachdem die Anweisung ausgeführt wurde, können Sie auf den Inhalt der Variablen eineGuteIdee
// verweisen, indem Sie den Namen verwenden. Dies wird in der nächsten Anweisung gezeigt. In dieser
// wird der Variablen eineGuteIdee ein Zeichenfolgenliteral hinzugefügt, um eine neue Variable zu erstellen.

var erweiterteIdee = eineGuteIdee + "Sie wissen nicht, wann Sie herauskriegen müssen, wie der Code funktioniert.";

Zuweisungen und Gleichheit

Das Gleichheitszeichen (=) wird in JScript-Anweisungen verwendet, um Werte zu Variablen zuzuweisen; es ist ein Zuweisungsoperator. Der linke Operand des Operators = ist stets ein Lvalue. Beispiele für Lvalues sind:

  • Variablen,
  • Arrayelemente und
  • Objekteigenschaften.

Der rechte Operand des Operators = ist stets ein Rvalue. Rvalues können ein willkürlicher Wert eines beliebigen Typs sein, einschließlich des Wertes für einen Ausdruck. Im Folgenden sehen Sie ein Beispiel für eine JScript-Zuweisungsanweisung.

eineZahl = 3;

Der JScript-Compiler interpretiert diese Anweisung wie folgt: "Weise der Variablen eineZahl den Wert 3 zu", oder "eineZahl nimmt den Wert 3 an".

Sie müssen den Unterschied zwischen dem Operator = (Zuweisung) und dem Operator == (Gleichheit) verstehen. Wenn Sie zwei Werte vergleichen möchten, um festzustellen, ob diese gleich sind, verwenden Sie zwei Gleichheitszeichen (==). Eine genaue Beschreibung finden Sie unter Steuern des Programmablaufs.

Ausdrücke

Ein JScript-Ausdruck ist ein "Satz" von JScript, den ein JScript-Interpreter zum Erzeugen eines Wertes auswerten kann. Der Wert kann ein beliebiger gültiger JScript-Typ sein (eine Zahl, eine Zeichenfolge, ein Objekt usw.). Die einfachsten Ausdrücke sind Literale. Im Folgenden sehen Sie einige Beispiele für JScript-Literalausdrücke.

3.9                       // numerisches Literal
"Hallo!"                  // Zeichenfolgenliteral
false                     // Boolesches Literal
null                      // Nullwert des Literals
{x:1, y:2}                // Objektliteral
[1,2,3]                   // Arrayliteral
function(x){return x*x;}  // Funktionsliteral

Kompliziertere Ausdrücken können Variablen, Funktionsaufrufe und weitere Ausdrücke enthalten. Ausdrücke können kombiniert werden, um komplexe Ausdrücke mithilfe der Operatoren zu erstellen. Beispiele für Operatoren sind:

+  // Addition
-  // Subtraktion
*  // Multiplikation
/  // Division

Im Folgenden sehen Sie einige Beispiele für komplexe JScript-Ausdrücke.

var einAusdruck = 3 * (4 / 5) + 6;;
var einZweiterAusdruck = Math.PI * radius * radius;
var einDritterAusdruck = einZweiterAusdruck + "%" + einAusdruck;
var einVierterAusdruck = "(" + einZweiterAusdruck + ") % (" + einAusdruck + ")";


JScript-Variablen

In Programmiersprachen wird ein Teil der Daten zum Quantifizieren eines Konzepts verwendet.

Wie alt bin ich?

In JScript ist eine Variable der Name, den Sie dem Konzept gegeben haben; es stellt den Wert zu einem gegebenen Zeitpunkt dar. Wenn Sie die Variable verwenden, dann drücken Sie die Daten aus, für die diese Variable steht. Beispiel:

AnzahlDerVerbleibendenTage = EndeDatum – HeutigesDatum;

In mechanischem Sinne können Sie die Variablen zum Speichern, Einfügen und Ändern aller unterschiedlichen Werte verwenden, die in Ihrem Skript angezeigt werden. Erstellen Sie stets sinnvolle Namen für die Variablen. Dies erleichtert das Verständnis zur Funktion Ihrer Skripten für andere.

Deklarieren von Variablen

Wenn eine Variable das erste Mal in Ihrem Skript angezeigt wird, wird sie deklariert. Durch diese erste Erwähnung der Variable wird diese im Speicher erfasst, damit Sie später in Ihrem Skript darauf verweisen können. Deklarieren Sie Variablen stets, bevor Sie sie verwenden. Verwenden Sie dazu das Schlüsselwort var.

var Anzahl;  // eine einfache Deklaration.
var Anzahl, Menge, Ebene;  // mehrere Deklarationen mit einem einzelnen Schlüsselwort var.
var Anzahl = 0, Menge = 100;  // Deklaration und Initialisierung der Variable in einer Anweisung.

Wenn Sie die Variable nicht in einer Anweisung var deklarieren, nimmt die Variable automatisch den JScript-Wert undefined an. Obwohl es nicht sicher ist, so vorzugehen, ist es zulässige JScript-Syntax, wenn das Schlüsselwort var aus Ihrer Deklarationsanweisung entfernt wird. Wenn Sie so vorgehen, blendet der JScript-Interpreter den globalen Gültigkeitsbereich der Variable ein. Wenn Sie eine Variable auf der Prozedurebene deklarieren, obwohl Sie nicht möchten, dass diese im globalen Gültigkeitsbereich eingeblendet wird, müssen Sie in diesem Fall das Schlüsselwort var in der Deklaration der Variablen verwenden.

Benennen von Variablen

Der Variablenname ist ein Bezeichner. In JScript werden Bezeichner verwendet zum:

  • Benennen von Variablen,
  • Benennen von Funktionen und
  • Bereitstellen von Bezeichnungen für Schleifen.

JScript unterscheidet zwischen Groß- und Kleinschreibung. Dies bedeutet, dass ein Variablenname, wie z. B. meineZahl sich vom Variablenname MEINEZahl unterscheidet. Variablennamen können beliebig lang sein. Die Regel zum Erstellen von zulässigen Variablennamen ist wie folgt:

  • Das erste Zeichen muss ein ASCII-Buchstabe (Groß- oder Kleinbuchstabe) oder ein Unterstrich (_) sein. Beachten Sie, dass eine Zahl nicht als erstes Zeichen verwendet werden kann.
  • Für die weiteren Zeichen sind nur Buchstaben, Zahlen oder Unterstriche zulässig.
  • Der Variablenname darf kein reserviertes Wort sein.

Einige Beispiele für gültige Variablennamen:

_Seitenzahl
Teil9
Anzahl_Elemente

Einige ungültige Variablennamen:

99Ballons // Beginnt mit einer Zahl.
Smith&Wesson // Ein kaufmännisches Und-Zeichen (&) ist kein gültiges Zeichen für Variablennamen.

Wenn Sie eine Variable deklarieren und initialisieren möchten, ihr jedoch keinen bestimmten Wert zuweisen möchten, dann weisen Sie ihr den JScript-Wert null zu. Beispiel:

var bestesAlter = null;
var vielZuAlt = 3 * bestesAlter; // vielZuAlt hat den Wert 0.

Wenn Sie eine Variable deklarieren, ohne ihr einen Wert zuzuweisen, existiert sie zwar, hat aber den JScript-Wert undefined. Beispiel:

var aktuelleZahl;
var endgültigeZahl = 1 * aktuelleZahl; // endgültigeZahl hat den Wert NaN, da aktuelleZahl den Wert undefined hat.

Beachten Sie, dass in JScript der Hauptunterschied zwischen null und undefined darin liegt, dass sich null wie die Zahl 0 verhält, wohingegen undefined sich wie das Sonderzeichen NaN (Not a Number) verhält. Bei einem Vergleich sind die Werte null und undefined stets gleich. Sie können eine Variable deklarieren, ohne dass Sie das Schlüsselwort var in der Deklaration verwenden müssen, und ihm einen Wert zuweisen. Dies ist eine implizite Deklaration.

garKeineZeichenfolge = ""; // Die Variable garKeineZeichenfolge ist impliziert deklariert.

Sie können keine Variable verwenden, die noch nie deklariert wurde.

var Datenträger = Länge * Breite; // Fehler – Länge und Breite sind noch nicht vorhanden.

Erzwungene Konvertierungen

Der JScript-Interpreter kann lediglich Ausdrücke auswerten, in denen die Datentypen von Operanden gleich sind. Ohne erzwungene Konvertierung würde ein Ausdruck, der versucht, eine Operation auf zwei verschiedenen Datentypen (z. B. eine Zahl und eine Zeichenfolge) durchzuführen, ein fehlerhaftes Ergebnis erzeugen. Dies ist mit JScript nicht der Fall.

JScript ist eine Sprache mit flexibler Typbindung. Das bedeutet, dass ihre Variablen nicht von einem vorbestimmten Typ sind (im Gegensatz zu Sprachen mit strikter Typbindung wie C++). Stattdessen sind JScript-Variablen von einem Typ, der dem Typ des in ihnen enthaltenen Wertes entspricht. Ein Vorteil dieses Verhaltens liegt darin, dass es Ihnen die Flexibilität bietet, einen Wert so zu behandeln, als sei er von einem anderen Typ.

In JScript können Sie Operationen auf Werten unterschiedlicher Typen durchführen, ohne befürchten zu müssen, dass der JScript-Interpreter eine Ausnahme auslöst. Stattdessen ändert (konvertiert) der JScript-Interpreter automatisch einen der Datentypen in den des anderen Wertes und führt anschließend die Operation durch. Beispiele:

Operation | Ergebnis
Addition einer Zahl und einer Zeichenfolge | Die Zahl wird in eine Zeichenfolge konvertiert.
Addition eines booleschen Wertes und einer Zeichenfolge | Der boolesche Wert wird in eine Zeichenfolge konvertiert.
Addition einer Zahl und eines booleschen Wertes | Der boolesche Wert wird in eine Zahl konvertiert.

Betrachten Sie das folgende Beispiel.

var x = 2000;      // Eine Zahl.
var y = "Hallo";   // Eine Zeichenfolge.
x = x + y;         // Die Zahl wird in eine Zeichenfolge umgewandelt.
document.write(x); // Gibt 2000Hallo aus.

Verwenden Sie die parseInt-Methode, um eine Zeichenfolge explizit in eine Ganzzahl zu konvertieren. Verwenden Sie die parseFloat-Methode, um eine Zeichenfolge explizit in eine Zahl zu konvertieren. Beachten Sie, dass Zeichenfolgen zum Zweck des Vergleichs automatisch in äquivalente Zahlen konvertiert werden, jedoch für die Addition (Verkettung) Zeichenfolgen bleiben.


JScript-Datentypen

In JScript gibt es drei primäre Datentypen, zwei zusammengesetzte Datentypen und zwei spezielle Datentypen.

Die primären (einfachen) Datentypen sind:

  • Zeichenfolgen (String)
  • Zahlen (Number)
  • Boolesche Werte (Boolean)

Die zusammengesetzten (Referenz-) Datentypen sind:

  • Objekte (Object)
  • Array

Spezielle Datentypen sind:

  • Null
  • Undefined

String-Datentyp

Ein Zeichenfolgenwert besteht aus einer Kette von null oder mehr Unicode-Zeichen (Buchstaben, Ziffern und Satzzeichen), die aneinander gereiht sind. Der String-Datentyp dient zur Darstellung von Text in JScript. Sie können Zeichenfolgenliterale in Ihre Skripte einfügen, indem Sie sie in übereinstimmende einfache oder doppelte Anführungszeichen einschließen. Doppelte Anführungszeichen können in Zeichenfolgen enthalten sein, die von einfachen Anführungszeichen umgeben sind, und einfache Anführungszeichen können in Zeichenfolgen enthalten sein, die von doppelten Anführungszeichen umgeben sind. Nachstehend sind einige Beispiele für Zeichenfolgen aufgeführt:

"Froh zu sein bedarf es wenig, und wer froh ist, ist ein König!"
'"Macht, dass ihr wegkommt!" brüllte der Techniker.'
"42"
'c'

Beachten Sie, dass JScript nicht über einen Typ zur Darstellung von einzelnen Zeichen verfügt. Um ein einzelnes Zeichen in JScript darzustellen, erstellen Sie eine Zeichenfolge, die aus nur einem Zeichen besteht. Eine Zeichenfolge, die null Zeichen enthält (""), ist eine leere Zeichenfolge (mit der Länge Null).

Number-Datentyp

In JScript wird nicht zwischen Ganzzahl- und Fließkommawerten unterschieden; eine JScript-Zahl kann beides sein (intern stellt JScript alle Zahlen als Fließkommawerte dar).

Ganzzahlwerte

Ganzzahlwerte können positive ganze Zahlen, negative ganze Zahlen und 0 sein. Sie können zur Basis 10 (dezimal), zur Basis 8 (oktal) und zur Basis 16 (hexadezimal) dargestellt werden. Die meisten Zahlen in JScript werden als Dezimalzahlen geschrieben. Oktale Ganzzahlen werden bezeichnet, indem ihnen eine führende "0" (null) vorangestellt wird. Sie können nur die Ziffern 0 bis 7 enthalten. Eine Zahl mit einer führenden "0", die die Ziffern "8" und/oder "9" enthält, wird als Dezimalzahl interpretiert.

Hexadezimale ("hex") Ganzzahlen werden bezeichnet, indem ihnen ein führendes "0x" (null und x|X) vorangestellt wird. Sie können nur die Ziffern 0 bis 9 und die Buchstaben A bis F (als Klein- oder Großbuchstaben) enthalten. Mit den Buchstaben A bis F werden die Zahlen 10 bis 15 zur Basis 10 als einzelne Ziffern dargestellt, d. h. 0xF ist äquivalent zu 15, und 0x10 ist äquivalent zu 16.

Sowohl Oktal- als auch Hexadezimalzahlen können negativ sein. Sie können jedoch weder Nachkommastellen besitzen noch in wissenschaftlicher (exponentieller) Notation geschrieben werden.

Fließkommawerte

Fließkommawerte können ganze Zahlen mit einem Nachkommaanteil sein. Zusätzlich können sie in wissenschaftlicher Notation ausgedrückt werden. Das heißt, dass mit einem "e" in Groß- oder Kleinschreibung die Exponentialschreibweise zur Basis 10 dargestellt wird. JScript stellt Zahlen unter Verwendung des 8-Byte-Fließkommastandards IEEE 754 für die numerische Darstellung dar. Dies bedeutet, dass Sie Zahlen schreiben können, die so groß sind wie ±1.7976931348623157x10308 oder so klein wie ±5x10-324. Eine Zahl, die mit einer einzelnen "0" beginnt und ein Dezimalkomma enthält, wird als dezimale Fließkommazahl interpretiert.

Beachten Sie, dass eine Zahl, die mit "0x" oder "00" beginnt und ein Dezimalkomma enthält, einen Fehler erzeugt. Hier sind einige Beispiele für JScript-Zahlen.

Zahl | Beschreibung | Dezimales Äquivalent
,0001; 0,0001; 1e-4; 1,0e-4 | Vier äquivalente Fließkommazahlen. | 0,0001
3,45e2 | Eine Fließkommazahl. | 345
42 | Eine Ganzzahl. | 42
0378 | Eine Ganzzahl. Obwohl sie wie eine Oktalzahl aussieht (sie beginnt mit einer Null), ist 8 keine gültige Oktalziffer; daher wird die Zahl als Dezimalzahl behandelt. | 378
0377 | Eine oktale Ganzzahl. Beachten Sie, dass sich der Wert dieser Zahl erheblich von dem der oben genannten Zahl unterscheidet, obwohl die Zahl nur um eins niedriger zu sein scheint. | 255
0,0001 | Eine Fließkommazahl. Obwohl diese Zahl mit einer Null beginnt, handelt es sich nicht um eine Oktalzahl, da sie ein Dezimalkomma enthält. | 0,0001
00,0001 | Dies stellt einen Fehler dar. Die beiden führenden Nullen markieren die Zahl als Oktalzahl, aber Oktalzahlen dürfen keine Nachkommakomponente besitzen. | N/A (Compilerfehler)
0Xff | Eine hexadezimale Ganzzahl. | 255
0x37CF | Eine hexadezimale Ganzzahl. | 14287
0x3e7 | Eine hexadezimale Ganzzahl. Beachten Sie, dass das 'e' nicht als Potenzierung behandelt wird. | 999
0x3,45e2 | Dies stellt einen Fehler dar. Hexadezimalzahlen dürfen keine Nachkommastellen besitzen. | N/A (Compilerfehler)

Zusätzlich enthält JScript Zahlen mit speziellen Werten. Diese lauten wie folgt:

  • NaN (Not a Number). Dieser Wert wird verwendet, wenn eine mathematische Operation auf falschen Daten durchgeführt wird, z. B. auf Zeichenfolgen oder dem Wert undefined.
  • Plus-Unendlich. Dieser Wert wird verwendet, wenn eine positive Zahl zu groß ist, um in JScript dargestellt zu werden.
  • Minus-Unendlich. Dieser Wert wird verwendet, wenn eine negative Zahl zu klein ist, um in JScript dargestellt zu werden.
  • Plus und minus 0. JScript unterscheidet zwischen plus und minus Null.

Boolean-Datentyp

Während die Datentypen String und Number eine praktisch unbegrenzte Anzahl verschiedener Werte haben können, kann der Boolean-Datentyp nur zwei Werte haben. Dies sind die Literale true und false. Bei einem booleschen Wert handelt es sich um einen Wahrheitswert — er drückt die Gültigkeit einer Bedingung aus (gibt an, ob die Bedingung erfüllt ist oder nicht).

Vergleiche, die Sie in Ihren Skripten durchführen, haben stets ein Ergebnis vom Typ Boolean. Betrachten Sie die folgende JScript-Codezeile.

y = (x == 2000);

Hier wird der Wert der Variablen x darauf getestet, ob er gleich der Zahl 2000 ist. Wenn ja, ist das Ergebnis des Vergleichs der boolesche Wert true. Dieser wird der Variablen y zugewiesen. Wenn x nicht gleich 2000 ist, so ist das Ergebnis des Vergleichs der boolesche Wert false.

Boolesche Werte sind besonders in Steuerstrukturen von Nutzen. Hier kombinieren Sie einen Vergleich, der einen booleschen Wert erstellt, direkt mit einer Anweisung, die diesen Wert verwendet. Betrachten Sie das folgende JScript-Codebeispiel.

if (x == 2000)
    z = z + 1;
else
    x = x + 1;

Die if/else-Anweisung in JScript führt eine Aktion durch, wenn ein boolescher Wert true ist (in diesem Fall z = z + 1), und eine alternative Aktion, wenn der boolesche Wert false ist (x = x + 1).

Sie können einen beliebigen Ausdruck als Vergleichsausdruck verwenden. Jeder Ausdruck, der 0, null, undefined oder eine leere Zeichenfolge ergibt, wird als false interpretiert. Ein Ausdruck, der einen beliebigen anderen Wert ergibt, wird als true interpretiert. Beispielsweise könnten Sie einen Ausdruck wie den folgenden verwenden:

if (x = y + z) // Dies führt nicht zu dem erwarteten Ergebnis - siehe unten!

Beachten Sie, dass die oben genannte Zeile nicht überprüft, ob x gleich y + z ist, da nur ein einzelnes Gleichheitszeichen (Zuweisung) verwendet wird. Stattdessen weist der oben genannte Code den Wert von y + z der Variablen x zu und überprüft anschließend, ob das Ergebnis des gesamten Ausdrucks (der Wert von x) null ist. Um zu überprüfen, ob x gleich y + z ist, verwenden Sie den folgenden Code.

if (x == y + z) // Dies unterscheidet sich von dem oben genannten Code!

Weitere Informationen zu Vergleichen finden Sie unter Steuern des Programmablaufs.

Null-Datentyp

Der null-Datentyp hat nur einen Wert in JScript: null. Das null-Schlüsselwort darf nicht als Name einer Funktion oder Variablen verwendet werden.

Eine Variable, die null enthält, enthält "keinen Wert" oder "kein Objekt". Anders gesagt, sie enthält keine gültige Zahl, keine gültige Zeichenfolge, keinen gültigen booleschen Wert, kein gültiges Array und kein gültiges Objekt. Sie können den Inhalt einer Variablen löschen (ohne die Variable selbst zu löschen), indem Sie ihr den Wert null zuweisen.

Beachten Sie, dass null in JScript nicht das Gleiche wie 0 ist (wie dies in C und C++ der Fall ist). Beachten Sie außerdem, dass der typeof-Operator in JScript bei null-Werten meldet, dass sie vom Typ Object sind, nicht vom Typ null. Dieses potenziell irreführende Verhalten wird aus Gründen der Abwärtskompatibilität bereitgestellt.

Undefined-Datentyp

Der Wert undefined wird zurückgegeben, wenn Sie eines der folgenden Elemente verwenden:

  • Eine Objekteigenschaft, die nicht vorhanden ist.
  • Eine Variable, die deklariert wurde, der aber noch nie ein Wert zugewiesen wurde.

Beachten Sie, dass Sie nicht auf das Vorhandensein einer Variablen testen können, indem Sie sie mit undefined vergleichen, obwohl Sie überprüfen können, ob sie vom Typ undefined ist. Nehmen wir im folgenden Codebeispiel an, dass der Programmierer testen möchte, ob die Variable x deklariert wurde:

// Diese Methode funktioniert nicht
if (x == undefined)
    // beliebige Anweisung

// Diese Methode funktioniert ebenfalls nicht - es muss eine Überprüfung auf
// die Zeichenfolge "undefined" durchgeführt werden
if (typeof(x) == undefined)
    // beliebige Anweisung

// Diese Methode funktioniert
if (typeof(x) == "undefined")
    // beliebige Anweisung

Betrachten Sie den Vergleich des undefined-Wertes mit null.

einObjekt.prop == null;

Dieser Vergleich ist true, wenn eine der folgenden Bedingungen erfüllt ist:

  • Die Eigenschaft einObjekt.prop enthält den Wert null.
  • Die Eigenschaft einObjekt.prop ist nicht vorhanden.

Um zu überprüfen, ob eine Objekteigenschaft vorhanden ist, können Sie den neuen in-Operator verwenden:

if ("prop" in einObjekt)
    // einObjekt besitzt die Eigenschaft 'prop'


JScript-Operatoren

JScript verfügt über eine Reihe von Operatoren, wie arithmetische, logische, bitweise Operatoren und Zuweisungsoperatoren. Des Weiteren gibt es einige sonstige Operatoren, die nicht kategorisiert werden können.

Arithmetische Operatoren

Beschreibung | Symbol
Unäre Negation | -
Inkrement | ++
Dekrement | —
Multiplikation | *
Division | /
Modulo | %
Addition | +
Subtraktion | -

Logische Operatoren

Beschreibung | Symbol
Logisches NOT | !
Kleiner als | <
Größer als | >
Kleiner oder gleich | <=
Größer oder gleich | >=
Gleichheit | ==
Ungleichheit | !=
Logisches AND | &&
Logisches OR | ||
Bedingung (ternär) | ?:
Komma | ,
Strikte Gleichheit | ===
Strikte Ungleichheit | !==

Bitweise Operatoren

Beschreibung | Symbol
Bitweises NOT | ~
Bitweises Linksschieben | <<
Bitweises Rechtsschieben | >>
Vorzeichenloses bitweises Rechtsschieben | >>>
Bitweises AND | &
Bitweises XOR | ^
Bitweises OR | |

Zuweisungsoperatoren

Beschreibung | Symbol
Zuweisung | =
Verbundzuweisung | OP=

Sonstige Operatoren

Beschreibung | Symbol
delete | delete
typeof | typeof
void | void
instanceof | instanceof
new | new
in | in

Der Unterschied zwischen == (Gleichheit) und === (Strikte Gleichheit) besteht darin, dass der Gleichheitsoperator Werte verschiedener Typen konvertiert, bevor die Gleichheitsüberprüfung durchgeführt wird. Beispielsweise ergibt ein Vergleich der Zeichenfolge "1" mit der Zahl 1 true. Der Strikte Gleichheit-Operator konvertiert dagegen Werte nicht in andere Typen. Daher ergibt ein Vergleich der Zeichenfolge "1" mit der Zahl 1, dass die Werte ungleich sind.

Einfache Zeichenfolgen, Zahlen und boolesche Werte werden mit ihrem Wert verglichen. Wenn sie den gleichen Wert aufweisen, ergibt ein Vergleich, dass sie gleich sind. Objekte (einschließlich der Objekte Array, Function, String, Number, Boolean, Error, Date und RegExp) werden mit ihrem Verweis verglichen. Selbst wenn zwei Variablen dieser Typen den gleichen Wert haben, ergibt ein Vergleich nur dann true, wenn sie auf exakt dasselbe Objekt verweisen.

Beispiele:

// Zwei einfache Zeichenfolgen mit dem gleichen Wert.
var Zeichenfolge1 = "Hallo";
var Zeichenfolge2 = "Hallo";

// Zwei String-Objekte mit dem gleichen Wert.
var StringObjekt1 = new String(Zeichenfolge1);
var StringObjekt2 = new String(Zeichenfolge2);

// Dies ergibt true.
if (Zeichenfolge1 == Zeichenfolge2)
     // beliebige Anweisung (diese wird ausgeführt)

// Dies ergibt false.
if (StringObjekt1 == StringObjekt2)
    // beliebige Anweisung (diese wird nicht ausgeführt)

// Um den Wert von String-Objekten zu vergleichen,
// verwenden Sie die Methoden toString() oder valueOf().
if (StringObjekt1.valueOf() == StringObjekt2)
     // beliebige Anweisung (diese wird ausgeführt)


Operatorvorrang (JScript)

JScript

Operatorvorrang

Beim Operatorvorrang handelt es sich um eine Reihe von Regeln in JScript. Er steuert die Reihenfolge, in der Operationen beim Auswerten eines Ausdrucks durchgeführt werden. Operationen mit einem höheren Vorrang werden vor solchen mit einem niedrigeren Vorrang durchgeführt. Beispielsweise wird eine Multiplikation vor einer Addition durchgeführt.

Die folgende Tabelle führt die JScript-Operatoren vom höchsten bis zum niedrigsten Vorrang auf. Operatoren mit dem gleichen Vorrang werden von links nach rechts ausgewertet.

Operator | Beschreibung
. [] () | Feldzugriff, Arrayindizierung, Funktionsaufrufe und Gruppieren von Ausdrücken
++ — - ~ ! typeof new void delete | Unäre Operatoren, Rückgabedatentyp, Objekterstellung, nicht definierte Werte
* / % | Multiplikation, Division, Modulo
+ - + | Addition, Subtraktion, Zeichenfolgenverkettung
<< >> >>> | Bit-Verschiebung
< <= > >= instanceof | Kleiner als, Kleiner oder gleich, Größer als, Größer oder gleich, instanceof (Instanz von)
== != === !== | Gleichheit, Ungleichheit, Strikte Gleichheit und Strikte Ungleichheit
& | Bitweises AND
^ | Bitweises XOR
| | Bitweises OR
&& | Logisches AND
|| | Logisches OR
?: | Bedingungen
= OP= | Zuweisung, Verbundzuweisung
, | Mehrfache Auswertung

Zum Ändern der durch den Operatorvorrang festgelegten Auswertungsreihenfolge werden Klammern verwendet. Dies bedeutet, dass ein Ausdruck in Klammern vollständig ausgewertet wird, bevor sein Wert im Rest des Ausdrucks verwendet wird.

Beispiel:

z = 78 * (96 + 3 + 45)

In diesem Ausdruck sind fünf Operatoren enthalten: =, *, (), + und ein weiteres +. Gemäß den Regeln des Operatorvorrangs werden sie in der folgenden Reihenfolge ausgewertet: (), +, +, *, =.

  1. Die Auswertung des Ausdrucks in den Klammern findet zuerst statt. In diesen Klammern befinden sich zwei Additionsoperatoren. Da beide Additionsoperatoren den gleichen Rang besitzen, werden sie von links nach rechts ausgewertet. 96 und 3 werden als Erstes addiert. Anschließend wird 45 zu dieser Summe addiert. Das Ergebnis ist der Wert 144.
  2. Als Nächstes findet die Multiplikation statt. 78 wird mit 144 multipliziert. Das Ergebnis ist der Wert 11232.
  3. Als Letztes findet die Zuweisung statt. 11232 wird z zugewiesen.


Steuern des Programmablaufs

Normalerweise werden Anweisungen in einem JScript-Skript nacheinander in der Reihenfolge ausgeführt, in der sie geschrieben wurden. Diese so genannte sequenzielle Ausführung ist die Standardrichtung des Programmablaufs.

Bei einer Alternative zur sequenziellen Ausführung wird der Programmablauf an einen anderen Teil des Skripts übertragen. Dies bedeutet, dass anstelle der nächsten Anweisung in der Sequenz eine andere Anweisung ausgeführt wird.

Damit ein Skript von Nutzen ist, muss diese Übertragung der Steuerung auf logische Weise erfolgen. Die Übertragung der Programmsteuerung wird auf der Basis einer Entscheidung durchgeführt, deren Ergebnis eine Wahrheitsanweisung ist (und den booleschen Wert true oder false zurückgibt). Sie erstellen einen Ausdruck und testen dann, ob das Ergebnis true ist. Es gibt zwei Hauptarten von Programmstrukturen, mit denen dies erreicht werden kann.

Die erste ist die Auswahlstruktur. Sie wird verwendet, um alternative Richtungen des Programmablaufs anzugeben und so eine Abzweigung im Programm zu erstellen (wie die Gabelung einer Straße). In JScript stehen vier Auswahlstrukturen zur Verfügung.

  • Die Einzelauswahlstruktur (if).
  • Die Zweifachauswahl-Struktur (if/else).
  • Der ternäre Inlineoperator ?:.
  • Die Mehrfachauswahl-Struktur (switch).

Die zweite Art von Programmsteuerstruktur ist die Wiederholungsstruktur. Sie wird verwendet, um anzugeben, dass eine Aktion wiederholt werden soll, solange eine bestimmte Bedingung true bleibt. Wenn die Bedingungen der Steueranweisung erfüllt sind (in der Regel nach einer bestimmten Anzahl von Iterationen), wird die Steuerung an die nächste Anweisung nach der Wiederholungsstruktur übergeben. In JScript stehen vier Wiederholungsstrukturen zur Verfügung.

  • Der Ausdruck wird am Anfang der Schleife getestet (while).
  • Der Ausdruck wird am Ende der Schleife getestet (do/while).
  • Die Schleife operiert auf jeder Eigenschaft eines Objekts (for/in).
  • Durch einen Zähler gesteuerte Wiederholung (for).

Durch Schachteln und Stapeln von Auswahl- und Wiederholungssteuerstrukturen können Sie relativ komplexe Skripte erstellen.

Eine dritte Form des strukturierten Programmablaufs wird von der Ausnahmebehandlung bereitgestellt, die in diesem Dokument jedoch nicht behandelt wird.

Bedingungsanweisungen

JScript unterstützt die Bedingungsanweisungen if und if...else. In if-Anweisungen wird eine Bedingung getestet. Besteht die Bedingung den Test, wird der relevante JScript-Code ausgeführt. Bei der if...else-Anweisung wird ein anderer Code ausgeführt, wenn die Bedingung den Test nicht besteht. Die einfachste Form einer if-Anweisung kann vollständig in einer Zeile geschrieben werden. Wesentlich häufiger sind jedoch mehrzeilige if- und if...else-Anweisungen.

Die folgenden Beispiele zeigen Syntaxkonstrukte, die mit den if- und if...else-Anweisungen verwendet werden können. Das erste Beispiel zeigt die einfachste Form eines booleschen Testes. Falls das Element in Klammern mit true ausgewertet wird (oder erzwungenermaßen true wird) (und nur dann), erfolgt die Ausführung der Anweisung bzw. des Anweisungsblockes hinter if.

// Die Zerschmeissen()-Funktion wird an einer anderen Stelle im Code definiert.
// Boolescher Test, ob neuesSchiff wahr ist.
if (neuesSchiff)
   Zerschmeissen(champagnerFlasche,rumpf);

// Beim folgenden Beispiel misslingt der Test, wenn nicht beide Bedingungen wahr sind.
if (schale.color == "dunkel gelb" && schale.textur == "große und kleine Falten")
{
   dieAntwort = ("Ist es eine Crenshaw-Melone?");
}

// Beim nächsten Beispiel ist der Test erfolgreich, wenn mindestens eine von beiden Bedingungen wahr ist.
var dieReaktion = "";
if ((Wochentag == "Samstag") || (Wochentag == "Sonntag"))
{
   dieReaktion  = ("Ich bin am Strand!");
}
else
   dieReaktion = ("Ich muss zur Arbeit!");}
}

Bedingter (ternärer) Operator

JScript unterstützt auch eine implizite Form für die Bedingung. Diese verwendet ein Fragezeichen nach der zu testenden Bedingung (anstelle des Wortes if vor der Bedingung). Es werden auch zwei Alternativen angegeben, von denen eine verwendet wird, wenn die Bedingung erfüllt wird. Die andere wird verwendet, wenn dem nicht so ist. Diese Alternativen müssen durch einen Doppelpunkt getrennt werden.

var stunden = "";

// Mithilfe des folgenden Codes wird die Stundenangabe in Stunden in die US-Schreibweise
// (mit AM und PM) konvertiert.

stunden += (dieStunde >= 12) ? (dieStunde - 12) + " PM" : dieStunde + " AM";

Wenn mehrere Bedingungen zusammen getestet werden sollen und Sie wissen, dass eine von ihnen den Test mit größerer Wahrscheinlichkeit besteht oder nicht besteht als die anderen, können Sie mithilfe eines Features namens 'Kurzschlussauswertung' die Ausführung des Skripts beschleunigen. Wenn JScript einen logischen Ausdruck auswertet, werden nur so viele Unterausdrücke ausgewertet, wie zur Erzielung eines Ergebnisses erforderlich sind.

Wenn Sie beispielsweise einen And-Ausdruck wie ((x == 123) && (y == 42)) haben, überprüft JScript als Erstes, ob x gleich 123 ist. Wenn dies nicht der Fall ist, kann der gesamte Ausdruck nicht true sein, selbst wenn y gleich 42 ist. Daher wird der Test für y nie durchgeführt, und JScript gibt den Wert false zurück.

Wenn nur eine von mehreren Bedingungen true sein muss (unter Verwendung des ||-Operators), wird auf ähnliche Weise das Testen beendet, sobald eine der Bedingungen den Test besteht. Dies ist dann effektiv, wenn die zu testenden Bedingungen die Ausführung von Funktionsaufrufen oder andere komplexe Ausdrücke beinhalten. Daher sollten Sie, wenn Sie Or-Ausdrücke schreiben, diejenigen Bedingungen an den Anfang setzen, die mit größter Wahrscheinlichkeit true sind. Wenn Sie And-Ausdrücke schreiben, sollten Sie diejenigen Bedingungen an den Anfang setzen, die mit größter Wahrscheinlichkeit false sind.

Einer der Vorteile, die Ihnen das Entwerfen Ihres Skripts auf diese Weise bietet, besteht darin, dass im folgenden Beispiel danach() nicht ausgeführt wird, wenn zuerst() entweder 0 oder false zurückgibt.

if ((zuerst() == 0) || (danach() == 0))

// Beliebiger Code

}

Schleifen

Es gibt mehrere Möglichkeiten, eine Anweisung oder einen Anweisungsblock wiederholt auszuführen. Im Allgemeinen wird die wiederholte Ausführung Schleife oder Iteration. genannt. Eine Iteration ist die einmalige Ausführung einer Schleife. Diese wird normalerweise durch den Test einer Variable gesteuert, deren Wert sich bei jedem Ausführen der Schleife ändert. JScript unterstützt viele Typen von Schleifen: for-Schleifen, for...in-Schleifen, while-Schleifen und do...while-Schleifen.

for-Schleifen

Die for-Anweisung gibt eine Zählervariable, eine Testbedingung und eine Aktion an, die den Zähler aktualisiert. Vor jeder Iteration der Schleife wird die Bedingung getestet. Ist der Test erfolgreich, so wird der Code in der Schleife ausgeführt. Ist der Test nicht erfolgreich, so wird der Code in der Schleife nicht ausgeführt, und das Programm wird in der ersten Codezeile unmittelbar nach der Schleife fortgesetzt. Nach der Ausführung der Schleife wird die Zählervariable aktualisiert, ehe der nächste Durchlauf beginnt.

Sollte die Bedingung für die Schleife nie erfüllt werden, wird die Schleife zu keiner Zeit ausgeführt. Wird die Testbedingung stets erfüllt, entsteht eine Endlosschleife. Während ersteres in manchen Fällen wünschenswert ist, so gilt dies nicht für letzteres. Achten Sie daher bei Programmierung der Schleifenbedingung sorgfältig darauf, dass keine Endlosschleife entsteht.

/*
Der Aktualisierungsausdruck ("izaehler++" in den folgenden Beispielen) wird am Ende der Schleife
ausgeführt, nachdem der Anweisungsblock, der den Rumpf der Schleife ausmacht, ausgeführt wurde
und bevor die Bedingung getestet wird.
*/

var wieWeit = 10;  // Begrenzt die Schleife auf 10 Durchläufe.

var summe = new Array(wieWeit);  // Erstellt ein Array mit Namen "summe" und 10 Elementen (Indexwerte von 0 bis 9).
var dieSumme = 0;
summe[0] = 0;

for(var izaehler = 0; izaehler < wieWeit; izaehler++)  {        // Zählt in diesem Fall von 0 bis 9.
dieSumme += izaehler;
summe[izaehler] = dieSumme;
}

var neueSumme = 0;
for(var izaehler = 0; izaehler > wieWeit; izaehler++)  {        // Wird niemals ausgeführt, da izaehler nicht größer als wieWeit ist
neueSumme += izaehler;
}

var summe = 0;
for(var izaehler = 0; izaehler >= 0; izaehler++)  {        // Dies ist eine Endlosschleife.
summe += izaehler;
}

for...in-Schleifen

JScript bietet eine besondere Schleife zum Durchlaufen aller benutzerdefinierten Eigenschaften eines Objekts, oder aller Elemente eines Arrays. Der Schleifenzähler in einer for...in-Schleife ist zudem eine Zeichenfolge und keine Zahl. Er enthält den Namen der aktuellen Eigenschaft oder den Index des aktuellen Arrayelements.

Das folgende Codebeispiel sollte in Internet Explorer ausgeführt werden, da es die alert-Methode verwendet, die nicht Teil von JScript ist.

// Erstellt ein Objekt mit einigen Eigenschaften
var meinObjekt = new Object();
meinObjekt.Name = "Klaus";
meinObjekt.Alter = "22";
meinObjekt.Telefon = "555 1234";

// Zählt alle Eigenschaften des Objekts auf (durchläuft sie)
for (prop in meinObjekt)
{
    // Hierdurch wird "Der Wert der Eigenschaft 'Name' lautet Klaus" usw. angezeigt.
    window.alert("Der Wert der Eigenschaft '" + prop + "' lautet " + meinObjekt[prop]);
}

Obwohl for...in-Schleifen den For Each...Next-Schleifen von VBScript ähneln, funktionieren sie nicht auf die gleiche Weise. Die for...in-Schleife von JScript iteriert über Eigenschaften von JScript-Objekten. Die For Each...Next-Schleife von VBScript iteriert über Elemente in einer Kollektion. Um Auflistungen in JScript zu durchlaufen, müssen Sie das Enumerator-Objekt verwenden. Obwohl einige Objekte, z. B. diejenigen in Internet Explorer, sowohl die For Each...Next-Schleifen von VBScript als auch die for...in-Schleifen von JScript unterstützen, ist dies bei den meisten Objekten nicht der Fall.

while-Schleifen

Eine while-Schleife ist einer for-Schleife ähnlich. Im Gegensatz zu dieser verfügt die while-Schleife über keine integrierte Zählervariable und keinen Aktualisierungsausdruck. Wenn Sie die wiederholte Ausführung einer Anweisung oder eines Anweisungsblocks steuern möchten, jedoch eine komplexere Regel als nur "führe diese Code n-mal aus" benötigen, verwenden Sie eine while-Schleife. Das folgende Beispiel verwendet das Objektmodell von Internet Explorer und eine while-Schleife, um dem Benutzer eine einfache Frage zu stellen.

var x = 0;
while ((x != 42) && (x != null))
{
    x = window.prompt("Wie lautet meine Lieblingszahl?", x);
}

if (x == null)
    window.alert("Sie haben aufgegeben!");
else
    window.alert("Genau - das ist die Antwort auf alle Fragen!");
Anmerkung Da while-Schleifen nicht über explizit integrierte Zählervariablen verfügen, sind sie anfälliger für Endlosschleifen als andere Typen. Darüber hinaus ist es nur allzu leicht, eine while-Schleife zu schreiben, in der die Bedingung tatsächlich nie aktualisiert wird. Dies liegt insbesondere daran, dass es nicht immer einfach ist, herauszufinden, wo und wann die Schleifenbedingung aktualisiert wird. Seien Sie deshalb beim Schreiben von while-Schleifen extrem sorgfältig.

Wie oben erwähnt gibt es in JScript auch eine do...while-Schleife, die der while-Schleife ähnelt. Der Unterschied besteht darin, dass sie garantiert mindestens einmal ausgeführt wird, da die Bedingung am Ende der Schleife getestet wird und nicht am Anfang. Beispielsweise kann die oben genannte Schleife wie folgt neu geschrieben werden:

var x = 0;
do
{
    x = window.prompt("Wie lautet meine Lieblingszahl?", x);
} while ((x != 42) && (x != null));

if (x == null)
    window.alert("Sie haben aufgegeben!");
else
    window.alert("Genau - das ist die Antwort auf alle Fragen!");

break- und continue-Anweisungen

In Microsoft JScript wird die break-Anweisung verwendet, um die Ausführung einer Schleife anzuhalten, wenn eine bestimmte Bedingung erfüllt ist. (Beachten Sie, dass break auch verwendet wird, um einen switch-Block zu beenden.) Mit der continue-Anweisung können Sie sofort zur nächsten Iteration springen und den Rest des Codeblocks überspringen. Dabei wird gleichzeitig die Zählervariable aktualisiert, wenn es sich bei der Schleife um eine for- oder for...in-Schleife handelt.

Das folgende Beispiel baut auf dem vorhergehenden Beispiel auf und verwendet die Anweisungen break und continue zum Steuern der Schleife.

var x = 0;
do
{
    x = window.prompt("Wie lautet meine Lieblingszahl?", x);

    // Wurde die Aktion vom Benutzer abgebrochen? Wenn ja, Schleife anhalten
    if (x == null)
        break;

    // Wurde eine Zahl eingegeben?
    // Wenn ja, ist keine Aufforderung zum Eingeben einer Zahl erforderlich.
    if (Number(x) == x)
        continue;

    // Fordert den Benutzer dazu auf, nur Zahlen einzugeben
    window.alert("Bitte geben Sie nur Zahlen ein!");

} while (x != 42)

if (x == null)
    window.alert("Sie haben aufgegeben!");
else
    window.alert("Genau - das ist die Antwort auf alle Fragen!");


JScript-Funktionen

Microsoft JScript-Funktionen führen Aktionen durch; sie können außerdem Werte zurückgeben. Manchmal handelt es sich hierbei um die Ergebnisse von Berechnungen oder Vergleichen. Man nennt Funktionen auch "globale Methoden".

Funktionen kombinieren mehrere Operationen unter einem Namen. Hierdurch können Sie Ihren Code "kompakter" gestalten. Sie können eine Gruppe von Anweisungen schreiben, sie benennen und alle Anweisungen in dieser Gruppe jederzeit ausführen, indem Sie die Gruppe aufrufen und die erforderlichen Informationen übergeben.

Sie übergeben Informationen an eine Funktion, indem Sie die Informationen hinter dem Namen der Funktion in Klammern einschließen. An eine Funktion übergebene Informationen werden Argumente oder Parameter genannt. Einige Funktionen erhalten keine Argumente, während andere ein oder mehrere Argumente erhalten. Bei einigen Funktionen hängt die Anzahl der Argumente davon ab, wie Sie die Funktion verwenden.

JScript unterstützt zwei Arten von Funktionen: die in die Sprache integrierten und die von Ihnen erstellten Funktionen.

Spezielle integrierte Funktionen

Die JScript-Sprache enthält zahlreiche integrierte Funktionen. Einige ermöglichen Ihnen, Ausdrücke und Sonderzeichen zu behandeln, während andere Zeichenfolgen in numerische Werte konvertieren. Eine nützliche integrierte Funktion ist eval(). Diese Funktion wertet gültigen JScript-Code aus, der in Form einer Zeichenfolge übergeben wird. Die eval()-Funktion erhält ein Argument (den auszuwertenden Code). Nachfolgend finden Sie ein Beispiel, das diese Funktion verwendet.

var einAusdruck = "6 * 9 % 7";
var Gesamt = eval(einAusdruck); // Weist der Variablen Gesamt den Wert 5 zu.
var nochEinAusdruck = "6 * (9 % 7)";
Gesamt = eval(nochEinAusdruck) // Weist der Variablen Gesamt den Wert 12 zu.
// Weist nichtSoGut eine Zeichenfolge zu (beachten Sie die geschachtelten Anführungszeichen)
var nichtSoGut = eval("'...umgeben von sinkenden Schiffen.'");

Weitere Informationen über diese und andere integrierte Funktionen finden Sie im Sprachverzeichnis.

Erstellen eigener Funktionen

Sie können eigene Funktionen erstellen und dort verwenden, wo Sie sie benötigen. Eine Funktionsdefinition enthält eine Funktionsanweisung und einen Block von JScript-Anweisungen.

Die PruefeDreiZahlen-Funktion im folgenden Beispiel verwendet als Argumente die Längen der Seiten eines Dreiecks. Aus diesen errechnet sie, ob das Dreieck ein rechtwinkliges Dreieck ist, indem sie überprüft, ob die drei Zahlen den Satz des Pythagoras erfüllen (das Quadrat der Länge der Hypotenuse eines rechtwinkligen Dreiecks ist gleich der Summe der Quadrate der Längen der anderen beiden Seiten). Die PruefeDreiZahlen-Funktion ruft eine von zwei anderen Funktionen auf, um diesen Test durchzuführen.

Beachten Sie die Verwendung einer sehr kleinen Zahl ("epsilon") als Testvariable in der Fließkommazahlversion des Tests. Aufgrund von Ungenauigkeiten und Rundungsfehlern in Fließkommaberechnungen ist es nicht ratsam, einen direkten Vergleich durchzuführen, ob die drei Zahlen den Satz des Pythagoras erfüllen, es sei denn, alle drei Werte sind mit Sicherheit Ganzzahlen. Da ein direkter Test genauer ist, bestimmt der Code in diesem Beispiel, ob ein solcher Test angebracht ist, und führt ihn gegebenenfalls durch.

var epsilon = 0,00000000001; // Eine sehr kleine Zahl zum Testen.

// Die Testfunktion für Ganzzahlen.
function Ganzzahlpruefung(a, b, c)
{
   // Der eigentliche Test.
   if ( (a*a) == ((b*b) + (c*c)) )
      return true;

   return false;
} // Ende der Testfunktion für Ganzzahlen.

// Die Testfunktion für Fließkommazahlen.
function Fliesskommapruefung(a, b, c)
{
   // Erstellt die Testzahl.
   var delta = ((a*a) - ((b*b) + (c*c)))

   // Der Test erfordert den absoluten Wert
   delta = Math.abs(delta);

   // Wenn die Differenz kleiner als epsilon ist, ist der Wert sehr nahe dran.
   if (delta < epsilon)
      return true;

   return false;
} // Ende der Testfunktion für Fließkommazahlen.

// Die Funktion zur Dreiecksüberprüfung.
function PruefeDreiZahlen(a, b, c)
{
   // Erstellt eine temporäre Variable für das Vertauschen von Werten
   var d = 0;

   // Als erstes sollte die längste Seite zur Position "a" bewegt werden.

   // Vertauscht gegebenenfalls a und b
   if (b > a)
   {
      d = a;
      a = b;
      b = d;
   }

   // Vertauscht gegebenenfalls a und c
   if (c > a)
   {
      d = a;
      a = c;
      c = d;
   }

   // Testen aller 3 Werte. Sind es Ganzzahlen?
   if (((a % 1) == 0) && ((b % 1) == 0) && ((c % 1) == 0))
   {
      // Falls ja, präzise Überprüfung verwenden.
      return Ganzzahlpruefung(a, b, c);
   }
   else
   {
      // Falls nein, näherungsweise Überprüfung.
      return Fliesskommapruefung(a, b, c);
   }
} // Ende der Funktion zur Dreiecksüberprüfung.

// Die nächsten drei Anweisungen weisen Beispielwerte für Testzwecke zu.
var seiteA = 5;
var seiteB = 5;
var seiteC = Math.sqrt(50,001);

// Ruft die Funktion auf. Nach dem Aufruf enthält 'Ergebnis' das Ergebnis.
var Ergebnis = PruefeDreiZahlen(seiteA, seiteB, seiteC);


JScript-Objekte

JScript-Objekte sind Auflistungen von Eigenschaften und Methoden. Eine Methode ist eine Funktion, die ein Element eines Objekts ist. Eine Eigenschaft ist ein Wert oder eine Gruppe von Werten (in Form eines Arrays oder Objekts), der bzw. die ein Element eines Objekts ist. JScript unterstützt vier Arten von Objekten: intrinsische Objekte, von Ihnen erstellte Objekte, Hostobjekte, die vom Host bereitgestellt werden (z. B. window und document in Internet Explorer) und Active X-Objekte (externe Komponenten).

Objekte als Arrays

In JScript werden Objekte und Arrays nahezu gleich behandelt. Beiden können willkürliche Eigenschaften zugewiesen werden, und tatsächlich handelt es sich bei Arrays lediglich um eine spezielle Art von Objekt. Der Unterschied zwischen Arrays und Objekten besteht darin, dass Arrays über eine "magische" length-Eigenschaft verfügen, während dies bei Objekten nicht der Fall ist. Dies bedeutet Folgendes: Wenn Sie einem Element eines Arrays, das größer als alle anderen Elemente ist, einen Wert zuweisen – beispielsweise meinArray[100] = "hallo" –, wird die length-Eigenschaft automatisch auf 101 (die neue Länge) aktualisiert wird. Wenn Sie die length-Eigenschaft eines Arrays ändern, werden auf ähnliche Weise alle Elemente gelöscht, die nicht mehr zum Array gehören.

Alle Objekte in JScript unterstützen "expando"-Eigenschaften, d. h. Eigenschaften, die zur Laufzeit dynamisch hinzugefügt und entfernt werden können. Diese Eigenschaften können beliebige Namen haben, einschließlich Zahlen. Wenn es sich bei dem Namen der Eigenschaft um einen einfachen Bezeichner handelt, kann er mit einem Punkt nach dem Objektnamen geschrieben werden, z. B. wie folgt:

var meinObj = new Object();

// Fügt zwei expando-Eigenschaften hinzu, 'Name' und 'Alter'
meinObj.Name = "Heinz";
meinObj.Alter = 42;

Wenn es sich bei dem Namen der Eigenschaft nicht um einen einfachen Bezeichner handelt oder er zum Zeitpunkt der Skripterstellung unbekannt ist, können Sie einen willkürlichen Ausdruck in eckigen Klammern verwenden, um die Eigenschaft zu indizieren. Die Namen aller expando-Eigenschaften in JScript werden in Zeichenfolgen konvertiert, bevor sie zum Objekt hinzugefügt werden.

var meinObj = new Object();

// Fügt zwei expando-Eigenschaften hinzu, die nicht in der
// Objekt.Eigenschaft-Syntax geschrieben werden können.
// Die erste enthält ungültige Zeichen (Leerzeichen) und muss daher
// in eckigen Klammern geschrieben werden.
meinObj["kein gueltiger Bezeichner"] = "Dies ist der Wert der Eigenschaft";

// Der Name der zweiten expando-Eigenschaft ist eine Zahl und muss daher ebenfalls
// in eckige Klammern platziert werden
meinObj[100] = "100";

Traditionell erhalten Arrayelemente numerische Indizes, die bei Null beginnen. Diese Elemente interagieren mit der length-Eigenschaft. Da jedoch alle Arrays auch Objekte sind, unterstützen sie außerdem expando-Eigenschaften. Beachten Sie jedoch, dass expando-Eigenschaften nicht mit der length-Eigenschaft interagieren. Beispiel:

// Ein Array mit drei Elementen
var meinArray = new Array(3);

// Fügt Daten hinzu
meinArray[0] = "Hallo";
meinArray[1] = 42;
meinArray[2] = new Date(2000, 1, 1);

// Hierdurch wird 3 angezeigt, die Länge des Arrays
window.alert(meinArray.length);

// Fügt expando-Eigenschaften hinzu
meinArray.expando = "JScript!";
meinArray["noch ein Expando"] = "Windows";

// Hierdurch wird immer noch 3 angezeigt, da die beiden expando-Eigenschaften
// nicht die Länge beeinflussen.
window.alert(meinArray.length);

Obwohl JScript multidimensionale Arrays nicht direkt unterstützt, können Sie in Arrayelementen alle Arten von Daten speichern – einschließlich anderer Arrays. Sie können also das Verhalten von multidimensionalen Arrays erzielen, indem Sie Arrays in den Elementen eines anderen Arrays speichern. Der folgende Code erstellt beispielsweise eine Multiplikationstabelle für die Zahlen bis 5:

// Ändern Sie diese Zahl, um eine größere Tabelle zu erhalten
var iMaxZahl = 5;
// Schleifenzähler
var i, j;

// Neues Array. iMaxZahl + 1 wird verwendet, da die Zählung in Arrays
// bei Null beginnt und nicht bei 1.
var Multiplikationstabelle = new Array(iMaxZahl + 1);

// Durchlaufen der Schleife für jede Zahl (jede Zeile in der Tabelle)
for (i = 1; i <= iMaxZahl; i++)
{
    // Erstellt die Spalten in der Tabelle
    Multiplikationstabelle[i] = new Array(iMaxZahl + 1);

    // Füllt die Zeile mit den Ergebnissen der Multiplikation
    for (j = 1; j <= iMaxZahl; j++)
    {
        Multiplikationstabelle[i][j] = i * j;
    }
}

window.alert(Multiplikationstabelle[3][4]); // Zeigt 12 an
window.alert(Multiplikationstabelle[5][2]); // Zeigt 10 an
window.alert(Multiplikationstabelle[1][4]); // Zeigt 4 an


Erstellen eigener Objekte

Um Instanzen eigener Objekte zu erstellen, müssen Sie zuerst eine Konstruktorfunktion für diese Objekte definieren. Eine Konstruktorfunktion erstellt ein neues Objekt und weist ihm Eigenschaften sowie gegebenenfalls Methoden zu. Das folgende Beispiel definiert beispielsweise eine Konstruktorfunktion für Pastaobjekte. Beachten Sie die Verwendung des this-Schlüsselwortes, mit dem auf das aktuelle Objekt verwiesen wird.

// Pasta ist ein Konstruktor, der vier Parameter erhält.
function Pasta(Getreide, Breite, Form, enthaeltEi)
{
    // Aus welchem Getreide?
    this.Getreide = Getreide;

    // Breite (Zahl)
    this.Breite = Breite;

    // Querschnitt (Zeichenfolge)
    this.Form = Form;

    // Ist Eigelb als Bindemittel enthalten? (boolescher Wert)
    this.enthaeltEi = enthaeltEi;
}

Nachdem Sie einen Objektkonstruktor definiert haben, erstellen Sie Instanzen des Objekts mit dem new-Operator.

var Spagetti = new Pasta("Weizen", 0,2, "kreisfoermig", true);
var Linguini = new Pasta("Weizen", 0,3, "oval", true);

Sie können Eigenschaften zu einer Instanz eines Objekts hinzufügen und so diese Instanz ändern. Jedoch werden diese Eigenschaften nicht Teil der Definition anderer Objekte, die mit dem gleichen Konstruktor erstellt werden. Sie erscheinen auch nicht in anderen Instanzen, es sei denn, Sie fügen sie explizit hinzu. Wenn die zusätzlichen Eigenschaften in allen Instanzen des Objekts erscheinen sollen, müssen Sie sie zur Konstruktorfunktion oder zum Prototypobjekt des Konstruktors hinzufügen (Prototypen werden in der Dokumentation "JScript für Fortgeschrittene" besprochen).

// Zusätzliche Eigenschaften für Spagetti.
Spagetti.Farbe = "helles Stroh";
Spagetti.trockenKochzeit = 7;
Spagetti.frischKochzeit = 0,5;

var essSpass = new Pasta("Reis", 3, "flach", false);
// Weder das essSpass-Objekt noch die anderen vorhandenen
// Pastaobjekte besitzen die drei neuen Eigenschaften, die zum
// Spagettiobjekt hinzugefügt wurden.

// Durch Hinzufügen der 'Lebensmittelgruppe'-Eigenschaft zum Pasta-Prototypobjekt
// steht sie allen Instanzen von Pastaobjekten zur Verfügung,
// einschließlich der bereits erstellten.
Pasta.prototype.Lebensmittelgruppe = "Kohlenhydrate"

// Jetzt enthalten Spagetti.Lebensmittelgruppe, essSpass.Lebensmittelgruppe usw. alle
// den Wert "Kohlenhydrate".

Einfügen von Methoden in die Definition

Sie können Methoden (Funktionen) in die Definition eines Objekts einfügen. Eine Möglichkeit, dies durchzuführen, besteht darin, in die Konstruktorfunktion eine Eigenschaft einzufügen, die auf eine an anderer Stelle definierte Funktion verweist. Das folgende Beispiel erweitert z. B. die oben definierte Pastakonstruktorfunktion und fügt eine toString-Methode ein, die aufgerufen wird, wenn der Wert des Objekts angezeigt werden soll.

// Pasta ist ein Konstruktor, der vier Parameter erhält.
// Der erste Teil ist der gleiche wie der oben Genannte
function Pasta(Getreide, Breite, Form, enthaeltEi)
{
    // Aus welchem Getreide?
    this.Getreide = Getreide;

    // Breite (Zahl)
    this.Breite = Breite;

    // Querschnitt (Zeichenfolge)
    this.Form = Form;

    // Ist Eigelb als Bindemittel enthalten? (boolescher Wert)
    this.enthaeltEi = enthaeltEi;

    // Hier wird die toString-Methode hinzugefügt (wird weiter unten definiert).
    // Beachten Sie, dass nach dem Namen der Funktion keine Klammern gesetzt
    // werden; es handelt sich nicht um einen Funktionsaufruf, sondern um einen
    // Verweis auf die Funktion selbst.
    this.toString = PastaToString;
}

// Die eigentliche Funktion zum Anzeigen des Inhalts eines Pastaobjekts.
function PastaToString()
{
    // Gibt die Eigenschaften des Objekts zurück

    return "Getreide: " + this.Getreide + "\n" +
        "Breite: " + this.Breite + "\n" +
        "Form: " + this.Form + "\n" +
        "Ei?: " + Boolean(this.enthaeltEi);
}

var Spagetti = new Pasta("Weizen", 0,2, "kreisfoermig", true);
// Dies ruft toString() auf und zeigt die Eigenschaften
// des Spagettiobjekts an (Internet Explorer erforderlich).
window.alert(Spagetti);


Intrinsische Objekte

Microsoft JScript stellt elf intrinsische (oder "integrierte") Objekte bereit. Im Einzelnen sind dies die Objekte Array, Boolean, Date, Function, Global, Math, Number, Object, RegExp, Error und String. Jedes dieser intrinsischen Objekte besitzt zugehörige Methoden und Eigenschaften, die im Sprachverzeichnis detailliert beschrieben werden. Einige dieser Objekte werden auch im vorliegenden Abschnitt beschrieben.

Array-Objekt

Man kann sich die Indizes eines Arrays als Eigenschaften eines Objekts vorstellen. Auf sie kann mit ihrem numerischen Index verwiesen werden. Beachten Sie, dass einem Array hinzugefügte benannte Eigenschaften nicht über eine Zahl indiziert werden können; sie werden von den Arrayelementen getrennt verwaltet.

Um ein neues Array zu erstellen, verwenden Sie den new-Operator und den Array()-Konstruktor, wie im folgenden Beispiel.

var dieMonate = new Array(12);
dieMonate[0] = "Jan";
dieMonate[1] = "Feb";
dieMonate[2] = "März";
dieMonate[3] = "Apr";
dieMonate[4] = "Mai";
dieMonate[5] = "Jun";
dieMonate[6] = "Juli";
dieMonate[7] = "Aug";
dieMonate[8] = "Sep";
dieMonate[9] = "Okt";
dieMonate[10] = "Nov";
dieMonate[11] = "Dez";

Wenn Sie unter Verwendung des Array-Schlüsselwortes ein Array erstellen, nimmt JScript eine length-Eigenschaft in das Array auf, die die Anzahl der Einträge aufzeichnet. Wenn Sie keine Zahl angeben, wird length auf 0 gesetzt, und das Array enthält keine Einträge. Geben Sie eine Zahl an, so wird length auf diesen Wert gesetzt. Wenn Sie mehr als einen Parameter angeben, werden diese Parameter als Einträge für das Array verwendet. Der length-Eigenschaft wird zusätzlich die Anzahl der Parameter zugewiesen, wie im folgenden Beispiel, das äquivalent zu dem vorhergehenden Beispiel ist.

var dieMonate = new Array("Jan", "Feb", "März", "Apr", "Mai", "Jun",
"Jul", "Aug", "Sep", "Okt", "Nov", "Dez");

JScript ändert automatisch den Wert von length, wenn Sie Elemente zu einem Array hinzufügen, das mit dem Array-Schlüsselwort erstellt wurde. Arrayindizes beginnen in JScript immer bei 0 und nicht bei 1. Daher ist der Wert der length-Eigenschaft stets um eins höher als der größte Index im Array.

String-Objekt

In JScript können Sie Zeichenfolgen (und Zahlen) so behandeln, als seien es Objekte. Das string-Objekt verfügt über einige integrierte Methoden, die Sie mit Zeichenfolgen verwenden können. Eine dieser Methoden ist die substring-Methode, die einen Teil der Zeichenfolge zurückgibt. Diese verwendet als Argumente zwei Zahlen.

eineZeichenfolge = "0123456789";
var einTeil = eineZeichenfolge.substring(4, 7);  // Setzt einTeil auf "456".
var andererTeil = eineZeichenfolge.substring(7, 4);  // Setzt andererTeil auf "456".
// Unter Verwendung des vorherigen Beispiels zur Arrayerstellung:
ersterBuchstabe = dieMonate[5].substring(0,1);  // Setzt die Variable ersterBuchstabe auf "J".

Eine weitere Eigenschaft des String-Objekts ist die length-Eigenschaft. Diese Eigenschaft enthält die Anzahl der Zeichen in der Zeichenfolge (0 bei einer leeren Zeichenfolge). Dies ist ein numerischer Wert, der direkt in Berechnungen verwendet werden kann.

var wieLang = "Hallo Welt".length  // Setzt die Variable wieLang auf 10.

Math-Objekt

Das Math-Objekt verfügt über eine Anzahl von vordefinierten Eigenschaften und Methoden. Die Eigenschaften sind bestimmte Zahlen. Eine dieser Eigenschaften ist der Wert von pi (näherungsweise 3,14159...). Im folgenden Beispiel wird diese Eigenschaft, die Math.PI-Eigenschaft, gezeigt.

// Die Variable Radius wird deklariert, und dieser wird ein numerischer Wert zugewiesen.
var Kreisflaeche = Math.PI * Radius * Radius;  // Beachten Sie die Großschreibung von Math und PI.

Eine der integrierten Methoden des Math-Objekts ist die Potenzierungsmethode (oder pow), die eine Zahl in eine bestimmte Potenz erhebt. Das folgende Beispiel verwendet sowohl pi als auch die Potenzierung.

// Diese Formel errechnet das Volumen einer Kugel mit dem angegebenen Radius.
Volumen = (4/3)*(Math.PI*Math.pow(Radius,3));

Date-Objekt

Mit dem Date-Objekt können willkürliche Datums- und Uhrzeitangaben dargestellt, das aktuelle Systemdatum abgerufen und Differenzen zwischen Datumsangaben berechnet werden. Es verfügt über eine Anzahl von Eigenschaften und Methoden, die vordefiniert sind. Im Allgemeinen stellt das Date-Objekt Wochentag, Monat, Tag und Jahr sowie die Zeit in Stunden, Minuten und Sekunden zur Verfügung. Diese Informationen basieren auf der Anzahl der seit dem 1. Januar 1970, 00:00:00.000 GMT verstrichenen Millisekunden. GMT steht für "Greenwich Mean Time"; heute wird eher der Begriff UTC (Universal Coordinated Time, universelle koordinierte Zeit) verwendet, der sich auf die Signale des Weltzeitstandards bezieht. JScript kann Datumsangaben behandeln, die ungefähr im Bereich von 250.000 v. Chr. bis 255.000 n. Chr. liegen.

Verwenden Sie den new-Operator, um ein neues Date-Objekt zu erstellen. Das folgende Beispiel errechnet die Anzahl der vergangenen und noch verbleibenden Tage im aktuellen Jahr.

/*
Dieses Beispiel verwendet das bereits definierte Array der Monatsnamen.
Die erste Anweisung weist das heutige Datum im Format "Tag Monat Datum 00:00:00 Jahr"
der Variablen dasIstHeute zu.
*/
var dasIstHeute = new Date();

var heute = new Date();  // Heutiges Datum speichern.

// Extrahiert Jahr, Monat und Tag.
var diesesJahr = heute.getFullYear();
var dieserMonat = dieMonate[heute.getMonth()];
var dieserTag = dieserMonat + " " + heute.getDate() + ", " + diesesJahr);

Number-Objekt

Microsoft JScript stellt zusätzlich zu den speziellen numerischen Eigenschaften (z. B. PI) des Math-Objekts weitere Eigenschaften durch das Number-Objekt bereit.

Eigenschaft | Beschreibung
MAX_VALUE | Größte mögliche Zahl, ungefähr 1,79E+308; kann positiv oder negativ sein. (Der Wert variiert leicht von System zu System.)
MIN_VALUE | Kleinste mögliche Zahl, ungefähr 2,22E-308; kann positiv oder negativ sein. (Der Wert variiert leicht von System zu System.)
NaN | Spezieller nichtnumerischer Wert, "Not a Number".
POSITIVE_INFINITY | Jeder positive Wert, der größer als die größte positive Zahl (Number.MAX_VALUE) ist, wird automatisch in diesen Wert konvertiert; dargestellt als unendlich.
NEGATIVE_INFINITY | Jeder Wert, der negativer als die kleinste negative Zahl (-Number.MAX_VALUE) ist, wird automatisch in diesen Wert konvertiert; dargestellt als minus unendlich.

Number.NaN ist eine spezielle Eigenschaft, die als "Not a Number" ("keine Zahl") definiert ist. Beispielsweise wird bei einer Division durch Null NaN zurückgegeben. Beim Versuch, eine Zeichenfolge zu analysieren, die nicht analysiert werden kann, wird ebenfalls Number.NaN zurückgegeben. NaN ist bei Vergleichen immer ungleich jeder Zahl und auch ungleich sich selbst. Für den Test, ob das Ergebnis NaN vorliegt, dürfen Sie somit keinen Vergleich mit Number.NaN durchführen. Verwenden Sie stattdessen die isNaN()-Funktion.


Reservierte Wörter von JScript

In JScript gibt es eine Reihe von reservierten Wörtern, die nicht als Bezeichner verwendet werden dürfen. Reservierte Wörter besitzen eine spezielle Bedeutung in der JScript-Sprache, da sie Teil der Sprachsyntax sind. Wenn Sie ein reserviertes Wort verwenden, verursacht dies beim Laden des Skripts einen Kompilierungsfehler.

JScript hat außerdem eine Liste von zukünftigen reservierten Wörtern. Diese Wörter sind derzeit noch nicht Teil der JScript-Sprache; sie sind jedoch für eine zukünftige Verwendung reserviert.

Reservierte Wörter

break | delete | function | return | typeof
case | do | if | switch | var
catch | else | in | this | void
continue | false | instanceof | throw | while
debugger | finally | new | true | with
default | for | null | try |

Zukünftig reservierte Wörter

abstract | double | goto | native | static
boolean | enum | implements | package | super
byte | export | import | private | synchronized
char | extends | int | protected | throws
class | final | interface | public | transient
const | float | long | short | volatile

Beim Auswählen von Bezeichnern ist es außerdem wichtig, Wörter zu vermeiden, die bereits Namen von intrinsischen JScript-Objekten oder -Funktionen sind, z. B. String oder parseInt.


JScript für Fortgeschrittene

Erstellen erweiterter Objekte

Rekursion

Gültigkeitsbereich von Variablen

Kopieren, Übergeben und Vergleichen von Daten

Verwenden von Arrays

Sonderzeichen

Beseitigen von Fehlern aus Skripten


Erstellen erweiterter Objekte

Ein Konstruktor ist eine Funktion, die Sie zum Instanziieren und Initialisieren eines bestimmten Objekt-Typs aufrufen. Sie rufen einen Konstruktor mit dem Schlüsselwort new auf. Hier sind einige Beispiele für das Verwenden von Konstruktoren.

var meinObjekt = new Object();             // Erstellt ein generisches Objekt ohne Eigenschaften.
var meinGeburtstag = neues Datum(1961, 5, 10);  // Erstellt ein Datumsobjekt.
var meinAuto = new Car();                   // Erstellt ein benutzerdefiniertes Objekt und initialisiert die zugehörigen Eigenschaften.

Dem Konstruktor wird der Verweis zu einem neu erstellten, leeren Objekt als ein Wert des speziellen Schlüsselwortes this übergeben. Er ist anschließend für das Durchführen einer entsprechenden Initialisierung für das neue Objekt verantwortlich (indem er Eigenschaften erstellt und ihnen Anfangswerte zuweist). Nach Beendigung gibt der Konstruktor einen Verweis zu dem von ihm erstellten Objekt zurück.

Schreiben von Konstruktoren

Sie können Objekte erstellen und diese mithilfe des new-Operators in Verbindung mit vordefinierten Konstruktorfunktionen, wie z. B. Object(), Date() und Function() initialisieren. Ein leistungsstarkes Funktionsmerkmal von objektorientiertem Programmieren ist die Fähigkeit, benutzerdefinierte Konstruktorfunktionen zum Erstellen von benutzerdefinierten Objekten für die Verwendung in Ihren Skripten zu definieren. Sie erstellen benutzerdefinierte Konstruktoren, damit Sie Objekte mit bereits definierten Eigenschaften erstellen können. Hier ist ein Beispiel für einen benutzerdefinierten Konstruktor (beachten Sie die Verwendung des Schlüsselwortes this).

function Circle (xPoint, yPoint, radius) {
    this.x = xPunkt;  // Die x-Komponente der Kreismitte.
    this.y = yPunkt;  // Die y-Komponente der Kreismitte.
    this.r = Radius;  // Der Kreisradius.
}

Wenn Sie den Kreiskonstruktor aufrufen, liefern Sie die Werte für den Mittelpunkt des Kreises und den Radius (diese Elemente sind alles, was für das vollständige Definieren eines eindeutigen Kreisobjekts erforderlich ist). Sie erhalten ein Kreisobjekt mit drei Eigenschaften. Hier ist ein Beispiel, wie Sie ein Kreisobjekt instantiieren können.

var einKreis = neuer Kreis(5, 11, 99);

Verwenden von Prototypen zum Erstellen von Objekten

Wenn Sie einen Konstruktor schreiben, können Sie die Eigenschaften des Prototypenobjekts (welches selbst eine Eigenschaft eines jeden Konstruktors ist) verwenden, um vererbte Eigenschaften und freigegebene Methoden zu erstellen. Prototypeigenschaften und –methoden werden nach Referenz in die einzelnen Objekte einer Klasse kopiert, sodass alle dieselben Werte enthalten. Sie können den Wert einer Prototypeigenschaft eines Objekts ändern. Der neue Wert setzt den Standardwert außer Kraft, jedoch nur in diesem einen Fall. Andere Objekte, die Elemente der Klasse sind, sind von der Änderung nicht betroffen.

Im Folgenden finden Sie ein Beispiel, das einen benutzerdefinierten Konstruktor, Kreis, verwendet (beachten Sie, die Verwendung des Schlüsselwortes this).

Kreis.Prototyp.pi = Math.PI;
function ACircleArea () {
    return this.pi * this.r * this.r; // Die Formel für die Fläche eines Kreises lautet Ïr2.
}
Kreis.Prototyp.Fläche = EineKreisFläche; // Die Funktion, die die Fläche eines Kreises berechnet ist jetzt eine Methode des Kreis-Prototypenobjekts.
var a = Acircle.Area();               // So würden Sie die Flächenfunktion auf einem Kreisobjekt aufrufen.

Mittels dieses Prinzips können Sie weitere Eigenschaften für vordefinierte Konstruktorfunktionen definieren (die alle über Prototypenobjekte verfügen). Wenn Sie beispielsweise in der Lage sein möchten, führende und nachgestellte Leerzeichen aus Zeichenfolgen zu entfernen (ähnlich der Trim-Funktion von VBScriptFor), können Sie Ihre eigene Methode auf dem String-Prototypenobjekt erstellen, und alle Zeichenfolgen in Ihrem Skript erben automatisch die Methode.

// Fügen Sie eine Funktion mit dem Namen trim als eine Methode des
// Prototypen vom Zeichenfolgenkonstruktor hinzu.
Zeichenfolge.Prototyp.trim = function()
{
    // Verwenden Sie einen regulären Ausdruck, um die führenden und
    // nachgestellten Leerzeichen durch eine leere Zeichenfolge zu ersetzen
    return this.ersetzen(/(^\s*)|(\s*$)/g, "");
}

// Eine Zeichenfolge mit Leerzeichen
var s = "    führende und nachgestellte Leerzeichen    ";

// Zeigt "    führende und nachgestellte Leerzeichen     (35)" an
window.alert(s + " (" + s.length + ")");

// Entfernen Sie die führenden und nachgestellten Leerzeichen
s = s.trim();
// Zeigt " führende und nachgestellte Leerzeichen (27)" an
window.alert(s + " (" + s.length + ")");


Rekursion

Rekursion ist eine wichtige Programmiertechnik. Sie wird dazu verwendet, eine Funktion aus sich selbst heraus aufzurufen. Ein Beispiel ist die Berechnung von Fakultäten. Die Fakultät von 0 ist als 1 definiert. Die Fakultäten höherer Zahlen werden durch Multiplikation der aufeinander folgenden Zahlen (1 * 2 * ..., immer um 1 erhöht, bis die gewünschte Zahl erreicht ist) berechnet.

Im folgenden Absatz wird eine Funktion zur Berechnung von Fakultäten beschrieben.

"Wenn die Zahl kleiner als Null ist, gibt es keine Fakultät. Wenn sie keine Ganzzahl ist, wird sie auf die nächstkleinere Ganzzahl abgerundet. Ist die Zahl gleich Null, so ist die Fakultät Eins. Ist die Zahl größer als Null, so wird sie mit der Fakultät der nächstkleineren Zahl multipliziert."

Um die Fakultät einer Zahl zu berechnen, die größer als Null ist, müssen Sie die Fakultät für mindestens eine weitere Zahl berechnen. Dazu verwenden Sie die gleiche Funktion, in der Sie sich gerade befinden. Sie müssen die Funktion nur mit der nächstkleineren Zahl aufrufen, bevor sie für die aktuelle Zahl abgeschlossen werden kann. Dies ist ein Beispiel für eine Rekursion.

Rekursion und Iteration (Schleife) gehören eng zusammen – alles, was mit einer Rekursion gemacht werden kann, kann auch mit der Iteration gemacht werden und umgekehrt. In der Regel kann eine bestimmte Berechnung mit der einen oder anderen Technik durchgeführt werden, und Sie müssen lediglich die naheliegendere Herangehensweise bzw. die Herangehensweise auswählen, die Ihnen am meisten zusagt.

Allerdings kann die Rekursion auch zu Problemen führen. Man kann leicht rekursive Funktionen erstellen, die nie zu einem endgültigen Ergebnis kommen und nie einen Endpunkt erreichen. Eine solche Rekursion veranlasst den Computer, eine so genannte "Endlosschleife" auszuführen. Ein Beispiel: Entfernen Sie die erste Regel (die mit den negativen Zahlen) aus der verbalen Beschreibung für die Berechnung der Fakultät, und versuchen Sie die Fakultät einer negativen Zahl zu berechnen. Dieses misslingt, da Sie zur Berechnung der Fakultät von beispielsweise -24 erst die Fakultät von -25 berechnen müssen, dazu wiederum die Fakultät von -26 usw. Offensichtlich führt dies zu keinem Ende.

Deshalb ist es sehr wichtig, rekursive Funktionen mit größter Vorsicht zu entwickeln. Wenn auch nur die geringste Möglichkeit für eine Endlosrekursion besteht, können Sie die Funktion die Anzahl der Durchläufe zählen lassen. Ruft sich die Funktion (nach einer von Ihnen getroffenen Vorgabe) zu oft auf, so können Sie sie automatisch beenden.

Hier ist nun die Funktion zur Berechnung der Fakultät, diesmal in JScript-Code.

// Funktion zur Berechnung von Fakultäten. Wenn eine ungültige
// Zahl übergeben wird (d. h. eine Zahl, die kleiner als Null ist), wird
// -1 angezeigt, um einen Fehler anzugeben. Anderenfalls wird die
// Zahl in die nächste Ganzzahl konvertiert und die zugehörige Fakultät
// angezeigt.
function Fakultaet(eineZahl)  {
eineZahl = Math.floor(eineZahl);  // Ist die Zahl keine Ganzzahl, so wird sie abgerundet.
if (eineZahl < 0)  {  // Negative Zahlen sind nicht zulässig.
    return -1;
    }
      if (eineZahl == 0)  {  // Ist die Zahl 0, so ist die Fakultät gleich 1.
      return 1;
      }
        else return (eineZahl * Fakultaet(eineZahl - 1));  // Rekursiver Aufruf.
}


Gültigkeitsbereich von Variablen

JScript kennt zwei Gültigkeitsbereiche: global und lokal. Wenn Sie eine Variable außerhalb einer Funktionsdefinition deklarieren, so ist diese Variable global, und ihr Wert kann im gesamten Programm abgerufen und verändert werden. Wenn Sie eine Variable innerhalb einer Funktionsdefinition deklarieren, ist diese Variable lokal. Sie wird bei jeder Ausführung der Funktion neu erstellt und anschließend wieder gelöscht. Ein Zugriff auf die Variable von außen ist nicht möglich.

Programmiersprachen, wie z. B. C++, verfügen auch über "Gültigkeitsbereich von Blöcken". Hier definieren jeweils zwei geschweifte Klammern "{}" einen neuen Gültigkeitsbereich. JScript unterstützt keine Gültigkeitsbereiche von Blöcken. Eine lokale Variable kann den gleichen Namen wie eine globale Variable haben, allerdings sind beide vollständig voneinander getrennt. Folglich hat eine Änderung des Wertes der einen Variablen keinen Einfluss auf den Wert der anderen. Innerhalb der Funktion, in der die lokale Variable deklariert wurde, ist nur dieser lokale Wert gültig.

var einZentaur = "ein Pferd mit Reiter,";  // Globale Definition der Variable einZentaur.

// JScript-Code aus Gründen der Übersichtlichkeit ausgelassen.
function Antike()  // In dieser Funktion wird eine lokale Variable einZentaur deklariert.
{

// JScript-Code aus Gründen der Übersichtlichkeit ausgelassen.
var einZentaur = "Ein Zentaur ist vermutlich ein reitender skythischer Krieger";

// JScript-Code aus Gründen der Übersichtlichkeit ausgelassen.
   einZentaur += ", also ";  // Mit lokaler Variable verketten.

// JScript-Code aus Gründen der Übersichtlichkeit ausgelassen.
}  // Ende der Funktion.

var nichtsImBesonderen = Antike();
einZentaur += " aus der Ferne von jemandem betrachtet, der noch nie Reiter sah.";

/*
Innerhalb der Funktion enthält die Variable den Wert "Ein Zentaur ist vermutlich ein reitender skythischer
Krieger, also "; außerhalb der Funktion enthält die Variable den Rest des Satzes:
"ein Pferd mit Reiter, aus der Ferne von jemandem betrachtet, der noch nie Reiter sah."
*/

Beachten Sie, dass sich Variablen so verhalten, als wären sie zu Beginn des jeweiligen Gültigkeitsbereiches deklariert worden. Dies kann zu unerwartetem Verhalten führen.

veraendern();
var eineZahl = 100;
function Veraendern()  {
    var neueSache = 0;  // Explizite Deklaration der Variable neueSache.
    // Die Anweisung weist den Wert undefined zu neueSache zu, weil es eine lokale Variable mit dem Namen eineZahl gibt.
    neueSache = eineZahl;

    // Die nächste Anweisung weist der lokalen Variable eineZahl den Wert 42 zu und deklariert sie damit implizit.
    eineZahl = 42;
    if (false)  {
    var eineZahl;  // Diese Anweisung wird nie ausgeführt.
    eineZahl = 123;  // Diese Anweisung wird nie ausgeführt.
    }  // Ende der Bedingung.

}  // Ende der Funktionsdefinition.

Wenn JScript eine Funktion ausführt, sucht es zunächst nach allen Variablendeklarationen,

var einigeVariablen;

und erstellt die Variablen mit einem Anfangswert von undefined. Wenn eine Variable mit einem Wert,

var einigeVariablen = "etwas";

deklariert wird, hat sie weiterhin den Wert undefined als Anfangswert und nimmt erst dann den deklarierten Wert an, wenn die Zeile, die die Deklaration enthält, ausgeführt wird (wenn überhaupt)

JScript verarbeitet Variablendeklarationen vor dem Ausführen von Codes. Daher spielt es keine Rolle, ob sich die Deklaration innerhalb eines bedingten Blockes oder einer anderen Struktur befindet. Hat JScript alle Variablen gefunden, führt es den Code in der Funktion aus. Wenn eine Variable ausdrücklich innerhalb einer Funktion deklariert wird, z. B., wenn sie auf der linken Seite eines Zuweisungsausdruckes deklariert wird, aber noch nicht mit var deklariert wurde, dann wird sie als eine globale Variable erstellt.


Kopieren, Übergeben und Vergleichen von Daten

In JScript hängt die Behandlung von Daten vom jeweiligen Datentyp ab.

Nach Wert (by value) oder nach Verweis (by reference)

Zahlen und boolesche Werte (true und false) werden nach Wert kopiert, übergeben und verglichen. Wenn Sie nach Wert kopieren oder übergeben, reservieren Sie Speicherplatz im Arbeitsspeicher des Computers und kopieren den Wert des Originals in diesen Speicher. Wenn Sie dann das Original ändern, ist die Kopie nicht betroffen (und umgekehrt), da es sich um zwei getrennte Elemente handelt.

Objekte, Arrays und Funktionen werden nach Verweis kopiert, übergeben und verglichen. Wenn Sie nach Verweis kopieren oder übergeben, erstellen Sie im Wesentlichen einen Zeiger auf das Original und verwenden diesen Zeiger, als wäre er eine Kopie. Wenn Sie dann das Original ändern, dann ändern Sie sowohl dieses als auch die Kopie (und umgekehrt). Es handelt sich hier nur um ein Element. Die "Kopie" ist im Grunde keine Kopie, sondern ein weiterer Verweis auf die Daten.

Wenn nach Verweis verglichen wird, müssen die beiden Variablen genau auf dasselbe Element verweisen, damit der Vergleich erfolgreich durchgeführt werden kann. Beispielsweise sind die beiden unterschiedlichen Array-Objekte stets nicht gleich, auch wenn sie dieselben Elemente enthalten. Eine der Variablen muss ein Verweis auf die andere Variable sein, damit der Vergleich erfolgreich durchgeführt werden kann. Vergleichen Sie die Ergebnisse der toString()-Methode, um zu prüfen, ob die Arrays dieselben Elemente enthalten.

Zeichenfolgen werden schließlich nach Verweis kopiert und übergeben, jedoch nach Wert verglichen. Beachten Sie, dass, wenn es zwei String-Objekte gibt (die mit new String("something") erstellt wurden), diese nach Verweis verglichen werden. Wenn jedoch ein Wert eine Zeichenfolge ist bzw. beide Werte Zeichenfolgen sind, werden sie nach Wert verglichen.

Anmerkung Aufgrund des Aufbaus des ASCII- und des ANSI-Zeichensatzes rangieren bei Vergleichen die Großbuchstaben vor den Kleinbuchstaben. So ist bei einem Vergleich "Zoo" kleiner als "adler". Sie können die Methode toUpperCase() oder toLowerCase() auf beiden Zeichenfolgen aufrufen, wenn Sie einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchführen möchten.

Übergeben von Parametern an Funktionen

Wenn Sie einen Parameter nach Wert an eine Funktion übergeben, erstellen Sie eine separate Kopie des Parameters, d. h. eine Kopie, die nur innerhalb der Funktion vorhanden ist. Obwohl Objekte und Arrays nach Verweis übergeben werden, wenn Sie diese direkt mit einem neuen Wert in der Funktion überschreiben, wird der neue Wert nicht außerhalb der Funktion angzeigt. Nur Änderungen an den Eigenschaften von Objekten oder an Elementen von Arrays sind außerhalb der Funktion sichtbar.

Beispiel (mithilfe des Internet Explorer-Objektmodells):

// Dies überschreibt (engl. clobbers) den zugehörigen Parameter, und
// die Änderungen werden nicht im aufrufenden Code angezeigt.
function Clobber(param)
{
    // Dies überschreibt den Parameter und wird nicht im
    // aufrufenden Code angezeigt
    param = new Object();
    param.message = "Dies wird nicht funktionieren";
}

// Dies ändert eine Eigenschaft des Parameters und wird
// im aufrufenden Code angezeigt.
function Update(param)
{
    // Ändern Sie die Eigenschaft des Objektes; dies wird
    // im aufrufenden Code angezeigt.
    param.message = "Ich wurde geändert";
}

// Erstellen Sie ein Objekt, und weisen Sie ihm eine Eigenschaft zu.
var obj = new Object();
obj.message = "Dies ist das Original";

// Rufen Sie Clobber auf, und drucken Sie obj.message. Beachten Sie, dass dies nicht geändert wurde.
Clobber(obj);
window.alert(obj.message); // Zeigt weiterhin " Dies ist das Original" an.

// Rufen Sie Update auf, und drucken Sie obj.message. Beachten Sie, dass es sich geändert hat.
Update(obj);
window.alert(obj.message); // Zeigt "Ich wurde geändert" an.

Testen von Daten

Wenn Sie einen Test nach Wert durchführen, vergleichen Sie zwei verschiedene Elemente, um herauszufinden, ob sie gleich sind. In der Regel wird dieser Vergleich byteweise durchgeführt. Wenn Sie nach Verweis testen, prüfen Sie, ob zwei Elemente Zeiger auf das gleiche Originalelement sind. Ist dies der Fall, sind sie gleich. Ist dies nicht der Fall, selbst wenn sie auf exakt dieselben Werte verweisen sollten, dann sind sie nicht gleich.

Das Kopieren und Übergeben von Zeichenfolgen nach Verweis belegt weniger Arbeitsspeicher. Da Sie aber Zeichenfolgen nach ihrer Erstellung nicht ändern können, ist es möglich, sie nach Wert zu vergleichen. Dadurch können Sie zwei Zeichenfolgen auf denselben Inhalt überprüfen, auch wenn diese völlig unabhängig voneinander erstellt wurden.


Verwenden von Arrays

In JScript sind Arrays sparse. Das heißt, bei einem Array mit den drei Elementen Nummer 0, 1, und 2 können Sie Element 50 erstellen, ohne auf die Elemente 3 bis 49 Rücksicht zu nehmen. Verfügt das Array über eine automatisch erstellte Längenvariable (siehe die Erklärung der automatischen Überwachung der Arraylänge unter Intrinsische Objekte), wird die Längenvariable nicht auf 4, sondern auf 51 gesetzt. Sie können natürlich auch Arrays erstellen, in denen die Nummerierung der Elemente lückenlos ist, doch müssen Sie dies nicht tun.

In JScript sind Objekte und Arrays fast identisch. Die beiden Hauptunterschiede sind, dass normale Objekte über keine automatische Längeneigenschaft und Arrays über keine Eigenschaften und Methoden eines Objekts verfügen.

Adressieren von Arrays

Es gibt zwei Hauptmethoden, um die Elemente eines Arrays zu adressieren. Sie adressieren Arrays mithilfe von eckigen Klammern "[]". Diese umschließen entweder einen numerischen Wert oder einen Ausdruck, der eine Ganzzahl darstellt. Im folgenden Beispiel wird davon ausgegangen, dass die Variable EintragsNr definiert ist und dass ihr an einer anderen Stelle im Skript ein Wert zugewiesen wird.

dieListe = adressBuch[EintragsNr];
ersteZeile = dieListe[1];

Objekte als assoziative Arrays

Normalerweise verwenden Sie den Punkt-Operator ".", um auf die Eigenschaften von Objekten zuzugreifen. Beispiel:

meinObjekt.eineEigenschaft

In diesem Beispiel ist der Name der Eigenschaft ein Bezeichner. Sie können auch mithilfe des Indexoperators "[]" auf die Eigenschaften von Objekten zugreifen. In diesem Beispiel verwenden Sie das Objekt wie ein assoziatives Array. Ein assoziatives Array ist eine Datenstruktur, die es Ihnen ermöglicht, willkürliche Datenwerte dynamisch zu willkürlichen Zeichenfolgen zuzuweisen. Beispiel:

meinObjekt["eineEigenschaft"] // Entspricht dem Vorhergehenden.

Obwohl das Verwenden des Indexoperators häufiger mit dem Zugreifen auf Array-Elemente verbunden wird (bei der Verwendung mit Objekten), ist der Index stets der Name der Eigenschaft, der als ein Zeichenfolgenliteral ausgedrückt wird.

Beachten Sie den wichtigen Unterschied zwischen den beiden Möglichkeiten, auf Eigenschaften von Objekten zuzugreifen.

Operator | Der Name der Eigenschaft wird verwendet wie | Das bedeutet, dass der Name der Eigenschaft
Punkt "." | ein Bezeichner | nicht wie Daten geändert werden kann
Index "[]" | ein Zeichenfolgenliteral | wie Daten geändert werden kann

Dieser Unterschied ist vor allem dann hilfreich, wenn Sie bis zur Laufzeit nicht wissen, wie die Namen der Eigenschaften lauten werden (z. B., wenn Sie Objekte basierend auf der Benutzereingabe erstellen). Sie müssen die for … in-Schleife verwenden, um alle Eigenschaften aus einem Array zu extrahieren.


Sonderzeichen (JScript)

JScript

Sonderzeichen

JScript ermöglicht es Ihnen, mittels Sonderzeichen nicht direkt eingebbare Zeichen in Zeichenfolgen einzufügen. Alle diese Zeichen beginnen mit einem umgekehrten Schrägstrich (Backslash). Dieser ist ein Escape-Zeichen, mit dem Sie den JScript-Interpreter darüber informieren, dass das nächste Zeichen ein Sonderzeichen ist.

Escape-Sequenz | Zeichen
\b | Rückschritt
\f | Formularvorschub
\n | Zeilenvorschub (neue Zeile)
\r | Wagenrücklauf
\t | Horizontaler Tabstopp (Strg-I)
\' | Einfaches Anführungszeichen
\" | Doppeltes Anführungszeichen
\\ | Umgekehrter Schrägstrich

Da der umgekehrte Schrägstrich als Escape-Zeichen verwendet wird, können Sie diesen nicht direkt in ein Skript eingeben. Wenn Sie einen umgekehrten Schrägstrich schreiben wollen, müssen Sie zwei davon hintereinander eingeben (\\).

document.write('Der Pfad der Grafik ist C:\\webstuff\\mypage\\gifs\\garden.gif.');
document.write('Die Unterschrift heißt "Nach dem Schnee von \'97. Klaus\' Haus ist bedeckt."');


Beseitigen von Fehlern aus Skripten

Alle Programmiersprachen haben Fallen, in die Sie tappen können, wenn Sie nicht sorgfältig genug sind, und jede Sprache bietet ihre eigenen Überraschungen. Nehmen Sie nur zum Beispiel den Wert null: Dieser unterscheidet sich in JScript vom Null-Wert der Sprachen C oder C++.

Hier folgen nun einige Problembereiche beim Schreiben von Skripten in JScript.

Syntaxfehler

Da die Syntax von Programmiersprachen weitaus strenger ist als die natürlicher Sprachen, muss den Details beim Schreiben von Skripten ein besonderes Augenmerk gelten. Wenn Sie beispielsweise möchten, dass ein bestimmter Parameter eine Zeichenfolge darstellt, treffen Sie auf Schwierigkeiten, wenn Sie vergessen, diesen bei der Eingabe in Anführungszeichen zu stellen.

Reihenfolge der Skriptinterpretation

Die JScript-Interpretation ist Teil des HTML-Analyseprozesses des Web Browsers. Wenn Sie also ein Skript zwischen die <HEAD>-Kennzeichen in einem Dokument setzen, wird dieses interpretiert, bevor die <BODY>-Kennzeichen interpretiert werden. Verwenden Sie Objekte, die innerhalb des <BODY>-Kennzeichens erstellt werden, so existieren diese bei der Analyse des <HEAD>-Kennzeichens noch nicht und können somit auch nicht durch das Skript manipuliert werden.

Anmerkung Dieses Verhalten ist spezifisch für Internet Explorer. ASP und WSH haben unterschiedliche Ausführungsmodelle (wie auch andere Hosts).

Automatische Typumwandlung

JScript ist eine lose typisierte Sprache mit automatischer Typumwandlung. Demzufolge werden die Ausdrücke im folgenden Beispiel zu true ausgewertet, obwohl Werte mit verschiedenen Typen nicht gleich sein können.

"100" == 100
false == 0

Verwenden Sie den strikten Gleichheitsoperator, ===, um zu prüfen, ob sowohl der Typ als auch der Wert identisch sind. Die folgenden Ausdrücke ergeben beide false:

"100" === 100;
false === 0;

Operatorvorrang

Der Zeitpunkt der Ausführung einer bestimmten Operation während der Auswertung eines Ausdrucks hat mehr mit dem Operatorvorrang als mit der Position des Operators im Ausdruck zu tun. Daher wird in dem folgenden Beispiel die Multiplikation vor der Subtraktion ausgeführt, obgleich diese in dem Ausdruck auf die Subtraktion folgt.

derRadius = einRandPunkt - derMittelpunkt * derKorrekturfaktor;

Verwenden von for...in-Schleifen mit Objekten

Wenn Sie die Eigenschaften eines Objekts mit einer for...in-Schleife durchlaufen, können Sie die Reihenfolge, in der der Schleifenzählvariable die Felder des Objekts zugewiesen werden, nicht unbedingt vorhersagen oder steuern. Darüber hinaus kann die Reihenfolge in verschiedenen Implementierungen der Sprache unterschiedlich sein.

Schlüsselwort "with"

Die with-Anweisung ist nützlich zum Adressieren von Eigenschaften, die bereits für ein bestimmtes Objekt existieren. Zum Hinzufügen von Eigenschaften zu einem Objekt kann sie jedoch nicht eingesetzt werden. Um neue Eigenschaften für ein Objekt zu erstellen, müssen Sie speziell auf das Objekt verweisen.

Schlüsselwort "this"

Obgleich Sie das Schlüsselwort this innerhalb der Definition eines Objekts verwenden können, um auf das Objekt selbst zu verweisen, können Sie this oder ähnliche Schlüsselwörter üblicherweise nicht verwenden, um auf die gegenwärtig ausgeführte Funktion zu verweisen, wenn diese Funktion keine Objektdefinition ist. Wenn die Funktion einem Objekt als Methode zugewiesen werden soll, können Sie das Schlüsselwort this innerhalb der Funktion zum Verweisen auf das Objekt verwenden.

Schreiben eines Skriptes, das ein Skript im Internet Explorer schreibt

Das Kennzeichen </SCRIPT> beendet das aktuelle Skript, wenn der Interpreter darauf trifft. Um "</SCRIPT>" selbst anzuzeigen, schreiben Sie dies als mindestens zwei Zeichenfolgen, z. B. als "</SCR" und "IPT>", die Sie danach in der Anweisung, die diese ausschreibt, miteinander verketten können.

Implizite Fensterverweise in Internet Explorer

Da zu einem Zeitpunkt mehrere Fenster geöffnet sein können, bezieht sich jeder implizite Fensterverweis auf das aktuelle Fenster. Für andere Fenster müssen Sie explizite Verweise verwenden.


Bedingte Kompilierung

Die bedingte Kompilierung ermöglicht die Verwendung neuer JScript-Sprachmerkmale ohne Verzicht auf die Kompatibilität mit älteren Versionen, die diese Funktionsmerkmale nicht unterstützen.

Die bedingte Kompilierung wird durch Verwendung der @cc_on-Anweisung oder einer @if- bzw. @set-Anweisung aktiviert. Zu den typischen Anwendungsmöglichkeiten der bedingten Kompilierung gehört das Verwenden neuer Features in JScript, das Einbetten von Debuggingunterstützung in ein Skript und das Verfolgen der Codeausführung.

Setzen Sie Code für die bedingte Kompilierung stets in Kommentarzeichen, damit Hosts (wie z. B. Netscape Navigator), die keine bedingte Kompilierung verstehen, ihn ignorieren. Ein Beispiel:

/*@cc_on @*/
/*@if (@_jscript_version >= 4)
   alert("JScript Version 4 oder höher");
   @else @*/
   alert("Sie benötigen ein aktuelleres Skriptmodul.");
/*@end @*/

In diesem Beispiel werden spezielle Kommentartrennzeichen verwendet, die nur eingesetzt werden, wenn die bedingte Kompilierung durch die @cc_on-Anweisung aktiviert ist. Bei Skriptmodulen, die die bedingte Kompilierung nicht unterstützen, wird lediglich die Meldung angezeigt, dass ein neues Skriptmodul erforderlich ist.


Variablen für die bedingte Kompilierung

Folgende vordefinierte Variablen stehen für die bedingte Kompilierung zur Verfügung. Ist der Wert einer Variablen nicht true, so ist er nicht definiert und verhält sich beim Zugriff wie NaN.

Variable | Beschreibung
@_win32 | True bei Ausführung auf einem Win32-System.
@_win16 | True bei Ausführung auf einem Win16-System.
@_mac | True bei Ausführung auf einem Apple Macintosh-System.
@_alpha | True bei Ausführung auf einem DEC Alpha-Prozessor.
@_x86 | True bei Ausführung auf einem Intel-Prozessor.
@_mc680x0 | True bei Ausführung auf einem Motorola 680x0-Prozessor.
@_PowerPC | True bei Ausführung auf einem Motorola PowerPC-Prozessor.
@_jscript | Stets true.
@_jscript_build | Enthält die Buildnummer des JScript-Skriptmoduls.
@_jscript_version | Enthält die JScript-Versionsnummer im Format "Hauptversion.Nebenversion".


Einführung in reguläre Ausdrücke

Mithilfe der Informationen auf diesen Seiten soll eine allgemeine Einführung in reguläre Ausdrücke gegeben werden.

Obwohl jedes Thema weitgehend eigenständig konzipiert wurde, setzen viele der Informationen in diesen Themen zuvor eingeführte Features oder Konzepte voraus. Daher wird empfohlen, dass Sie diese Themen der Reihe nach lesen, um ein optimales Verständnis für das Material als Ganzes zu erlangen.

Die Einführung in reguläre Ausdrücke besteht aus den folgenden Einzelthemen:

Reguläre Ausdrücke

Die Anfänge

Verwendungsmöglichkeiten regulärer Ausdrücke

Syntax regulärer Ausdrücke

Erstellen eines regulären Ausdrucks

Rangfolge

Normale Zeichen

Sonderzeichen

Nicht druckbare Zeichen

Zeichenvergleich

Quantifizierer

Anker

Auswahl und Gruppierung

Rückverweise


Reguläre Ausdrücke

Wenn Sie bisher noch nie mit regulären Ausdrücken gearbeitet haben, mögen Ihnen der Begriff und das Konzept fremd erscheinen. Vielleicht sind sie Ihnen jedoch nicht so fremd, wie Sie denken.

Betrachten Sie die Methode, mit der Sie Dateien auf Ihrer Festplatte suchen. Höchstwahrscheinlich verwenden Sie das Fragezeichen (?) und das Sternchen (*), um die gesuchten Dateien zu finden. Das Fragezeichen (?) entspricht einem einzelnen Zeichen in einem Dateinamen, während das Sternchen (*) null oder mehr Zeichen entspricht. So würden z. B. mit dem Muster 'data?.dat' die folgenden Dateien gefunden werden:

data1.dat
data2.dat
datax.dat
dataN.dat

Wenn Sie das Sternchen statt des Fragezeichens verwenden, erhöht sich die Anzahl der gefundenen Dateien. 'data*.dat' entspricht allen folgenden Dateien:

data.dat
data1.dat
data2.dat
data12.dat
datax.dat
dataXYZ.dat

Diese Methode des Suchens nach Dateien ist zwar mit Sicherheit sehr nützlich, aber auch sehr beschränkt. Die beschränkten Fähigkeiten der Platzhalterzeichen ? und * verschaffen Ihnen einen Eindruck von den Möglichkeiten regulärer Ausdrücke, aber diese Ausdrücke sind noch wesentlich leistungsfähiger und flexibler.


Die Anfänge

Der Ursprung regulärer Ausdrücke liegt in der frühen Forschung über die Funktionsweise des menschlichen Nervensystems. Warren McCulloch und Walter Pitts, zwei Neurophysiologen, entwickelten eine mathematische Methode zum Beschreiben dieser Nervennetzwerke.

Im Jahre 1956 baute ein amerikanischer Mathematiker namens Stephen Kleene auf dem früheren Werk von McCulloch und Pitts auf und veröffentlichte einen Aufsatz mit dem Titel Representation of Events in Nerve Nets (dt.: "Darstellung von Ereignissen in Nervennetzen"). In diesem Aufsatz wurde das Konzept der regulären Ausdrücke eingeführt. Reguläre Ausdrücke waren Ausdrücke zur Beschreibung dessen, was er "die Algebra regulärer Mengen" nannte - daher der Begriff "regulärer Ausdruck".

Später fand sein Werk Eingang in einige frühe Versuche mit Computersuchalgorithmen von Ken Thompson, dem Haupterfinder von Unix. Die erste praktische Anwendung regulärer Ausdrücke erfolgte im Unix-Editor qed.

Und der Rest ist sozusagen Geschichte. Seither sind reguläre Ausdrücke stets ein wichtiger Bestandteil von textbasierten Editoren und Suchtools gewesen.


Verwendungsmöglichkeiten regulärer Ausdrücke

Bei einem normalen Suchen-und-Ersetzen-Vorgang müssen Sie den exakten Text angeben, nach dem Sie suchen möchten. Diese Technik mag für einfache Suchen-und-Ersetzen-Aufgaben in statischem Text ausreichend sein, aber sie ist nicht flexibel genug und macht die Suche in dynamischem Text schwierig, wenn nicht sogar unmöglich.

Mit regulären Ausdrücken können Sie Folgendes durchführen:

  • Testen auf ein Muster innerhalb einer Zeichenfolge. Sie können beispielsweise eine Eingabezeichenfolge testen, um festzustellen, ob ein Telefonnummernmuster oder das Muster einer Kreditkartennummer in der Zeichenfolge auftritt. Dies nennt man "Gültigkeitsprüfung".
  • Ersetzen von Text. Mit einem regulären Ausdruck können Sie einen bestimmten Text in einem Dokument identifizieren und ihn entweder vollständig entfernen oder durch einen anderen Text ersetzen.
  • Extrahieren einer Unterzeichenfolge aus einer Zeichenfolge auf der Basis eines Mustervergleichs. Sie können nach einem bestimmten Text in einem Dokument oder Eingabefeld suchen.

Wenn Sie beispielsweise eine ganze Website durchsuchen möchten, um veraltetes Material zu entfernen und einige HTML-Formatierungstags zu ersetzen, können Sie alle Dateien mithilfe eines regulären Ausdrucks darauf testen, ob das gesuchte Material oder die gesuchten HTML-Formatierungstags in der Datei vorhanden sind. Auf diese Weise können Sie die betroffenen Dateien auf nur diejenigen reduzieren, die das zu entfernende oder zu ändernde Material enthalten. Anschließend können Sie mithilfe eines regulären Ausdrucks das veraltete Material entfernen und zuletzt ebenfalls mithilfe regulärer Ausdrücke die zu ersetzenden Tags suchen und ersetzen.

Ein weiteres Beispiel für die Nützlichkeit regulärer Ausdrücke findet sich in einer Sprache, die nicht gerade für ihre Fähigkeiten der Zeichenfolgenbehandlung bekannt ist. VBScript, eine Untermenge von Visual Basic, verfügt über zahlreiche Funktionen zur Zeichenfolgenbehandlung. Bei JScript, wie bei C, ist dies nicht der Fall. Reguläre Ausdrücke stellen eine entscheidende Verbesserung bei der Zeichenfolgenbehandlung in JScript dar. Reguläre Ausdrücke können jedoch auch in VBScript eine größere Effizienz bewirken, indem sie Ihnen das Durchführen mehrerer Zeichenfolgenbearbeitungen in einem einzigen Ausdruck gestatten.


Syntax regulärer Ausdrücke

Ein regulärer Ausdruck ist ein Textmuster, das aus normalen Zeichen (beispielsweise den Buchstaben a bis z) und Sonderzeichen, so genannten Metazeichen, besteht. Das Muster beschreibt eine oder mehrere Zeichenfolgen, zu denen beim Durchsuchen eines Textkörpers eine Entsprechung gefunden werden soll. Der reguläre Ausdruck dient als Vorlage für die Suche nach einer Entsprechung eines Zeichenmusters in der durchsuchten Zeichenfolge.

Im Folgenden finden Sie einige Beispiele für reguläre Ausdrücke:

JScript | VBScript | Entsprechung
/^\[ \t]*$/ | "^\[ \t]*$" | Entspricht einer Leerzeile.
/\d{2}-\d{5}/ | "\d{2}-\d{5}" | Überprüft die Gültigkeit einer ID-Nummer, die aus 2 Ziffern, einem Bindestrich und 5 weiteren Ziffern besteht.
/<(.*)>.*<\/\1>/ | "<(.*)>.*<\/\1>" | Entspricht einem HTML-Tag.

Die folgende Tabelle enthält eine vollständige Liste der Metazeichen und ihres Verhaltens im Kontext regulärer Ausdrücke:

Zeichen | Beschreibung
\ | Markiert das nächste Zeichen entweder als Sonderzeichen, als Literal, als Rückverweis oder als oktalen Escapewert. Beispielsweise entspricht 'n' dem Zeichen "n". '\n' entspricht einem Zeilenumbruchzeichen. Die Sequenz '\\' entspricht "\", und '\(' entspricht "(".
^ | Entspricht der Position am Anfang der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht ^ auch der Position nach "\n" oder "\r".
$ | Entspricht der Position am Ende der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r".
* | Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Beispielsweise entspricht 'Zo*' sowohl "Z" als auch "Zoo". * ist äquivalent zu '{0,}'.
+ | Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Beispielsweise entspricht 'Zo+' sowohl "Zo" als auch "Zoo", aber nicht "Z". + ist äquivalent zu '{1,}'.
? | Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal. Beispielsweise entspricht 'habe(n)?' dem "habe" in "habe" oder "haben". ? ist äquivalent zu '{0,1}'.
{n} | n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht 'o{2}' nicht dem "o" in "Robert", jedoch den beiden "o" in "Boot".
{n,} | n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Beispielsweise entspricht 'o{2,}' nicht dem "o" in "Robert", aber allen "o" in "Boooot". 'o{1,}' ist äquivalent zu 'o+'. 'o{0,}' ist äquivalent zu 'o*'.
{n,m} | m und n sind nicht negative Ganzzahlen, wobei n <= m. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht 'o{1,3}' den ersten drei "o" in "Booooot". 'o{0,1}' ist äquivalent zu 'o?'. Beachten Sie, dass zwischen dem Komma und den Zahlen kein Leerzeichen stehen darf.
? | Wenn dieses Zeichen unmittelbar auf einen der anderen Quantifizierer folgt (*, +, ?, {n}, {n,}, {n,m}), so ist die Musterentsprechung nicht umfassend, also von kürzestmöglicher Übereinstimmung. Ein nicht umfassendes Muster entspricht möglichst wenig der durchsuchten Zeichenfolge, während das umfassende Standardmuster möglichst viel der durchsuchten Zeichenfolge entspricht. In der Zeichenfolge "oooo" entspricht beispielsweise 'o+?' einem einzigen "o", während 'o+' allen "o" entspricht.
. | Entspricht allen einzelnen Zeichen außer "\n". Um nach einer Entsprechung für alle einzelnen Zeichen einschließlich des "\n" zu suchen, verwenden Sie beispielsweise das Muster '[.\n]'.
(Muster) | Entspricht Muster und speichert die Entsprechung. Die gespeicherte Entsprechung kann aus der resultierenden Matches-Auflistung unter Verwendung der SubMatches-Auflistung in VBScript oder der $0…$9-Eigenschaften in JScript abgerufen werden. Um nach einer Entsprechung für Klammerzeichen ( ) zu suchen, verwenden Sie '\(' oder '\)'.
(?:Muster) | Entspricht Muster, speichert die Entsprechung jedoch nicht, d. h., es handelt sich um eine nicht speichernde Entsprechung, die nicht für eine mögliche spätere Verwendung gespeichert wird. Dies ist von Nutzen, wenn Teile eines Musters mit dem "oder"-Zeichen (|) kombiniert werden sollen. So ist beispielsweise 'telefonier(?:t|en)' ein kürzerer Ausdruck als 'telefoniert|telefonieren'.
(?=Muster) | Die positive Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?=95|98|NT|2000)' dem Wort "Windows" in "Windows 2000", jedoch nicht dem Wort "Windows" in "Windows 3.1". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
(?!Muster) | Die komplementäre Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster nicht entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?!95|98|NT|2000)' dem Wort "Windows" in "Windows 3.1", jedoch nicht dem Wort "Windows" in "Windows 2000". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
x|y | Entspricht entweder x oder y. Beispielsweise entspricht 'sch|blau' entweder "sch" oder "blau". '(sch|b)lau' entspricht "schlau" oder "blau".
[xyz] | Eine Menge von Zeichen. Entspricht allen enthaltenen Zeichen. Beispielsweise entspricht '[abc]' dem "a" in "fallen".
[^xyz] | Eine Komplementmenge von Zeichen. Entspricht allen nicht enthaltenen Zeichen. Beispielsweise entspricht '[^abc]' dem "f" in "fallen".
[a-z] | Ein Zeichenbereich. Entspricht allen Zeichen im angegebenen Bereich. Beispielsweise entspricht '[a-z]' allen Kleinbuchstaben im Bereich von "a" bis "z".
[^a-z] | Ein Komplementbereich von Zeichen. Entspricht allen Zeichen, die im angegebenen Bereich nicht enthalten sind. Beispielsweise entspricht '[^a-z]' allen Zeichen, die nicht im Bereich von "a" bis "z" enthalten sind.
\b | Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen. Beispielsweise entspricht 'er\b' dem "er" in "neuer", jedoch nicht dem "er" in "Verb".
\B | Entspricht einer Nichtwortgrenze. 'er\B' entspricht dem "er" in "Verb", jedoch nicht dem "er" in "neuer".
\cx | Entspricht dem Steuerzeichen, das durch x angegeben wird. Beispielsweise entspricht '\cM' einem STRG-M oder Wagenrücklaufzeichen. Der Wert von x muss im Bereich von A-Z oder a-z liegen. Ist dies nicht der Fall, wird c als "c"-Zeichenliteral interpretiert.
\d | Entspricht einer Ziffer. Äquivalent zu '[0-9]'.
\D | Entspricht einer Nichtziffer. Äquivalent zu '[^0-9]'.
\f | Entspricht einem Seitenvorschubzeichen. Äquivalent zu '\x0c' und '\cL'.
\n | Entspricht einem Zeilenumbruchzeichen. Äquivalent zu '\x0a' und '\cJ'.
\r | Entspricht einem Wagenrücklaufzeichen. Äquivalent zu '\x0d' und '\cM'.
\s | Entspricht beliebigen Leerräumen wie Leerzeichen, Tabstopp, Seitenvorschub usw. Äquivalent zu '[ \f\n\r\t\v]'.
\S | Entspricht beliebigen Nichtleerräumen. Äquivalent zu '[^ \f\n\r\t\v]'.
\t | Entspricht einem Tabstoppzeichen. Äquivalent zu '\x09' und '\cI'.
\v | Entspricht einem vertikalen Tabstoppzeichen. Äquivalent zu '\x0b' und '\cK'.
\w | Entspricht allen Wortzeichen einschließlich Unterstrich. Äquivalent zu '[A-Za-z0-9_]'.
\W | Entspricht allen Nichtwortzeichen. Äquivalent zu '[^A-Za-z0-9_]'.
\xn | Entspricht n, wobei n ein hexadezimaler Escapewert ist. Hexadezimale Escapewerte müssen genau zwei Stellen aufweisen. '\x41' entspricht beispielsweise "A". '\x041' ist äquivalent zu "\x04" & "1". Ermöglicht die Verwendung von ASCII-Codes in regulären Ausdrücken.
\num | Entspricht num, wobei num eine positive Ganzzahl ist. Ein Rückverweis auf gespeicherte Entsprechungen. Beispielsweise entspricht '(.)\1' zwei aufeinander folgenden identischen Zeichen.
\n | Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \n mindestens n gespeicherte Unterausdrücke vorausgehen, handelt es sich bei n um einen Rückverweis. Anderenfalls ist n ein oktaler Escapewert, wenn n eine Oktalziffer (0-7) ist.
\nm | Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \nm mindestens nm gespeicherte Unterausdrücke vorausgehen, handelt es sich bei nm um einen Rückverweis. Wenn \nm mindestens n gespeicherte Ausdrücke vorausgehen, ist n ein Rückverweis, dem das Literal m folgt. Wenn keine der vorhergehenden Bedingungen zutrifft, entspricht \nm dem oktalen Escapewert nm, wenn n und m Oktalziffern (0-7) sind.
\nml | Entspricht dem oktalen Escapewert nml, wenn n eine Oktalziffer (0-3) ist und m und l Oktalziffern (0-7) sind.
\un | Entspricht n, wobei n ein Unicodezeichen ist, das mit vier Hexadezimalziffern ausgedrückt wird. Beispielsweise entspricht '\u00A9' dem Copyrightsymbol (©).


Erstellen eines regulären Ausdrucks

Reguläre Ausdrücke werden auf die gleiche Weise erstellt wie Rechenausdrücke. Kleine Ausdrücke werden unter Verwendung von diversen Metazeichen und Operatoren zu größeren Ausdrücken kombiniert.

Sie können einen regulären Ausdruck erstellen, indem Sie die verschiedenen Komponenten des Ausdrucksmusters zwischen Trennzeichen setzen. In JScript werden Schrägstriche (/) als Trennzeichen verwendet. Beispiel:

/Ausdruck/

In VBScript dienen Anführungszeichen ("") als Trennzeichen für reguläre Ausdrücke. Beispiel:

"Ausdruck"

In beiden oben gezeigten Beispielen wird das Muster des regulären Ausdrucks (der Ausdruck) in der Pattern-Eigenschaft des RegExp-Objekts gespeichert.

Als Komponenten eines regulären Ausdrucks können einzelne Zeichen, Zeichensätze, Zeichenbereiche, Zeichenauswahlen oder beliebige Kombinationen aus allen diesen Komponenten verwendet werden.


Rangfolge

Nachdem Sie einen regulären Ausdruck erstellt haben, wird er ähnlich wie ein Rechenausdruck ausgewertet, d. h., er wird von links nach rechts ausgewertet und hält eine Rangfolge ein.

Die folgende Tabelle veranschaulicht die Rangfolge der verschiedenen Operatoren für reguläre Ausdrücke vom höchsten bis zum niedrigsten Rang:

Operator(en) | Beschreibung
\ | Escape
(), (?:), (?=), [] | Klammern und eckige Klammern
*, +, ?, {n}, {n,}, {n,m} | Quantifizierer
^, $, \beliebigesMetazeichen | Anker und Sequenzen
| | Auswahl


Normale Zeichen

Normale Zeichen bestehen aus allen druckbaren und nicht druckbaren Zeichen, die nicht explizit als Metazeichen bezeichnet sind. Hierzu gehören alle Groß- und Kleinbuchstaben, alle Ziffern, alle Satzzeichen und einige Symbole.

Die einfachste Form eines regulären Ausdrucks ist ein einzelnes normales Zeichen, das sich in einer durchsuchten Zeichenfolge selbst entspricht. Beispielsweise entspricht das Einzelzeichenmuster 'A' dem Buchstaben "A" an beliebiger Stelle in der durchsuchten Zeichenfolge. Nachfolgend finden Sie einige Beispiele für Einzelzeichenmuster regulärer Ausdrücke:

/a/
/7/
/M/

Die entsprechenden regulären Einzelzeichenausdrücke lauten in VBScript wie folgt:

"a"
"7"
"M"

Sie können eine Reihe von einzelnen Zeichen zu einem größeren Ausdruck kombinieren. Beispielsweise wurde der folgende reguläre Ausdruck in JScript lediglich durch Kombinieren der Einzelzeichenausdrücke 'a', '7' und 'M' erstellt.

/a7M/

Der entsprechende Ausdruck in VBScript lautet:

"a7M"

Beachten Sie, dass kein Verkettungsoperator verwendet wird. Sie müssen lediglich die Zeichen hintereinander setzen.


Sonderzeichen (Regular Expressions)

JScript

Sonderzeichen

Es gibt eine Reihe von Metazeichen, die eine besondere Verfahrensweise erfordern, wenn nach einer Entsprechung für sie gesucht werden soll. Um nach einer Entsprechung für diese Sonderzeichen zu suchen, müssen Sie diese Zeichen zuerst mit einem Escapezeichen versehen, d. h., ihnen einen umgekehrten Schrägstrich (\) voranstellen. Die folgende Tabelle zeigt diese Sonderzeichen und ihre Bedeutungen:

Sonderzeichen | Kommentar
$ | Entspricht der Position am Ende einer Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r". Um nach einer Entsprechung für das Dollarzeichen ($) selbst zu suchen, verwenden Sie '\$'.
( ) | Markiert Anfang und Ende eines Unterausdrucks. Unterausdrücke können für eine spätere Verwendung gespeichert werden. Um nach einer Entsprechung für diese Zeichen zu suchen, verwenden Sie '\(' und '\)'.
* | Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Um nach einer Entsprechung für das Sternchen zu suchen, verwenden Sie '\*'.
+ | Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Um nach einer Entsprechung für das Pluszeichen zu suchen, verwenden Sie '\+'.
. | Entspricht allen einzelnen Zeichen außer dem Zeilenumbruchzeichen "\n". Um nach einer Entsprechung für den Punkt zu suchen, verwenden Sie '\.'.
[ | Markiert den Anfang eines Ausdrucks mit eckigen Klammern. Um nach einer Entsprechung für die eckige Klammer rechts zu suchen, verwenden Sie '\['.
? | Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal bzw. gibt einen nicht umfassenden Quantifizierer an. Um nach einer Entsprechung für das Fragezeichen zu suchen, verwenden Sie '\?'.
\ | Markiert das nächste Zeichen entweder als Sonderzeichen, als Literal, als Rückverweis oder als oktalen Escapewert. Beispielsweise entspricht 'n' dem Zeichen "n". '\n' entspricht einem Zeilenumbruchzeichen. Die Sequenz '\\' entspricht "\", und '\(' entspricht "(".
^ | Entspricht der Position am Anfang einer Eingabezeichenfolge, außer bei Verwendung in einem Ausdruck mit eckigen Klammern, wo es die Menge von Zeichen negiert. Um nach einer Entsprechung für das Caretzeichen (^) selbst zu suchen, verwenden Sie '\^'.
{ | Markiert den Anfang eines Quantifiziererausdrucks. Um nach einer Entsprechung für die geschweifte Klammer links zu suchen, verwenden Sie '\{'.
| | Gibt eine Auswahl zwischen zwei Elementen an. Um nach einer Entsprechung für den senkrechten Strich zu suchen, verwenden Sie '\|'.


Nicht druckbare Zeichen

Es gibt eine Reihe nützlicher nicht druckbarer Zeichen, die gelegentlich verwendet werden müssen. Die folgende Tabelle zeigt die Escapesequenzen, die zur Darstellung dieser nicht druckbaren Zeichen verwendet werden:

Zeichen | Bedeutung
\cx | Entspricht dem Steuerzeichen, das durch x angegeben wird. Beispielsweise entspricht '\cM' einem STRG-M oder Wagenrücklaufzeichen. Der Wert von x muss im Bereich von A-Z oder a-z liegen. Ist dies nicht der Fall, wird c als "c"-Zeichenliteral interpretiert.
\f | Entspricht einem Seitenvorschubzeichen. Äquivalent zu '\x0c' und '\cL'.
\n | Entspricht einem Zeilenumbruchzeichen. Äquivalent zu '\x0a' und '\cJ'.
\r | Entspricht einem Wagenrücklaufzeichen. Äquivalent zu '\x0d' und '\cM'.
\s | Entspricht beliebigen Leerräumen wie Leerzeichen, Tabstopp, Seitenvorschub usw. Äquivalent zu '[ \f\n\r\t\v]'.
\S | Entspricht beliebigen Nichtleerräumen. Äquivalent zu '[^ \f\n\r\t\v]'.
\t | Entspricht einem Tabstoppzeichen. Äquivalent zu '\x09' und '\cI'.
\v | Entspricht einem vertikalen Tabstoppzeichen. Äquivalent zu '\x0b' und '\cK'.


Zeichenvergleich

Der Punkt (.) entspricht einem beliebigen einzelnen druckbaren oder nicht druckbaren Zeichen in einer Zeichenfolge, außer einem Zeilenumbruchzeichen (\n). Der folgende reguläre Ausdruck in JScript entspricht "aac", "abc", "acc", "adc" usw. sowie "a1c", "a2c", "a-c" und "a#c":

/a.c/

Der entsprechende reguläre Ausdruck in VBScript lautet:

"a.c"

Wenn Sie eine Entsprechung für eine Zeichenfolge suchen möchten, die einen Dateinamen enthält und bei der ein Punkt (.) in der Eingabezeichenfolge enthalten ist, müssen Sie dem Punkt im regulären Ausdruck einen umgekehrten Schrägstrich (\) voranstellen. Zur Veranschaulichung: Der folgende reguläre Ausdruck in JScript entspricht "Dateiname.Erw":

/Dateiname\.Erw/

In VBScript wird der entsprechende Ausdruck wie folgt angezeigt:

"Dateiname\.Erw"

Diese Ausdrücke sind nach wie vor recht beschränkt. Mit ihnen können Sie nur nach einer Entsprechung eines beliebigen einzelnen Zeichens suchen. Oftmals ist es jedoch von Nutzen, nach Entsprechungen für angegebene Zeichen aus einer Liste zu suchen. Wenn Sie beispielsweise einen Eingabetext haben, der numerisch ausgedrückte Kapitelüberschriften (Kapitel 1, Kapitel 2 usw.) enthält, möchten Sie möglicherweise nach diesen Kapitelüberschriften suchen.

Ausdrücke mit eckigen Klammern

Sie können eine Liste von Zeichenentsprechungen erstellen, indem Sie ein oder mehrere einzelne Zeichen in eckige Klammern ([ und ]) platzieren. Wenn Zeichen in eckige Klammern eingeschlossen werden, nennt man diese Liste einen Ausdruck mit eckigen Klammern. Innerhalb von eckigen Klammern (wie an anderer Stelle auch) stellen normale Zeichen sich selbst dar, d. h. sie entsprechen einem Auftreten ihrer selbst im Eingabetext. Die meisten Sonderzeichen verlieren hingegen ihre Bedeutung, wenn sie innerhalb eines Ausdrucks mit eckigen Klammern auftreten. Hiervon gibt es jedoch einige Ausnahmen:

  • Die eckige Klammer rechts (]) beendet eine Liste, wenn sie nicht das erste Element derselben ist. Um nach einer Entsprechung für die eckige Klammer rechts in einer Liste zu suchen, platzieren Sie sie an den Anfang unmittelbar hinter die öffnende eckige Klammer.
  • Der umgekehrte Schrägstrich (\) ist auch weiterhin das Escapezeichen. Um nach einer Entsprechung für den umgekehrten Schrägstrich zu suchen, verwenden Sie '\\'.

Zeichen, die in einen Ausdruck mit eckigen Klammern eingeschlossen sind, entsprechen nur einem einzelnen Zeichen an der Position im regulären Ausdruck, an der der Ausdruck mit eckigen Klammern angezeigt wird. Der folgende reguläre Ausdruck in JScript entspricht "Kapitel 1", "Kapitel 2", "Kapitel 3", "Kapitel 4" und "Kapitel 5":

/Kapitel [12345]/

Um in VBScript nach einer Entsprechung für die gleichen Kapitelüberschriften zu suchen, verwenden Sie den folgenden Ausdruck:

"Kapitel [12345]"

Beachten Sie, dass sich das Wort "Kapitel" und das nachfolgende Leerzeichen an einer festen Position in Bezug auf die Zeichen innerhalb der eckigen Klammern befinden. Der Ausdruck mit eckigen Klammern wird also nur verwendet, um den Zeichensatz anzugeben, der der Einzelzeichenposition unmittelbar nach dem Wort "Kapitel" und einem Leerzeichen entspricht. Dabei handelt es sich um die neunte Zeichenposition.

Wenn Sie die Zeichenentsprechungen unter Verwendung eines Bereichs statt der Zeichen selbst ausdrücken möchten, können Sie das Anfangs- und das Endezeichen des Bereichs mithilfe des Bindestrichs (-) voneinander trennen. Der Zeichenwert der einzelnen Zeichen bestimmt ihre relative Reihenfolge innerhalb eines Bereichs. Der folgende reguläre Ausdruck in JScript enthält einen Bereichsausdruck, der äquivalent zu der oben gezeigten Liste in eckigen Klammern ist.

/Kapitel [1-5]/

Der gleiche Ausdruck wird in VBScript wie folgt angezeigt:

"Kapitel [1-5]"

Wenn ein Bereich auf diese Weise angegeben wird, sind sowohl der Start- als auch der Endwert im Bereich enthalten. Wichtig ist hierbei, dass der Startwert dem Endwert in der Unicode-Sortierreihenfolge vorausgehen muss.

Wenn Sie den Bindestrich in den Ausdruck mit eckigen Klammern einschließen möchten, müssen Sie eine der folgenden Vorgehensweisen anwenden:

  • Verwenden Sie einen umgekehrten Schrägstrich als Escapezeichen:
    [\-]
  • Setzen Sie den Bindestrich an den Anfang oder an das Ende der Liste in eckigen Klammern. Die folgenden Ausdrücke entsprechen allen Kleinbuchstaben und dem Bindestrich:
    [-a-z]
[a-z-]
  • Erstellen Sie einen Bereich, in dem der Anfangszeichenwert kleiner als der Bindestrich und der Endzeichenwert größer oder gleich dem Bindestrich ist. Beide folgenden regulären Ausdrücke erfüllen diese Anforderung:
    [!--]
[!-~]

Sie können auch nach allen Zeichen suchen, die nicht in der Liste oder im Bereich enthalten sind, indem Sie das Caretzeichen (^) an den Anfang der Liste platzieren. Wenn das Caretzeichen an einer anderen Position in der Liste angezeigt wird, entspricht es sich selbst, d. h., es besitzt keine besondere Bedeutung. Der folgende reguläre Ausdruck in JScript entspricht Kapitelüberschriften, deren Nummer größer als 5 ist:

/Kapitel [^12345]/

Verwenden Sie in VBScript den folgenden Ausdruck:

"Kapitel [^12345]"

In den oben gezeigten Beispielen entspricht der Ausdruck einer beliebigen Ziffer an der neunten Position außer 1, 2, 3, 4 und 5. Daher ist beispielsweise "Kapitel 7" ebenso eine Entsprechung wie "Kapitel 9".

Die gleichen Ausdrücke können auch unter Verwendung des Bindestrichs dargestellt werden. In JScript sieht dies wie folgt aus:

/Kapitel [^1-5]/

Der entsprechende Ausdruck in VBScript lautet:

"Kapitel [^1-5]"

Eine typische Verwendung für einen Ausdruck mit eckigen Klammern ist die Angabe von Entsprechungen für Groß- oder Kleinbuchstaben oder für Ziffern. Der folgende Ausdruck in JScript gibt eine solche Entsprechung an:

/[A-Za-z0-9]/

Der entsprechende Ausdruck in VBScript lautet:

"[A-Za-z0-9]"


Quantifizierer

Manchmal wissen Sie nicht, für wie viele Zeichen eine Entsprechung gesucht werden muss. Um diese Unsicherheit auszuräumen, unterstützen reguläre Ausdrücke das Konzept der Quantifizierer. Mit deren Hilfe können Sie angeben, wie oft eine bestimmte Komponente des regulären Ausdrucks auftreten muss, damit eine erfolgreiche Entsprechung gefunden wird.

Die folgende Tabelle veranschaulicht die verschiedenen Quantifizierer und ihre Bedeutungen:

Zeichen | Beschreibung
* | Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Beispielsweise entspricht 'Zo*' sowohl "Z" als auch "Zoo". * ist äquivalent zu '{0,}'.
+ | Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Beispielsweise entspricht 'Zo+' sowohl "Zo" als auch "Zoo", aber nicht "Z". + ist äquivalent zu '{1,}'.
? | Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal. Beispielsweise entspricht 'habe(n)?' dem "habe" in "habe" oder "haben". ? ist äquivalent zu '{0,1}'.
{n} | n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht 'o{2}' nicht dem "o" in "Robert", jedoch den beiden "o" in "Boot".
{n,} | n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Beispielsweise entspricht 'o{2,}' nicht dem "o" in "Robert", aber allen "o" in "Boooot". 'o{1,}' ist äquivalent zu 'o+'. 'o{0,}' ist äquivalent zu 'o*'.
{n,m} | m und n sind nicht negative Ganzzahlen, wobei n <= m. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht 'o{1,3}' den ersten drei "o" in "Booooot". 'o{0,1}' ist äquivalent zu 'o?'. Beachten Sie, dass zwischen dem Komma und den Zahlen kein Leerzeichen stehen darf.

Bei einem großen Eingabedokument können die Kapitelnummern ohne weiteres Neun überschreiten. Daher benötigen Sie eine Methode zur Behandlung von zwei- oder dreistelligen Kapitelnummern. Quantifizierer bieten Ihnen diese Möglichkeit. Der folgende reguläre Ausdruck in JScript entspricht Kapitelüberschriften mit beliebiger Stellenzahl:

/Kapitel [1-9][0-9]*/

Der folgende reguläre Ausdruck in VBScript hat das gleiche Ergebnis:

"Kapitel [1-9][0-9]*"

Beachten Sie, dass der Quantifizierer nach dem Bereichsausdruck angezeigt wird. Daher gilt er für den gesamten Bereichsausdruck, der in diesem Fall nur Ziffern zwischen 0 und 9 (einschließlich) angibt.

Der Pluszeichenquantifizierer (+) wird hier nicht verwendet, da sich nicht zwangsläufig eine Ziffer an der zweiten Position oder den folgenden Positionen befinden muss. Das Fragezeichen wird hier ebenfalls nicht verwendet, da hierbei die Kapitelnummern auf nur zwei Stellen beschränkt sind. Es soll eine Entsprechung für mindestens eine Ziffer gefunden werden, die auf "Kapitel" und ein Leerzeichen folgt.

Wenn Sie wissen, dass die Kapitelnummern auf nur 99 Kapitel beschränkt sind, können Sie den folgenden Ausdruck in JScript verwenden, um mindestens eine, jedoch nicht mehr als 2 Ziffern anzugeben.

/Kapitel [0-9]{1,2}/

Verwenden Sie in VBScript den folgenden regulären Ausdruck:

"Kapitel [0-9]{1,2}"

Der Nachteil gegenüber dem weiter oben gezeigten Ausdruck liegt darin, dass er bei einer Kapitelnummer, die größer als 99 ist, dennoch nur den ersten beiden Ziffern entspricht. Ein weiterer Nachteil besteht darin, dass man ein Kapitel 0 erstellen könnte und dieses eine Entsprechung darstellen würde. Die folgenden Ausdrücke in JScript sind besser geeignet, eine Entsprechung für nur zwei Ziffern zu suchen:

/Kapitel [1-9][0-9]?/

-oder-

/Kapitel [1-9][0-9]{0,1}/

In VBScript lauten die entsprechenden Ausdrücke wie folgt:

"Kapitel [1-9][0-9]?"

-oder-

"Kapitel [1-9][0-9]{0,1}"

Die Quantifizierer '*', '+' und '?' werden alle als umfassend bezeichnet, d. h., sie entsprechen so viel Text wie möglich. Dieses Verhalten ist jedoch manchmal gänzlich unerwünscht. Bisweilen soll nur eine minimale Entsprechung gesucht werden.

Angenommen, Sie durchsuchen beispielsweise ein HTML-Dokument nach dem Auftreten eines Kapiteltitels, der in ein H1-Tag eingeschlossen ist. Dieser Text wird im Dokument wie folgt angezeigt:

<H1>Kapitel 1 – Einführung in reguläre Ausdrücke</H1>

Der folgende Ausdruck entspricht dem gesamten Text von dem öffnenden Kleiner-als-Symbol (<) bis zum Größer-als-Symbol am Ende des schließenden H1-Tags.

/<.*>/

Der reguläre Ausdruck in VBScript lautet wie folgt:

"<.*>"

Falls Sie jedoch lediglich nach einer Entsprechung für das öffnende H1-Tag suchen wollten, so entspricht der folgende nicht umfassende Ausdruck nur "<H1>".

/<.*?>/

-oder-

"<.*?>"

Indem das Fragezeichen hinter einen der Quantifizierer '*', '+' oder '?' platziert wird, wird der Ausdruck von einer umfassenden in eine nicht umfassende (minimale) Entsprechung transformiert.


Anker

Bisher dienten die gezeigten Beispiele nur dazu, Kapitelüberschriften an beliebiger Stelle im Text zu finden. Jedes Auftreten der Zeichenfolge "Kapitel", gefolgt von einem Leerzeichen und einer Zahl, könnte eine tatsächliche Kapitelüberschrift darstellen. Es könnte sich jedoch auch um einen Querverweis zu einem anderen Kapitel handeln. Da echte Kapitelüberschriften stets am Anfang einer Zeile angezeigt werden, müsste es einen Weg geben, nur die Überschriften und nicht die Querverweise zu finden.

Anker bieten Ihnen diese Möglichkeit. Anker gestatten es Ihnen, einen regulären Ausdruck entweder am Anfang oder am Ende einer Zeile zu fixieren. Außerdem ermöglichen sie Ihnen die Erstellung von regulären Ausdrücken, die entweder innerhalb eines Wortes oder am Anfang oder Ende eines Wortes auftreten. Die folgende Tabelle enthält die Liste der Anker regulärer Ausdrücke und ihre Bedeutungen:

Zeichen | Beschreibung
^ | Entspricht der Position am Anfang der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht ^ auch der Position nach "\n" oder "\r".
$ | Entspricht der Position am Ende der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r".
\b | Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen.
\B | Entspricht einer Nichtwortgrenze.

Sie können keinen Quantifizierer zusammen mit einem Anker verwenden. Da es unmittelbar vor oder nach einem Zeilenumbruch oder einer Wortgrenze nur eine Position geben kann, sind Ausdrücke wie '^*' nicht zulässig.

Um nach einer Entsprechung für einen Text am Anfang einer Textzeile zu suchen, verwenden Sie das Caretzeichen (^) am Anfang des regulären Ausdrucks. Verwechseln Sie diese Verwendung des Caretzeichens nicht mit seiner Verwendung innerhalb eines Ausdrucks mit eckigen Klammern. Es handelt sich hierbei um zwei vollkommen verschiedene Dinge.

Um nach einer Entsprechung für einen Text am Ende einer Textzeile zu suchen, verwenden Sie das Dollarzeichen ($) am Ende des regulären Ausdrucks.

Der folgende reguläre Ausdruck in JScript verwendet Anker bei der Suche nach Kapitelüberschriften und entspricht einer Kapitelüberschrift mit bis zu zwei nachfolgenden Ziffern, die am Anfang einer Zeile auftritt:

/^Kapitel [1-9][0-9]{0,1}/

In VBScript wird der gleiche reguläre Ausdruck wie folgt angezeigt:

"^Kapitel [1-9][0-9]{0,1}"

Eine echte Kapitelüberschrift kommt nicht nur am Anfang einer Zeile vor, sondern ist auch das einzige Element in dieser Zeile. Daher muss sie auch am Ende der Zeile auftreten. Der folgende Ausdruck stellt sicher, dass die angegebene Entsprechung nur Kapiteln und keinen Querverweisen entspricht. Dies wird durch das Erstellen eines regulären Ausdrucks erreicht, der nur am Anfang und am Ende einer Textzeile nach einer Entsprechung sucht.

/^Kapitel [1-9][0-9]{0,1}$/

Verwenden Sie in VBScript den folgenden Ausdruck:

"^Kapitel [1-9][0-9]{0,1}$"

Die Suche nach Entsprechungen für Wortgrenzen wird etwas anders durchgeführt. Sie fügt jedoch eine wichtige Fähigkeit zu regulären Ausdrücken hinzu. Bei einer Wortgrenze handelt es sich um die Position zwischen einem Wort und einem Leerzeichen. Alle anderen Positionen sind Nichtwortgrenzen. Der folgende Ausdruck in JScript entspricht den ersten drei Zeichen des Wortes "Kapitel", da sie nach einer Wortgrenze angezeigt werden:

/\bKap/

Der entsprechende Ausdruck in VBScript lautet:

"\bKap"

Die Position des '\b'-Operators ist hierbei von entscheidender Bedeutung. Wenn er an den Anfang einer Zeichenfolge positioniert wird, für die eine Entsprechung gesucht werden soll, wird am Anfang des Wortes nach der Entsprechung gesucht; wenn er an das Ende der Zeichenfolge positioniert wird, wird am Ende des Wortes nach der Entsprechung gesucht. Beispielsweise entsprechen die folgenden Ausdrücke "tel" im Wort "Kapitel", da diese Zeichenfolge vor einer Wortgrenze angezeigt wird:

/tel\b/

und

"tel\b"

Die folgenden Ausdrücke entsprechen dem "pit" in "Kapitel", aber nicht dem "pit" in "pittoresk":

/\Bpit/

und

"\Bpit"

Der Grund hierfür liegt darin, dass "pit" im Wort "Kapitel" an einer Nichtwortgrenze auftritt, im Wort "pittoresk" dagegen an einer Wortgrenze. Für den Nichtwortgrenzen-Operator ist die Position unwichtig, da die Entsprechung nicht relativ zum Anfang oder Ende eines Wortes gesucht wird.


Auswahl und Gruppierung

Bei einer Auswahl können Sie den senkrechten Strich (|) verwenden, um eine Wahl zwischen zwei oder mehr Alternativen zu gestatten. So ist eine Ausweitung des regulären Ausdrucks für Kapitelüberschriften möglich, damit er mehr als nur Kapitelüberschriften abdeckt. Dies ist jedoch nicht so einfach durchzuführen, wie es Ihnen erscheinen mag. Bei der Verwendung von Auswahlen wird nach einer Entsprechung für den größtmöglichen Ausdruck auf beiden Seiten des senkrechten Strichs gesucht. Vielleicht denken Sie, dass die folgenden Ausdrücke in JScript und VBScript entweder "Kapitel" oder "Abschnitt", gefolgt von ein oder zwei Ziffern, am Anfang und Ende einer Zeile entsprechen:

/^Kapitel|Abschnitt [1-9][0-9]{0,1}$/
"^Kapitel|Abschnitt [1-9][0-9]{0,1}$"

Leider entsprechen die oben gezeigten regulären Ausdrücke in Wirklichkeit entweder dem Wort "Kapitel" am Anfang einer Zeile oder aber dem Wort "Abschnitt" und beliebigen darauf folgenden Zahlen am Ende einer Zeile. Wenn die Eingabezeichenfolge "Kapitel 22" lautet, entspricht der oben gezeigte Ausdruck nur dem Wort "Kapitel". Wenn die Eingabezeichenfolge "Abschnitt 22" lautet, entspricht der Ausdruck "Abschnitt 22". Dies ist jedoch nicht beabsichtigt. Daher muss es einen Weg geben, um diesen regulären Ausdruck Ihren Wünschen besser anzupassen. Diesen Weg gibt es tatsächlich.

Sie können Klammern verwenden, um den Gültigkeitsbereich der Auswahl zu beschränken, d. h. sicherzustellen, dass sie nur für die beiden Wörter "Kapitel" und "Abschnitt" gilt. Klammern haben jedoch ebenfalls ihre Tücken, da sie auch zum Erstellen von Unterausdrücken verwendet werden. Dies wird später im Abschnitt über Unterausdrücke behandelt. Indem Sie an den passenden Stellen Klammern zu den oben gezeigten regulären Ausdrücken hinzufügen, können Sie diese Ausdrücke dahingehend ändern, dass sie entweder "Kapitel 1" oder "Abschnitt 3" entsprechen.

In den folgenden regulären Ausdrücken werden Klammern zum Gruppieren von 'Kapitel' und 'Abschnitt' verwendet, damit der Ausdruck ordnungsgemäß funktioniert. In JScript sieht dies wie folgt aus:

/^(Kapitel|Abschnitt) [1-9][0-9]{0,1}$/

Der entsprechende Ausdruck in VBScript lautet:

"^(Kapitel|Abschnitt) [1-9][0-9]{0,1}$"

Diese Ausdrücke funktionieren ordnungsgemäß, bis auf ein interessantes Nebenprodukt. Das Platzieren von Klammern um 'Kapitel|Abschnitt' stellt zwar die korrekte Gruppierung her, es bewirkt jedoch auch, dass eine der Wortentsprechungen für eine spätere Verwendung gespeichert wird. Da der oben gezeigte Ausdruck nur ein Klammernpaar enthält, wird nur eine Unterentsprechung gespeichert. Auf diese Unterentsprechung kann mithilfe der Submatches-Auflistung in VBScript oder der $1-$9-Eigenschaften des RegExp-Objekts in JScript verwiesen werden.

Manchmal ist das Speichern einer Unterentsprechung erwünscht, manchmal nicht. In den oben gezeigten Beispielen sollen die Klammern eigentlich nur dazu dienen, eine Auswahl zwischen den Wörtern 'Kapitel' oder 'Abschnitt' zu gruppieren. Auf die Entsprechung soll später nicht unbedingt verwiesen werden. Sie sollten Unterentsprechungen sogar nur dann verwenden, wenn Sie sie wirklich speichern müssen. Die regulären Ausdrücke werden effizienter, da nun weder Zeit noch Arbeitsspeicher zum Speichern dieser Unterentsprechungen benötigt wird.

Sie können '?:' vor dem Muster des regulären Ausdrucks in den Klammern verwenden, um zu verhindern, dass die Entsprechung für eine mögliche spätere Verwendung gespeichert wird. Die folgende Änderung der oben gezeigten regulären Ausdrücke bietet die gleichen Fähigkeiten, ohne dass die Unterentsprechung gespeichert wird. In JScript sieht dies wie folgt aus:

/^(?:Kapitel|Abschnitt) [1-9][0-9]{0,1}$/

Der entsprechende Ausdruck in VBScript lautet:

"^(?:Kapitel|Abschnitt) [1-9][0-9]{0,1}$"

Zusätzlich zu den Metazeichen '?:' gibt es zwei weitere nicht speichernde Metazeichen, die für so genannte Vorausschau-Entsprechungen verwendet werden. Eine positive Vorausschau, die unter Verwendung von '?=' angegeben wird, entspricht der Suchzeichenfolge an allen Stellen, an denen eine Entsprechung für ein Muster eines regulären Ausdrucks in Klammern beginnt. Eine komplementäre Vorausschau, die unter Verwendung von '?!' angegeben wird, entspricht der Suchzeichenfolge an allen Stellen, an denen eine dem Muster des regulären Ausdrucks nicht entsprechende Zeichenfolge beginnt.

Angenommen, es liegt beispielsweise ein Dokument vor, das Verweise auf Windows 3.1, Windows 95, Windows 98 und Windows NT enthält. Nehmen wir weiter an, dass Sie das Dokument aktualisieren möchten, indem Sie nach allen Verweisen auf Windows 95, Windows 98 und Windows NT suchen und diese Verweise in "Windows 2000" ändern. Sie können den folgenden regulären Ausdruck in JScript, ein Beispiel für eine positive Vorausschau, dazu verwenden, nach Entsprechungen für 'Windows 95', 'Windows 98' und 'Windows NT' zu suchen:

/Windows(?=95 |98 |NT )/

Um die gleichen Entsprechungen in VBScript zu finden, verwenden Sie den folgenden Ausdruck:

"Windows(?=95 |98 |NT )"

Nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der Textentsprechung, die Zeichen in der Vorausschau nicht eingeschlossen. Wenn die oben gezeigten Ausdrücke beispielsweise "Windows 98" entsprachen, wird die Suche nach "Windows" fortgesetzt, nicht nach "98".


Rückverweise

Eines der wichtigsten Features von regulären Ausdrücken ist die Fähigkeit, einen Teil einer Musterentsprechung für eine spätere Wiederverwendung zu speichern. Wie Sie sich erinnern werden, bewirkt das Platzieren von Klammern um das Muster eines regulären Ausdrucks oder um einen Teil dieses Musters, dass der entsprechende Teil des Ausdrucks in einem temporären Puffer gespeichert wird. Sie können das Speichern dieses Teils des regulären Ausdrucks außer Kraft setzen, indem Sie die nicht speichernden Metazeichen '?:', '?=' oder '?!' verwenden.

Jede gespeicherte Unterentsprechung wird so gespeichert, wie sie von links nach rechts im Muster eines regulären Ausdrucks angetroffen wird. Die Nummern der Puffer, in denen die Unterentsprechungen gespeichert werden, beginnen bei 1 und werden bis zu maximal 99 Unterausdrücken fortgesetzt. Auf jeden einzelnen Puffer kann mithilfe von '\n' zugegriffen werden, wobei n für ein oder zwei Dezimalziffern steht, die einen bestimmten Puffer bezeichnen.

Eine der einfachsten und nützlichsten Anwendungen für Rückverweise stellt Ihnen die Fähigkeit zur Verfügung, das Auftreten von zwei identischen Wörtern hintereinander in einem Text ausfindig zu machen. Betrachten Sie den folgenden Satz:

Wird wird das Benzin Benzin immer teurer teurer?

In dieser Version ist der oben gezeigte Satz offensichtlich nicht korrekt, da mehrere Wörter doppelt in ihm auftreten. Nun wäre es praktisch, wenn es einen Weg gäbe, diesen Satz zu korrigieren, ohne nach Duplikaten jedes einzelnen Wortes suchen zu müssen. Der folgende reguläre Ausdruck in JScript verwendet hierzu einen einzigen Unterausdruck.

/\b([a-z]+) \1\b/gi

Der entsprechende Ausdruck in VBScript lautet:

"\b([a-z]+) \1\b"

Der Unterausdruck besteht in diesem Fall aus allen Zeichen, die in runden Klammern stehen. Dieser gespeicherte Ausdruck schließt ein oder mehrere Buchstaben ein, wie durch '[a-z]+' angegeben. Der zweite Teil des regulären Ausdrucks besteht aus dem Verweis auf die zuvor gespeicherte Unterentsprechung, d. h., das zweite Auftreten des Wortes, für das gerade mithilfe des Ausdrucks in Klammern eine Entsprechung gefunden wurde. Mit '\1' wird die erste Unterentsprechung angegeben. Die Metazeichen für die Wortgrenzen stellen sicher, dass nur ganze Wörter erkannt werden. Wenn dies nicht der Fall wäre, würden fälschlicherweise auch Phrasen wie "ein eindeutiges" oder "Grund und" von diesem Ausdruck identifiziert werden.

Im JScript-Ausdruck zeigt das global-Flag ('g') nach dem regulären Ausdruck an, dass der Ausdruck auf so viele Entsprechungen angewendet wird, wie in der Eingabezeichenfolge gefunden werden können. Das ignoreCase-Flag ('i') am Ende des Ausdrucks gibt an, dass die Groß-/Kleinschreibung nicht beachtet werden soll. Das multiline-Flag gibt an, dass potenzielle Entsprechungen auf beiden Seiten eines Zeilenumbruchzeichens auftreten können. In VBScript können die verschiedenen Flags nicht im Ausdruck gesetzt werden, sondern müssen explizit unter Verwendung der entsprechenden Eigenschaften des RegExp-Objekts gesetzt werden.

Unter Verwendung des oben gezeigten regulären Ausdrucks kann der folgende JScript-Code die Informationen über Unterentsprechungen verwenden, um ein Auftreten von zwei aufeinander folgenden identischen Wörtern in einer Textzeichenfolge durch ein einziges Auftreten des gleichen Wortes zu ersetzen:

var sz = "Wird wird das Benzin Benzin immer teurer teurer?.\n";
var ra = /\b([a-z]+) \1\b/gim;       //Erstellt das Muster des regulaeren Ausdrucks.
var ev = sz.replace(ra,"$1");   //Ersetzt zwei Vorkommen durch eines.

Der diesem Code am ehesten entsprechende VBScript-Code wird wie folgt angezeigt:

Dim sz, ra, ev
sz = "Wird wird das Benzin Benzin immer teurer teurer?." & vbNewLine
Set ra = New RegExp
ra.Pattern = "\b([a-z]+) \1\b"
ra.Global = True
ra.IgnoreCase = True
ra.MultiLine = True
ev = ra.Replace(sz,"$1")

Beachten Sie, dass im VBScript-Code die global-, ignoreCase- und multiline-Flags unter Verwendung der entsprechend benannten Eigenschaften des RegExp-Objekts gesetzt werden.

Die Verwendung von $1 innerhalb der replace-Methode verweist auf die erste gespeicherte Unterentsprechung. Wenn mehr als eine Unterentsprechung vorhanden wäre, könnten Sie auf diese der Reihe nach mit $2, $3 usw. verweisen.

Eine andere Anwendungsmöglichkeit für Rückverweise ist das Aufteilen eines URIs (Universal Resource Indicator) in seine Komponenten. Angenommen, Sie möchten den folgenden URI in das Protokoll (ftp, http usw.), die Domänenadresse und die Seite/den Pfad aufteilen:

http://www.microsoft.com/germany/scripting

Die folgenden regulären Ausdrücke bieten Ihnen diese Funktionalität. In JScript sieht dies wie folgt aus:

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

Der entsprechende Ausdruck in VBScript lautet:

"(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)"

Der erste Unterausdruck in Klammern wurde dazu entwickelt, den Protokollanteil der Webadresse zu speichern. Dieser Unterausdruck entspricht allen Wörtern, die einem Doppelpunkt und zwei Schrägstrichen vorausgehen. Der zweite Unterausdruck in Klammern speichert den Domänenadressanteil der Adresse. Dieser Unterausdruck entspricht allen Zeichensequenzen, die nicht die Zeichen "^", "/" oder ":" enthalten. Der dritte Unterausdruck in Klammern speichert eine Anschlussnummer der Website, falls eine solche angegeben ist. Dieser Unterausdruck entspricht null oder mehr Ziffern, die auf einen Doppelpunkt folgen. Der vierte Unterausdruck in Klammern speichert schließlich die Pfad- und/oder Seiteninformationen, die von der Webadresse angegeben werden. Dieser Unterausdruck entspricht einem oder mehreren Zeichen außer "#" und dem Leerzeichen.

Wenn der reguläre Ausdruck auf den oben gezeigten URI angewendet wird, enthalten die Unterentsprechungen Folgendes:

  • RegExp.$1 enthält "http".
  • RegExp.$2 enthält "www.microsoft.com/germany".
  • RegExp.$3 enthält "/germany".
  • RegExp.$4 enthält "/scripting".


JScript-Sprachverzeichnis

Informationen über Features

Fehler

Funktionen

Methoden

Objekte

Operatoren

Eigenschaften

Anweisungen


Informationen über Features

In der folgenden Tabelle sind JScript-Features aufgeführt.

Beschreibung | Sprachelement
Liste von JScript-Versionen nach Hostanwendung und Liste von Features nach Version. | Versionsinformationen
Liste der ECMA-Features, die derzeit in JScript integriert sind. | JScript-Features (ECMA)
Liste der Nicht-ECMA-Features, die derzeit in JScript integriert sind. | JScript Features (Nicht-ECMA)


Microsoft JScript-Funktionen (ECMA)

In der folgenden Tabelle sind JScript-Features aufgeführt, die den ECMA-Standards entsprechen.

Kategorie | Funktion/Schlüsselwort
Arrays | Array join, length, reverse, sort
Boolesche Werte | Boolean
Datum und Zeit | Date getDate, getDay, getFullYear, getHours, getMilliseconds, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear, getUTCDate, getUTCDay, getUTCFullYear, getUTCHours, getUTCMilliseconds, getUTCMinutes, getUTCMonth, getUTCSeconds, setDate, setFullYear, setHours, setMilliseconds, setMinutes, setMonth, setSeconds, setTime, setYear, setUTCDate, setUTCFullYear, setUTCHours, setUTCMilliseconds, setUTCMinutes, setUTCMonth, setUTCSeconds, toGMTString, toLocaleString, toUTCString, parse, UTC
Deklarationen | Function new this var with
Funktionserstellung | Function arguments, length
Globale Methoden | Global escape, unescape eval isFinite, isNaN parseInt, parseFloat
Kommentare | /*...*/ oder //
Konstanten/Literalwerte | NaN null true, false Infinity undefined
Kontrollfluss | Break continue for for...in if...else return while
Mathematik | Math abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, sqrt, tan, E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2
Objekte | Array Boolean Date Function Global Math Number Object String
Objekterstellung | Object new constructor, prototype, instanceof, toString, valueOf
Operatoren | Addition (+), Subtraktion (-) Modulo (%) Multiplikation (*), Division (/) Negation (-) Gleichheit (==), Ungleichheit (!=) Kleiner als (<), Kleiner oder gleich (<=) Größer als (>) Größer oder gleich (>=) Logisches AND (&&), OR (||), NOT (!) Bitweises AND (&) OR (|), NOT (~), XOR (^) Bitweises Linksschieben (<<), Rechtsschieben (>>) Vorzeichenloses Rechtsschieben (>>>) Bedingter (ternärer) Operator (?:) Kommaoperator (,) delete, typeof, void Dekrement ( — ), Inkrement (++)
Zahlen | Number MAX_VALUE, MIN_VALUE NaN NEGATIVE_INFINITY, POSITIVE_INFINITY
Zeichenfolgen | String charAt, charCodeAt, fromCharCode indexOf, lastIndexOf split toLowerCase, toUpperCase length
Zuweisungen | Verbundzuweisung (OP=) Zuweisungsoperator (=)


Microsoft JScript-Funktionen (Nicht-ECMA)

In der folgenden Tabelle sind JScript-Features aufgeführt, die nicht den ECMA-Standards entsprechen.

Kategorie | Funktion/Schlüsselwort
Arrays | concat, slice VBArray dimensions, getItem, lbound, toArray, ubound
Aufzählung | Enumerator atEnd, item, moveFirst, moveNext
Bedingte Kompilierung | @cc_on @if-Anweisung @set-Anweisung Variablen für die bedingte Kompilierung
Datum und Zeit | getVarDate
Fehlersuche | Error description, number throw, try...catch
Funktionserstellung | caller
Kontrollfluss | do...while Labeled switch
Objekte | Enumerator RegExp Regular Expression VBArray ActiveXObject GetObject
Operatoren | Identität (===), Nicht-Identität (!==)
Reguläre Ausdrücke und Mustervergleich | RegExp index, input, lastIndex, $1...$9, source, compile, exec, test Syntax regulärer Ausdrücke
Skriptmodul-Identifikation | ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion
Zeichenfolgen | concat, slice match, replace, search anchor, big, blink, bold, fixed, fontcolor, fontsize, italics, link, small, strike, sub, sup


JScript-Fehler

In der folgenden Tabelle sind die Typen von JScript-Fehlern aufgeführt.

Thema | Informationen hierzu
Liste von JScript-Laufzeitfehlern | Laufzeitfehler
Liste von JScript-Syntaxfehlern | Syntaxfehler


JScript-Laufzeitfehler

JScript-Laufzeitfehler sind Fehler, die dann entstehen, wenn das JScript-Skript versucht, eine Aktion durchzuführen, die das System jedoch nicht ausführen kann. JScript-Laufzeitfehler treten während der Ausführung des Skripts auf, wenn unterschiedliche Ausdrücke ausgewertet werden und der Arbeitsspeicher dynamisch zugewiesen wird.

Fehlernummer | Beschreibung
5000 | Zuweisung an 'this' nicht möglich
5001 | Zahl erwartet
5002 | Funktion erwartet
5003 | Kann dem Ergebnis einer Funktion nicht zugewiesen werden
5005 | Zeichenfolge erwartet
5006 | Date-Objekt erwartet
5007 | Objekt erwartet
5008 | Unzulässige Zuweisung
5009 | Nicht definierter Bezeichner
5010 | Boolescher Ausdruck erwartet
5012 | Objekt-Element erwartet
5013 | VBArray erwartet
5014 | JScript-Objekt erwartet
5015 | Enumerator-Objekt erwartet
5016 | Regular Expression-Objekt erwartet
5017 | Syntaxfehler in regulärem Ausdruck
5018 | Unerwarteter Quantifizierer
5019 | ']' in regulärem Ausdruck erwartet
5020 | ')' in regulärem Ausdruck erwartet
5021 | Unzulässiger Bereich in Zeichenmenge
5022 | Ausnahme wurde ausgelöst, aber nicht aufgefangen
5023 | Funktion verfügt über kein gültiges Prototyp-Objekt
5024 | Der zu verschlüsselnde URI enthält ein ungültiges Zeichen
5025 | Der zu entschlüsselnde URI hat keine gültige Verschlüsselung
5026 | Die Anzahl der Bruchstellen befindet sich außerhalb des gültigen Bereichs
5027 | Die Präzision befindet sich außerhalb des gültigen Bereichs
5028 | Array- oder Arguments-Objekt erwartet
5029 | Die Arraylänge muss eine finite positive Ganzzahl sein
5030 | Der Arraylänge muss eine finite positive Zahl zugewiesen sein

Siehe auch

JScript-Syntaxfehler


JScript-Syntaxfehler

JScript-Syntaxfehler sind Fehler, die dann entstehen, wenn die Struktur einer der JScript-Anweisungen gegen eine oder mehrere grammatikalische Regeln der JScript-Skriptsprache verstößt. JScript-Syntaxfehler treten während der Programmkompilierungsphase auf, bevor die Ausführung des Programms gestartet wird.

Fehlernummer | Beschreibung
1002 | Syntaxfehler
1003 | ':' erwartet
1004 | ';' erwartet
1005 | '(' erwartet
1006 | ')' erwartet
1007 | ']' erwartet
1008 | '{' erwartet
1009 | '}' erwartet
1010 | Bezeichner erwartet
1011 | '=' erwartet
1012 | '/' erwartet
1014 | Ungültiges Zeichen
1015 | Nicht abgeschlossene Zeichenfolgenkonstante
1016 | Nicht abgeschlossener Kommentar
1018 | 'return'-Anweisung außerhalb einer Funktion
1019 | 'break' ohne Schleife
1020 | 'continue' ohne Schleife
1023 | Hexadezimalziffer erwartet
1024 | 'while' erwartet
1025 | Marke umdefiniert
1026 | Marke nicht gefunden
1027 | 'default' ohne 'switch'-Anweisung
1028 | Bezeichner oder Zeichenfolge erwartet
1029 | '@end' erwartet
1030 | Bedingte Kompilierung deaktiviert
1031 | Konstante erwartet
1032 | '@' erwartet
1033 | 'catch' erwartet
1035 | Hinter 'throw' muss noch in derselben Codezeile ein Ausdruck folgen

JScript-Laufzeitfehler


JScript-Funktionen

In der folgenden Tabelle sind JScript-Funktionen aufgeführt.

Beschreibung | Sprachelement
Gibt einen Verweis auf ein Automatisierungsobjekt aus einer Datei zurück. | GetObject-Funktion
Gibt eine Zeichenfolge mit der derzeit verwendeten Skriptsprache zurück. | ScriptEngine-Funktion
Gibt die Buildversionsnummer des derzeit verwendeten Skriptmoduls zurück. | ScriptEngineBuildVersion-Funktion
Gibt die Hauptversionsnummer des derzeit verwendeten Skriptmoduls zurück. | ScriptEngineMajorVersion-Funktion
Gibt die Nebenversionsnummer des derzeit verwendeten Skriptmoduls zurück. | ScriptEngineMinorVersion-Funktion


GetObject-Funktion (JScript)

JScript

GetObject-Funktion

Gibt einen Verweis auf ein Automatisierungsobjekt aus einer Datei zurück.

GetObject([Pfadname] [, Klasse])

Argumente

Pfadname
Optional. Der vollständige Pfad und Name der Datei, die das abzurufende Objekt enthält. Wird Pfadname weggelassen, ist Klasse erforderlich.
Klasse
Optional. Klasse des Objekts.

Das Argument Klasse verwendet die Syntax Anwendung.Objekttyp und besteht aus folgenden Teilen:

Anwendung
Erforderlich. Name der Anwendung, die das Objekt zur Verfügung stellt.
Objekttyp
Erforderlich. Typ oder Klasse des zu erzeugenden Objekts.

Hinweise

Verwenden Sie die GetObject-Funktion, um auf ein Automatisierungsobjekt aus einer Datei zuzugreifen. Weisen Sie das durch GetObject zurückgegebene Objekt der Objektvariablen zu. Beispiele:

var CADObjekt;
CADObjekt = GetObject("C:\\CAD\\SCHEMA.CAD");

Wird dieser Code ausgeführt, startet die in Pfadname angegebene Anwendung, und das Objekt in der angegebenen Datei wird aktiviert. Ist Pfadname eine Zeichenfolge mit der Länge 0 (""), gibt GetObject eine neue Objektinstanz vom angegebenen Typ zurück. Wird das Argument Pfadname nicht angegeben, gibt GetObject ein momentan aktives Objekt vom angegebenen Typ zurück. Existiert kein Objekt des angegebenen Typs, tritt ein Fehler auf.

Bei einigen Anwendungen können Sie einen Teil einer Datei aktivieren. Dazu fügen Sie hinter dem Dateinamen ein Ausrufungszeichen (!) ein, gefolgt von der Zeichenfolge, die den Namen des zu aktivierenden Teils enthält. Weitere Informationen zum Erstellen dieser Zeichenfolge finden Sie in der Dokumentation der Anwendung, die das Objekt erstellt hat.

In einem Zeichenprogramm zum Beispiel kann es mehrere Ebenen einer Zeichnung geben, die in einer Datei gespeichert sind. Mit der folgenden Anweisung können Sie eine Ebene in einer Zeichnung mit dem Namen SCHEMA.CAD aktivieren:

var EbenenObjekt = GetObject("C:\\CAD\\SCHEMA.CAD!Ebene3");

Wenn Sie die Objektklasse nicht angeben, bestimmt die Automatisierung basierend auf dem von Ihnen angegebenen Dateinamen, welche Anwendung gestartet und welches Objekt aktiviert wird. Einige Dateien unterstützen jedoch mehr als nur eine Objektklasse. Eine Zeichnung kann z. B. drei unterschiedliche Typen von Objekten unterstützen: ein Objekt "Anwendung", ein Objekt "Zeichnung" und ein Objekt "Symbolleiste". Alle drei Objekte befinden sich in derselben Datei. Um anzugeben, welches Objekt Sie in einer Datei aktivieren möchten, verwenden Sie das optionale Argument Klasse. Beispiele:

var meinObjekt;
meinObjekt = GetObject("C:\\ZEICHNUNGEN\\BEISPIEL.DRW", "ERDICHTUNG.ZEICHNUNG");

Im vorhergehenden Beispiel ist ERDICHTUNG der Name des Zeichenprogramms und ZEICHNUNG ist einer der Objekttypen, der unterstützt wird. Sobald ein Objekt aktiviert ist, beziehen Sie sich darauf im Programm durch die von Ihnen definierte Objektvariable. Im letzten Beispiel greifen Sie auf Eigenschaften und Methoden des neuen Objekts über die Objektvariable meinObjekt zu. Beispiele:

meinObjekt.Line(9, 90);
meinObjekt.InsertText(9, 100, "Hallo Welt.");
meinObjekt.SaveAs("C:\\ZEICHNUNGEN\\BEISPIEL.DRW");
Anmerkung Verwenden Sie die GetObject-Funktion, wenn eine aktuelle Instanz des Objekts vorhanden ist, oder wenn Sie das Objekt mit einer bereits geladenen Datei erstellen möchten. Falls keine aktuelle Instanz vorhanden ist und Sie das Objekt nicht mit einer geladenen Datei erstellen möchten, verwenden Sie das ActiveXObject-Objekt.

Wenn sich ein Objekt als Einzelinstanzobjekt registriert hat, wird nur eine einzige Instanz dieses Objekts erstellt, unabhängig davon, wie oft ActiveXObject ausgeführt wird. Bei einem Einzelinstanzobjekt gibt GetObject bei einem Aufruf über die Syntax mit einer Zeichenfolge der Länge Null ("") stets die gleiche Instanz zurück, und es tritt ein Fehler auf, wenn das Argument Pfadname nicht angegeben wird.

Anforderungen

Version 5

ActiveXObject-Objekt


ScriptEngine-Funktion (JScript)

JScript

ScriptEngine-Funktion

Gibt eine Zeichenfolge zurück, welche die aktuell verwendete Skriptsprache bezeichnet.

ScriptEngine( )

Hinweise

Die ScriptEngine-Funktion kann die folgenden Werte zurückgeben:

Zeichenfolge | Beschreibung
JScript | Microsoft JScript ist das aktuell verwendete Skriptmodul.
VBA | Microsoft Visual Basic® für Applikationen ist das aktuell verwendete Skriptmodul.
VBScript | Microsoft Visual Basic Scripting Edition ist das aktuell verwendete Skriptmodul.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der ScriptEngine-Funktion:

function HoleScriptEngineInfo(){
   var s;
   s = ""; // Zeichenfolge mit benötigten Informationen zusammenstellen.
   s += ScriptEngine() + " Version ";
   s += ScriptEngineMajorVersion() + ".";
   s += ScriptEngineMinorVersion() + ".";
   s += ScriptEngineBuildVersion();
   return(s);
}

Anforderungen

Version 5

Siehe auch

ScriptEngineBuildVersion-Funktion | ScriptEngineMajorVersion-Funktion | ScriptEngineMinorVersion-Funktion


ScriptEngineBuildVersion-Funktion (JScript)

JScript

ScriptEngineBuildVersion-Funktion

Gibt die Build-Versionsnummer des aktuell verwendeten Skriptmoduls zurück.

ScriptEngineBuildVersion( )

Hinweise

Der Rückgabewert entspricht direkt der Versionsinformation in der DLL für die benutzte Skriptsprache.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der ScriptEngineBuildVersion-Funktion:

function HoleScriptEngineInfo(){
   var s;
   s = ""; // Zeichenfolge mit benötigten Informationen zusammenstellen.
   s += ScriptEngine() + " Version ";
   s += ScriptEngineMajorVersion() + ".";
   s += ScriptEngineMinorVersion() + ".";
   s += ScriptEngineBuildVersion();
   return(s);
}

Anforderungen

Version 5

Siehe auch

ScriptEngine-Funktion | ScriptEngineMajorVersion-Funktion | ScriptEngineMinorVersion-Funktion


ScriptEngineMajorVersion-Funktion (JScript)

JScript

ScriptEngineMajorVersion-Funktion

Gibt die Haupt-Versionsnummer des aktuell verwendeten Skriptmoduls zurück.

ScriptEngineMajorVersion( )

Hinweise

Der Rückgabewert entspricht direkt der Versionsinformation in der DLL für die aktuell benutzte Skriptsprache.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der ScriptEngineMajorVersion-Funktion:

function HoleScriptEngineInfo(){
   var s;
   s = ""; // Zeichenfolge mit benötigten Informationen zusammenstellen.
   s += ScriptEngine() + " Version ";
   s += ScriptEngineMajorVersion() + ".";
   s += ScriptEngineMinorVersion() + ".";
   s += ScriptEngineBuildVersion();
   return(s);
}

Anforderungen

Version 5

Siehe auch

ScriptEngine-Funktion | ScriptEngineBuildVersion-Funktion | ScriptEngineMinorVersion-Funktion


ScriptEngineMinorVersion-Funktion (JScript)

JScript

ScriptEngineMinorVersion-Funktion

Gibt die Nebenversionsnummer des aktuell verwendeten Skriptmoduls zurück.

ScriptEngineMinorVersion( )

Hinweise

Der Rückgabewert entspricht direkt der Versionsinformation in der DLL für die aktuell verwendete Skriptsprache.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der ScriptEngineMinorVersion-Funktion:

function HoleScriptEngineInfo(){
   var s;
   s = ""; // Zeichenfolge mit benötigten Informationen zusammenstellen.
   s += ScriptEngine() + " Version ";
   s += ScriptEngineMajorVersion() + ".";
   s += ScriptEngineMinorVersion() + ".";
   s += ScriptEngineBuildVersion();
   return(s);
}

Anforderungen

Version 5

Siehe auch

ScriptEngine-Funktion | ScriptEngineBuildVersion-Funktion | ScriptEngineMajorVersion-Funktion


JScript-Methoden

In der folgenden Tabelle sind JScript-Methoden aufgeführt.

Beschreibung | Sprachelement
Gibt den Absolutwert einer Zahl zurück. | abs-Methode
Gibt den Arkuskosinus einer Zahl zurück. | acos-Methode
Setzt einen HTML-Anker mit einem NAME-Attribut um den angegebenen Text im Objekt. | anchor-Methode
Gibt den Arkussinus einer Zahl zurück. | asin-Methode
Gibt den Arkustangens einer Zahl zurück. | atan-Methode
Gibt den Winkel (im Bogenmaß) zwischen der x-Achse und einem Punkt (y, x) zurück. | atan2-Methode
Gibt einen booleschen Wert zurück, der angibt, ob das Aufzählungsobjekt das Ende der Auflistung erreicht hat. | atEnd-Methode
Setzt das HTML-Tag <BIG> um den Text in einem String-Objekt. | big-Methode
Setzt das HTML-Tag <BLINK> um den Text in einem String-Objekt. | blink-Methode
Setzt das HTML-Tag <B> um den Text in einem String-Objekt. | bold-Methode
Gibt die kleinste Ganzzahl zurück, die größer oder gleich dem numerischen Argument ist. | ceil-Methode
Gibt das durch den Index angegebene Zeichen zurück. | charAt-Methode
Gibt die Unicode-Codierung des angegebenen Zeichens zurück. | charCodeAt-Methode
Kompiliert einen regulären Ausdruck in ein internes Format. | compile-Methode
Gibt ein neues Array zurück, das aus einer Kombination zweier Arrays besteht. | concat-Methode (Array)
Gibt ein String-Objekt zurück, das die Verkettung zweier angegebener Zeichenfolgen enthält. | concat-Methode (String)
Gibt den Kosinus einer Zahl zurück. | cos-Methode
Gibt die Anzahl der Dimensionen in einem VBArray zurück. | dimensions-Methode
Codiert String-Objekte so, dass sie auf allen Computern gelesen werden können. | escape-Methode
Wertet und führt JScript-Code aus. | eval-Methode
Führt eine Suche nach einer Entsprechung in einer angegebenen Zeichenfolge aus. | exec-Methode
Gibt e (die Basis des natürlichen Logarithmus) potenziert mit einer Zahl zurück. | exp-Methode
Setzt das HTML-Tag <TT> um den Text in einem String-Objekt. | fixed-Methode
Gibt die größte Ganzzahl zurück, die kleiner oder gleich dem numerischen Argument ist. | floor-Methode
Setzt das HTML-Tag <FONT> mit dem COLOR-Attribut um den Text in einem String-Objekt. | fontcolor-Methode
Setzt das HTML-Tag <FONT> mit dem SIZE-Attribut um den Text in einem String-Objekt. | fontsize-Methode
Gibt eine Zeichenfolge aus mehreren Unicode-Zeichenwerten zurück. | fromCharCode-Methode
Gibt den Wert des Tages eines Monats in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getDate-Methode
Gibt den Wert des Wochentages in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getDay-Methode
Gibt den Wert des Jahres in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getFullYear-Methode
Gibt den Wert der Stunden in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getHours-Methode
Gibt das Element am angegebenen Speicherort zurück. | getItem-Methode
Gibt den Wert der Millisekunden in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getMilliseconds-Methode
Gibt den Wert der Minuten in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getMinutes-Methode
Gibt den Wert des Monats in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getMonth-Methode
Gibt den Wert der Sekunden in einem Date-Objekt unter Verwendung der Ortszeit zurück. | getSeconds-Methode
Gibt den Wert der Zeit in einem Date-Objekt zurück. | getTime-Methode
Gibt den Zeitunterschied in Minuten zwischen der Zeit auf dem Hostcomputer und der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getTimezoneOffset-Methode
Gibt den Wert des Datums in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCDate-Methode
Gibt den Wert des Wochentages in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCDay-Methode
Gibt den Wert des Jahres in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCFullYear-Methode
Gibt den Wert der Stunden in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCHours-Methode
Gibt den Wert der Millisekunden in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCMilliseconds-Methode
Gibt den Wert der Minuten in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCMinutes-Methode
Gibt den Wert des Monats in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCMonth-Methode
Gibt den Wert der Sekunden in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) zurück. | getUTCSeconds-Methode
Gibt den Wert VT_DATE in einem Date-Objekt zurück. | getVarDate-Methode
Gibt den Wert des Jahres in einem Date-Objekt zurück. | getYear-Methode
Gibt die Zeichenposition zurück, an der das erste Auftreten einer Teilzeichenfolge in einem String-Objekt vorkommt. | indexOf-Methode
Gibt einen booleschen Wert zurück, der angibt, ob die angegebene Zahl endlich ist. | isFinite-Methode
Gibt einen booleschen Wert zurück, der angibt, ob ein Wert der reservierte Wert NaN (Not a Number) ist. | isNaN-Methode
Setzt das HTML-Tag <I> um den Text in einem String-Objekt. | italics-Methode
Gibt das aktuelle Element in der Auflistung zurück. | item-Methode
Gibt ein String-Objekt zurück, in dem alle Elemente eines Arrays verkettet enthalten sind. | join-Methode
Gibt das letzte Auftreten einer Teilzeichenfolge in einem String-Objekt zurück. | lastIndexOf-Methode
Gibt den niedrigsten Indexwert zurück, der in der angegebenen Dimension eines VBArrays verwendet wird. | lbound-Methode
Setzt einen HTML-Anker mit einem HREF-Attribut um den Text in einem String-Objekt. | link-Methode
Gibt den natürlichen Logarithmus einer Zahl zurück. | log-Methode
Gibt die Ergebnisse einer Suche in einer Zeichenfolge unter Verwendung eines angegebenen Regular Expression-Objekts als Array zurück. | match-Methode
Gibt den größeren Wert von zwei angegebenen numerischen Ausdrücken zurück. | max-Methode
Gibt die kleinere von zwei angegebenen Zahlen zurück. | min-Methode
Setzt das aktuelle Element in der Auflistung auf das erste Element zurück. | moveFirst-Methode
Verschiebt das aktuelle Element zum nächsten Element in der Auflistung. | moveNext-Methode
Analysiert eine Zeichenfolge mit einem Datum und gibt die Anzahl der Millisekunden zwischen diesem Datum und Mitternacht des 1. Januar 1970 zurück. | parse-Methode
Gibt eine aus einer Zeichenfolge konvertierte Fließkommazahl zurück. | parseFloat-Methode
Gibt eine aus einer Zeichenfolge konvertierte Ganzzahl zurück. | parseInt-Methode
Gibt den mit einem angegebenen Exponenten potenzierten Wert eines Basisausdrucks zurück. | pow-Methode
Gibt eine Pseudozufallszahl zwischen 0 und 1 zurück. | random-Methode
Gibt eine Kopie einer Zeichenfolge zurück, in der Text unter Verwendung eines regulären Ausdrucks ersetzt wurde. | replace-Methode
Gibt ein Array-Objekt mit den Elementen in umgekehrter Reihenfolge zurück. | reverse-Methode
Gibt einen angegebenen numerischen Ausdruck auf die nächste Ganzzahl gerundet zurück. | round-Methode
Gibt die Position der ersten Entsprechung einer Teilzeichenfolge in einer Suche mit einem regulären Ausdruck zurück. | search-Methode
Legt das numerische Datum des Date-Objekts unter Verwendung der Ortszeit fest. | setDate-Methode
Legt den Wert des Jahres im Date-Objekt unter Verwendung der Ortszeit fest. | setFullYear-Methode
Legt den Wert der Stunden im Date-Objekt unter Verwendung der Ortszeit fest. | setHours-Methode
Legt den Wert der Millisekunden im Date-Objekt unter Verwendung der Ortszeit fest. | setMilliseconds-Methode
Legt den Wert der Minuten im Date-Objekt unter Verwendung der Ortszeit fest. | setMinutes-Methode
Legt den Wert des Monats im Date-Objekt unter Verwendung der Ortszeit fest. | setMonth-Methode
Legt den Wert der Sekunden im Date-Objekt unter Verwendung der Ortszeit fest. | setSeconds-Methode
Legt die Werte für das Datum und die Zeit im Date-Objekt fest. | setTime-Methode
Legt das numerische Datum im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCDate-Methode
Legt den Wert des Jahres im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCFullYear-Methode
Legt den Wert der Stunden im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCHours-Methode
Legt den Wert der Millisekunden im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCMilliseconds-Methode
Legt den Wert der Minuten im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCMinutes-Methode
Legt den Wert des Monats im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCMonth-Methode
Legt den Wert der Sekunden im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) fest. | setUTCSeconds-Methode
Legt den Wert des Jahres im Date-Objekt fest. | setYear-Methode
Gibt den Sinus einer Zahl zurück. | sin-Methode
Gibt einen Abschnitt eines Arrays zurück. | slice-Methode (Array)
Gibt einen Abschnitt einer Zeichenfolge zurück. | slice-Methode (String)
Setzt das HTML-Tag <SMALL> um den Text in einem String-Objekt. | small-Methode
Gibt ein Array-Objekt mit den Elementen in sortierter Reihenfolge zurück. | sort-Methode
Gibt das Array mit Zeichenfolgen zurück, das durch Separieren einer Zeichenfolge in Teilzeichenfolgen entsteht. | split-Methode
Gibt die Quadratwurzel einer Zahl zurück. | sqrt-Methode
Setzt das HTML-Tag <STRIKE> um den Text in einem String-Objekt. | strike-Methode
Setzt das HTML-Tag <SUB> um den Text in einem String-Objekt. | sub-Methode
Gibt eine Teilzeichenfolge zurück, die an der angegebenen Position beginnt und die angegebene Länge hat. | substr-Methode
Gibt eine Teilzeichenfolge ab der angegebenen Position in einem String-Objekt zurück. | substring-Methode
Setzt das HTML-Tag <SUP> um den Text in einem String-Objekt. | sup-Methode
Gibt den Tangens einer Zahl zurück. | tan-Methode
Gibt einen booleschen Wert zurück, der angibt, ob ein Muster in einer durchsuchten Zeichenfolge vorhanden ist. | test-Methode
Gibt ein aus einem VBArray konvertiertes Standard-JScript-Array zurück. | toArray-Methode
Gibt eine Zeichenfolge mit einem unter Verwendung der GMT (Greenwich Mean Time) konvertierten Datum zurück. | toGMTString-Methode
Gibt eine Zeichenfolge mit einem unter Verwendung des aktuellen Gebietsschemas konvertierten Datum zurück. | toLocaleString-Methode
Gibt eine Zeichenfolge zurück, bei der alle alphabetischen Zeichen in Kleinbuchstaben konvertiert wurden. | toLowerCase-Methode
Gibt eine Zeichenfolgendarstellung eines Objekts zurück. | toString-Methode
Gibt eine Zeichenfolge zurück, bei der alle alphabetischen Zeichen in Großbuchstaben konvertiert wurden. | toUpperCase-Methode
Gibt eine Zeichenfolge mit einem unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time, UTC) konvertierten Datum zurück. | toUTCString-Methode
Gibt den höchsten Indexwert zurück, der in der angegebenen Dimension eines VBArrays verwendet wird. | ubound-Methode
Decodiert String-Objekte, die mit der escape-Methode codiert wurden. | unescape-Methode
Gibt die Anzahl der Millisekunden zwischen Mitternacht des 1. Januar 1970 gemäß koordinierter Weltzeit (Universal Coordinated Time, UTC) (oder GMT) und dem angegebenen Datum zurück. | UTC-Methode
Gibt den einfachen Wert des angegebenen Objekts zurück. | valueOf-Methode


abs-Methode

Gibt den Absolutwert einer Zahl zurück.

Math.abs(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen absoluter Wert erforderlich ist.

Hinweise

Der Rückgabewert ist der Absolutwert des Arguments Zahl.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der abs-Methode.

function VergleichePosNegWert(n)
{
   var s;
   var v1 = Math.abs(n);
   var v2 = Math.abs(-n);
   if (v1 == v2)
      s = "Die Absolutwerte von " + n + " und "
      s += -n + " sind identisch.";
   return(s);
}

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden

Betrifft: Math-Objekt


acos-Methode

Gibt den Arkuskosinus einer Zahl zurück.

Math.acos(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen Arkuskosinus erforderlich ist.

Hinweise

Der Rückgabewert ist der Arkuskosinus des Arguments Zahl.

Anforderungen

Version 1

Siehe auch

asin-Methode | atan-Methode | cos-Methode | sin-Methode | tan-Methode

Betrifft: Math-Objekt


anchor-Methode

Setzt einen HTML-Anker mit einem NAME-Attribut um den im Objekt angegebenen Text.

strVariable.anchor(Anker-Zeichenfolge)

Argumente

strVariable
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Anker-Zeichenfolge
Erforderlich. Der Text für das NAME-Attribut des HTML-Ankers.

Hinweise

Verwenden Sie die anchor-Methode, um aus einem String-Objekt einen benannten Anker zu generieren. Das folgende Beispiel veranschaulicht, wie die anchor-Methode dies durchführt:

var strVariable = "Dies ist ein Anker";
strVariable = strVariable.anchor("Anker1");

strVariable hat nach der letzten Anweisung den folgenden Wert:

<A NAME="Anker1">Dies ist ein Anker</A>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

link-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


apply-Methode

Wendet eine Methode eines Objekts an und ersetzt dabei das aktuelle Objekt durch ein anderes Objekt.

apply([diesesObj[,ArgArray]])

Argumente

diesesObj
Optional. Das Objekt, das als aktuelles Objekt verwendet werden soll.
ArgArray
Optional. Array von Argumenten, die an die Funktion übergeben werden sollen.

Hinweise

Wenn ArgArray kein gültiges Array und nicht das arguments-Objekt ist, dann tritt ein Fehler vom Typ TypeError auf.

Wenn weder ArgArray noch diesesObj angegeben werden, wird das global-Objekt als diesesObj verwendet, und es werden keine Argumente an das global-Objekt übergeben.

Anforderungen

Version 5.5

Betrifft: Function-Objekt


asin-Methode

Gibt den Arkussinus einer Zahl zurück.

Math.asin(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen Arkussinus erforderlich ist.

Hinweise

Der Rückgabewert ist der Arkussinus des numerischen Arguments.

Anforderungen

Version 1

Siehe auch

acos-Methode | atan-Methode | cos-Methode | Math-Objekt Methoden | sin-Methode | tan-Methode

Betrifft: Math-Objekt


atan-Methode

Berechnet den Arkustangens einer Zahl.

Math.atan(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen Arkustangens erforderlich ist.

Hinweise

Der Rückgabewert ist der Arkustangens des numerischen Arguments.

Anforderungen

Version 1

Siehe auch

acos-Methode | asin-Methode | atan2-Methode | cos-Methode | Math-Objekt Methoden | sin-Methode | tan-Methode

Betrifft: Math-Objekt


atan2-Methode

Gibt den Winkel (im Bogemaß) zwischen der x-Achse und dem Punkt (y,x) zurück.

Math.atan2(y, x)

Argumente

x
Erforderlich. Ein numerischer Ausdruck, der die kartesische x-Koordinate darstellt.
y
Erforderlich. Ein numerischer Ausdruck, der die kartesische y-Koordinate darstellt.

Hinweise

Der Rückgabewert liegt zwischen -pi und pi und gibt den Winkel des gegebenen (y,x)-Punktes zur x-Achse an.

Anforderungen

Version 1

Siehe auch

atan-Methode | tan-Methode

Betrifft: Math-Objekt


atEnd-Methode

Gibt einen booleschen Wert zurück, der angibt, ob sich der Aufzähler am Ende der Auflistung befindet.

Enum.atEnd( )

Der erforderliche Enum-Verweis ist ein beliebiges Enumerator-Objekt.

Hinweise

Die atEnd-Methode gibt true zurück, wenn das aktuelle Element das letzte in der Auflistung ist, die Auflistung leer ist oder das aktuelle Element nicht definiert ist. Andernfalls gibt sie false zurück.

Beispiel

Im folgenden Code dient die atEnd-Methode der Feststellung, ob das Ende einer Laufwerkliste erreicht wurde.

function ZeigeLaufwerkliste(){
   var fso, s, n, e, x;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);
   s = "";
   for (; !e.atEnd(); e.moveNext())
   {
      x = e.item();
      s = s + x.DriveLetter;
      s += " - ";
      if (x.DriveType == 3)
         n = x.ShareName;
      else if (x.IsReady)
         n = x.VolumeName;
      else
         n = "[Laufwerk nicht bereit]";
      s +=   n + "<br>";
   }
   return(s);
}

Anforderungen

Version 2

Siehe auch

item-Methode | moveFirst-Methode | moveNext-Methode

Betrifft: Enumerator-Objekt


big-Methode

Setzt das HTML-Tag <BIG> um Text in einem String-Objekt.

strVariable.big( )

Der erforderliche strVariable-Verweis ist ein beliebiges String-Objekt oder Zeichenfolgenliteral.

Hinweise

Das folgende Beispiel veranschaulicht die Funktion der big-Methode:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.big( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<BIG>Dies ist ein String-Objekt</BIG>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

small-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


blink-Methode

Setzt das HTML-Tag <BLINK> um Text in einem String-Objekt.

strVariable.blink( )

Der erforderliche strVariable-Verweis ist ein beliebiges String-Objekt oder Zeichenfolgenliteral.

Hinweise

Das folgende Beispiel veranschaulicht, wie die blink-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.blink( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<BLINK>Dies ist ein String-Objekt</BLINK>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Das <BLINK>-Tag wird im Microsoft Internet Explorer nicht unterstützt.

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


bold-Methode

Setzt das HTML-Tag <B> um Text in einem String-Objekt.

strVariable.bold()

Der erforderliche strVariable-Verweis ist ein beliebiges String-Objekt oder Zeichenfolgenliteral.

Hinweise

Das folgende Beispiel veranschaulicht, wie die bold-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.bold( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<B>Dies ist ein String-Objekt</B>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

italics-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


call-Methode

Ruft eine Methode eines Objekts auf und ersetzt dabei das aktuelle Objekt durch ein anderes Objekt.

call([diesesObj[,Arg1[, Arg2[,  [,.ArgN]]]]])

Argumente

diesesObj
Optional. Das Objekt, das als aktuelles Objekt verwendet werden soll.
Arg1, Arg2, , ArgN
Optional. Liste von Argumenten, die an die Methode übergeben werden sollen.

Hinweise

Die call-Methode wird verwendet, um eine Methode im Namen eines anderen Objekts aufzurufen. Die call-Methode ermöglicht Ihnen, den Objektkontext einer Funktion vom ursprünglichen Kontext zu dem durch diesesObj angegebenen neuen Objekt zu ändern.

Wenn diesesObj nicht angegeben wird, wird das global-Objekt als diesesObj verwendet.

Anforderungen

Version 5.5

Betrifft: Function-Objekt


ceil-Methode

Gibt die kleinste Ganzzahl zurück, die größer oder gleich dem numerischen Argument ist.

Math.ceil(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck.

Hinweise

Der Rückgabewert ist ein ganzzahliger Wert gleich der kleinsten Ganzzahl, die größer oder gleich dem numerischen Argument ist.

Anforderungen

Version 1

Siehe auch

floor-Methode | Math-Objekt Methoden

Betrifft: Math-Objekt


charAt-Methode

Gibt das durch den Index angegebene Zeichen zurück.

strObj.charAt(Index)

Argumente

strObj
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Index
Erforderlich. Der von Null ausgehende Index des gewünschten Zeichens. Gültige Werte liegen zwischen 0 und der Länge der Zeichenfolge minus 1.

Hinweise

Die charAt-Methode gibt das Zeichen bei dem angegebenen Index zurück. Das erste Zeichen einer Zeichenfolge hat den Index 0, das zweite den Index 1 usw. Werte außerhalb eines gültigen Bereiches geben eine leere Zeichenfolge zurück.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der charAt-Methode:

function CharAtTest(n){
   var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //Variable initialisieren.
   var s;                                  //Eine Variable deklarieren.
   s = str.charAt(n - 1);                  //Korrektes Zeichen aus der
                                             //Position n – 1 abrufen
   return(s);                              //Ein Zeichen zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


charCodeAt-Methode

Gibt eine ganze Zahl zurück, die die Unicode-Verschlüsselung des Zeichens an der angegebenen Position darstellt.

StrObj.charCodeAt(Index)

Argumente

StrObj
Erforderlich. Ein beliebiges String-Objekt oder Literal.
Index
Erforderlich. Nullbasierter Index des gewünschten Zeichens. Gültige Werte liegen zwischen 0 und der Länge der Zeichenfolge minus 1.

Hinweise

Das erste Zeichen in einer Zeichenfolge hat den Index 0, das zweite den Index 1 usw.

Wenn sich am angegebenen Index kein Zeichen befindet, wird NaN (Not a Number) zurückgegeben.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der charCodeAt-Methode.

function charCodeAtTest(n){
  var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //Initialisiert eine Variable.
  var n;                                  //Deklariert eine Variable.
  n = str.charCodeAt(n - 1);              //Ruft den Unicodewert des
                                          //Zeichens an Position n ab.
  return(n);                              //Gibt den Wert zurück.
}

Anforderungen

Version 5.5

Siehe auch

fromCharCode-Methode | Methoden des String-Objekts

Betrifft: String-Objekt


compile-Methode

Kompiliert einen regulären Ausdruck in ein internes Format, was die Ausführung beschleunigt.

RgExp.compile(Muster, [Flags])

Argumente

RgExp
Erforderlich. Eine Instanz eines Regular Expression-Objekts. Kann ein Variablenname oder ein Literal sein.
Muster
Erforderlich. Ein Zeichenfolgenausdruck, der ein zu kompilierendes Muster eines regulären Ausdruckes enthält.
Flags
Optional. Folgende verfügbare Flags können kombiniert werden:
  • g (globale Suche nach allen Treffern von Muster)
  • i (Groß-/Kleinschreibung ignorieren)
  • m (mehrzeilige Suche)

Hinweise

Die compile-Methode konvertiert das Muster zur schnelleren Ausführung in ein internes Format. Dadurch können Sie z. B. reguläre Ausdrücke in Schleifen effizienter verwenden. Ein kompilierter regulärer Ausdruck wirkt beschleunigend, wenn derselbe Ausdruck mehrmals verwendet wird. Wenn sich der reguläre Ausdruck ändert, entsteht kein Vorteil.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der compile-Methode:

function CompileDemo(){
   var rs;
   var s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp"
   // Einen regulären Ausdruck für Großbuchstaben erstellen.
   var r = new RegExp("[A-Z]", "g");
   var a1 = s.match(r)   //              Übereinstimmungen suchen.
   //Den regulären Ausdruck nur für Kleinbuchstaben kompilieren.
   r.compile("[a-z]", "g");
   var a2 = s.match(r)              // Übereinstimmungen suchen.
   return(a1 + "\n" + a2;
}

Anforderungen

Version 3

Siehe auch

Regular Expression-Objekt Methoden | Regular Expression-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: Regular Expression-Objekt


concat-Methode (Array)

Gibt ein neues Array zurück, das aus zwei oder mehreren kombinierten Arrays besteht.

Array1.concat([Element1[, Element2[, . . . [, ElementN]]]])

Argumente

Array1
Erforderlich. Das Array-Objekt, mit dem sich alle anderen Arrays verketten.
Element1,. . ., ElementN
Optional. Weitere Elemente zum Hinzufügen an das Ende von Element1.

Hinweise

Die concat-Methode gibt ein Array-Objekt zurück, das die Verkettung von Array1 und allen weiteren gelieferten Elementen enthält.

Die Elemente, die zum Array hinzugefügt werden sollen (Element1 … ElementN), werden der Reihenfolge nach von links nach rechts hinzugefügt. Wenn eines der Elemente ein Array ist, wird der zugehörige Inhalt an das Ende von Element1 hinzugefügt. Wenn das Element etwas anderes ist, dann wird es an das Ende des Arrays als einzelnes Arrayelement hinzugefügt.

Elemente von Quellarrays werden in das entstehende Array wie folgt kopiert:

  • Für einen Objektverweis, der aus einem beliebigen Array kopiert wurde und mit dem neuen Array verkettet wird, zeigt der Objektverweis weiterhin auf dasselbe Objekt. Eine Änderung, entweder im neuen Array oder im ursprünglichen Array bringt eine entsprechende Änderung im jeweils anderen Array mit sich.
  • Für ein numerisches Feld oder eine Zeichenfolge, die mit dem neuen Array verkettet werden, wird nur der Wert kopiert. Änderungen an einem Wert in einem Array haben keine Auswirkungen auf den Wert in den anderen Arrays.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der concat-Methode unter Verwendung eines Arrays:

function ConcatArrayDemo(){
   var a, b, c, d;
   a = new Array(1,2,3);
   b = "JScript";
   c = new Array(42, "VBScript);
   d = a.concat(b, c);
   // Gibt das Array [1, 2, 3, "JScript", 42, "VBScript"] zurück
   return(d);
}

Anforderungen

Version 3

Siehe auch

concat-Methode (String) | join-Methode | String-Objekt

Betrifft: Array-Objekt


concat-Methode (String)

Gibt einen String-Wert zurück, der die Verkettung zweier oder mehrerer angegebener Zeichenfolgen enthält.

Zeichenfolge1.concat([Zeichenfolge2[,Zeichenfolge3[, . . . [,ZeichenfolgeN]]]])

Argumente

Zeichenfolge1
Erforderlich. Das String-Objekt oder Zeichenfolgenliteral, mit dem alle anderen angebenen Zeichenfolgen verkettet werden.
Zeichenfolge2,. . ., ZeichenfolgeN
Optional. Die String-Objekte oder Literale, die mit dem Ende von Zeichenfolge1 verkettet werden sollen.

Hinweise

Das Ergebnis der concat-Methode ist äquivalent zu: Ergebnis = Zeichenfolge1 + Zeichenfolge2 + Zeichenfolge3 + … + ZeichenfolgeN. Eine Wertänderung, entweder in einer Quellzeichenfolge order Ergebniszeichenfolge hat keine Auswirkungen auf den Wert in einer anderen Zeichenfolge. Wenn ein Argument keine Zeichenfolge ist, wird es zunächst in eine Zeichenfolge konvertiert und anschließend mit Zeichenfolge1 verkettet.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der concat-Methode, wenn eine Zeichenfolge verwendet wird:

function ConcatDemo(){
   var str1 = "ABCDEFGHIJKLM"
   var str2 = "NOPQRSTUVWXYZ";
   var s = str1.concat(str2);
   // Verkettete Zeichenfolge zurückgeben.
   return(s);
}

Anforderungen

Version 3

Siehe auch

Additionsoperator (+) | Array-Objekt | concat-Methode (Array) | Methoden des String-Objekts

Betrifft: String-Objekt


cos-Methode

Gibt den Kosinus einer Zahl zurück.

Math.cos(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen Kosinus erforderlich ist.

Hinweise

Der Rückgabewert ist der Kosinus des numerischen Arguments.

Anforderungen

Version 1

Siehe auch

acos-Methode | asin-Methode | atan-Methode | Math-Objekt Methoden | sin-Methode | tan-Methode

Betrifft: Math-Objekt


decodeURI-Methode

Gibt die nicht verschlüsselte Version eines verschlüsselten URIs (Uniform Resource Identifier) zurück.

decodeURI(URIZeichenfolge)

Das erforderliche URIZeichenfolge-Argument ist ein Wert, der einen verschlüsselten URI darstellt.

Hinweise

Verwenden Sie die decodeURI-Methode statt der veralteten unescape-Methode.

Die decodeURI-Methode gibt einen Zeichenfolgenwert zurück.

Wenn die URIZeichenfolge nicht gültig ist, tritt ein Fehler vom Typ URIError auf.

Anforderungen

Version 5

Siehe auch

decodeURIComponent-Methode | encodeURI-Methode

Betrifft: Global-Objekt


decodeURIComponent-Methode

Gibt die nicht verschlüsselte Version einer verschlüsselten Komponente eines URIs (Uniform Resource Identifier) zurück.

decodeURIComponent(verschlüsselteURIZeichenfolge)

Das erforderliche verschlüsselteURIZeichenfolge-Argument ist ein Wert, der eine verschlüsselte URI-Komponente darstellt.

Hinweise

Eine URI-Komponente ist Teil eines vollständigen URI.

Wenn verschlüsselteURIZeichenfolge nicht gültig ist, tritt ein Fehler vom Typ URIError auf.

Anforderungen

Version 5.5

Siehe auch

decodeURI-Methode | encodeURI-Methode

Betrifft: Global-Objekt


dimensions-Methode

Gibt die Anzahl der Dimensionen eines VBArrays zurück.

Array.dimensions( )

Das erforderliche Array ist ein VBArray-Objekt.

Hinweise

Die dimensions-Methode bietet eine Möglichkeit, die Anzahl der Dimensionen eines angegebenen VBArrays abzurufen.

Das folgende Beispiel besteht aus drei Teilen. Der erste Teil ist VBScript-Code zum Erstellen eines Visual Basic Safe Array-Objekts. Der zweite Teil ist JScript-Code, der die Anzahl der Dimensionen in dem Safe Array-Objekt und die obere Grenze jeder Dimension bestimmt. Beide Teile gehören in den <HEAD>-Abschnitt einer HTML-Seite. Der dritte Teil ist JScript-Code, der im <BODY>-Abschnitt den Aufruf der beiden anderen Teile bewirkt.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function ErzeugeVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         k = k + 1
      Next
   Next
   ErzeugeVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vba)
{
   var i, s;
   var a = new VBArray(vba);
   for (i = 1; i <= a.dimensions(); i++)
   {
      s += "Die obere Grenze der Dimension ";
      s += i + " ist ";
      s += a.ubound(i)+ ".<BR>";
   }
   return(s);
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT language="jscript">
   document.write(VBArrayTest(ErzeugeVBArray()));
</SCRIPT>
</BODY>

Anforderungen

Version 3

Siehe auch

getItem-Methode | lbound-Methode | toArray-Methode | ubound-Methode

Betrifft: VBArray-Objekt


encodeURI-Methode

Verschlüsselt eine Textzeichenfolge als gültigen URI (Uniform Resource Identifier).

encodeURI(URIZeichenfolge)

Das erforderliche URIZeichenfolge-Argument ist ein Wert, der einen verschlüsselten URI darstellt.

Hinweise

Die encodeURI-Methode gibt einen verschlüsselten URI zurück. Wenn Sie das Ergebnis an decodeURI übergeben, wird die ursprüngliche Zeichenfolge zurückgegeben. Die encodeURI-Methode verschlüsselt nicht die folgenden Zeichen: ":", "/", ";" und "?". Verwenden Sie encodeURIComponent, um diese Zeichen zu verschlüsseln.

Anforderungen

Version 5.5

Siehe auch

decodeURI-Methode | decodeURIComponent-Methode

Betrifft: Global-Objekt


encodeURIComponent-Methode

Verschlüsselt eine Textzeichenfolge als gültige Komponente eines URIs (Uniform Resource Identifier).

encodeURIComponent(verschlüsselteURIZeichenfolge)

Das erforderliche verschlüsselteURIZeichenfolge-Argument ist ein Wert, der eine verschlüsselte URI-Komponente darstellt.

Hinweise

Die encodeURIComponent-Methode gibt einen verschlüsselten URI zurück. Wenn Sie das Ergebnis an decodeURIComponent übergeben, wird die ursprüngliche Zeichenfolge zurückgegeben. Da die encodeURIComponent-Methode alle Zeichen verschlüsselt, seien Sie vorsichtig, wenn die Zeichenfolge einen Pfad wie z. B. /Order1/Ordner2/Standard.html darstellt. Die Schrägstrichzeichen werden verschlüsselt und sind nicht gültig, wenn sie als Anforderung an einen Webserver gesendet werden. Verwenden Sie die encodeURI-Methode, wenn die Zeichenfolge mehr als eine URI-Komponente enthält.

Anforderungen

Version 5.5

Siehe auch

decodeURI-Methode | decodeURIComponent-Methode

Betrifft: Global-Objekt


escape-Methode

Kodiert String-Objekte so, dass sie auf allen Computern gelesen werden können.

escape(Zeichenfolge)

Das erforderliche charString-Argument ist ein zu kodierendes String-Objekt oder Zeichenfolgenliteral.

Hinweise

Die escape-Methode gibt ein String-Objekt (im Unicode-Format) zurück, das den Inhalt von Zeichenfolge enthält. Alle Leerzeichen, Satzzeichen, Buchstaben mit Akzenten und andere Nicht-ASCII-Zeichen werden durch %xx-Kodierungen ersetzt, wobei xx das Äquivalent der Hexadezimalnummer des Zeichens ist. Ein Leerzeichen wird beispielsweise als "%20" zurückgegeben.

Zeichen, deren Werte größer als 255 sind, werden im Format %u xxxx gespeichert.

Anmerkung Die escape-Methode sollte nicht zum Kodieren von Uniform Resource Identifiers (URI) verwendet werden. Verwenden Sie stattdessen die Methoden encodeURI und encodeURIComponent.

Anforderungen

Version 1

Siehe auch

encodeURI-Methode | encodeURIComponent-Methode | String-Objekt | unescape-Methode

Betrifft: Global-Objekt


eval-Methode

Wertet JScript-Code aus und führt diesen aus.

eval(Code-Zeichenfolge)

Das erforderliche Argument Code-Zeichenfolge ist ein String-Wert, das gültigen JScript-Code enthält. Die Zeichenfolge wird vom JScript-Parser analysiert und ausgeführt.

Hinweise

Die eval-Funktion ermöglicht die dynamische Ausführung von JScript-Quellcode. Beispielsweise erstellt der folgende Code eine neue Variable meinDatum, die ein Date-Objekt enthält:

eval("var meinDatum = new Date();");

Der an die eval-Methode übergebene Code wird in dem gleichen Kontext wie der Aufruf der eval-Methode ausgeführt.

Anforderungen

Version 1

Siehe auch

String-Objekt

Betrifft: Global-Objekt


exec-Methode

Führt die Suche auf einer Zeichenfolge nach dem Muster eines regulären Ausdrucks aus und gibt ein Array mit Ergebnissen dieser Suche zurück.

RgExp.exec(Zeichenfolge)

Argumente

RgExp
Erforderlich. Eine Instanz eines Regular Expression-Objekts mit dem Muster eines regulären Ausdrucks und verfügbaren Flags.
Zeichenfolge
Erforderlich. Das String-Objekt oder Zeichenfolgenliteral, auf dem die Suche durchgeführt werden soll.

Hinweise

Findet die exec-Methode keine Übereinstimmung, wird null zurückgegeben. Wird eine Übereinstimmung gefunden, gibt die exec-Methode ein Array zurück, und die Eigenschaften des globalen RegExp-Objekts werden aktualisiert, um die Ergebnisse der Übereinstimmung anzuzeigen. Das Element Null des Arrays enthält alle übereinstimmenden Zeichen, während die Elemente 1 – n alle aufgetretenen Teilübereinstimmungen enthalten. Dieses Verhalten entspricht dem Verhalten der match-Methode ohne gesetzten globalen Flag (g).

Wenn der globale Flag für einen regulären Ausdruck gesetzt wurde, sucht exec die Zeichenfolge, die an der Position beginnt, die durch den Wert von lastIndex indiziert wird. Wenn der globale Flag nicht gesetzt wird, ignoriert exec den Wert von lastIndex und sucht beginnend am Anfang der Zeichenfolge.

Das Array, das durch die exec-Methode zurückgegeben wird, verfügt über drei Eigenschaften: input, index und lastIndex. Die input-Eigenschaft enthält eine vollständige gesuchte Zeichenfolge. Die index-Eigenschaft enthält die Position einer übereinstimmenden Teilzeichenfolge in einer vollständigen gesuchten Zeichenfolge. Die lastIndex-Eigenschaft enthält die Position, die dem letzten Zeichen in der Übereinstimmung folgt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der exec-Methode:

function RegExpTest(){
  var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
  if (ver >= 5.5){                 //Testet JScript-Version.
    var src = " Es grünt so grün, wenn Spaniens Blüten blüh'n";
    var re = /\w+/g;               //Erstellt Muster eines regulären Ausdrucks.
    var arr;
    while ((arr = re.exec(src)) != null)
       document.write(arr.index + "-" + arr.lastIndex + "\t" + arr);
  }
  else{
    alert("Es ist eine aktuellere Version von JScript erforderlich, damit dies funktioniert");
  }
}

Anforderungen

Version 3

Siehe auch

Match-Methode | RegExp-Objekt | Regular Expression-Objekt Methoden | Regular Expression-Objekt Eigenschaften | Syntax regulärer Ausdrücke | search-Methode | test-Methode

Betrifft: Regular Expression-Objekt


exp-Methode

Berechnet die Exponentialfunktion ex. e ist die Basis des natürlichen Logarithmus.

Math.exp(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, der die gewünschte Potenz von e darstellt.

Hinweise

Der Rückgabewert ist eZahl. Die Konstante e ist die Eulersche Konstante, näherungsweise 2,178, und Zahl ist das gegebene Argument.

Anforderungen

Version 1

Siehe auch

E-Eigenschaft | Math-Objekt Methoden

Betrifft: Math-Objekt


fixed-Methode

Setzt das HTML-Tag <TT> um Text in einem String-Objekt.

strVariable.fixed( )

Der erforderliche strVariable-Verweis ist ein String-Objekt oder Zeichenfolgenliteral.

Hinweise

Das folgende Beispiel veranschaulicht, wie die fixed-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.fixed();

strVariable hat nach der letzten Anweisung den folgenden Wert:

<TT>Dies ist ein String-Objekt</TT>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


floor-Methode

Berechnet die größte Ganzzahl kleiner oder gleich dem numerischen Argument.

Math.floor(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck.

Hinweise

Der Rückgabewert ist ein ganzzahliger Wert gleich der größten Ganzzahl kleiner oder gleich dem numerischen Argument.

Anforderungen

Version 1

Siehe auch

ceil-Methode | Math-Objekt Methoden

Betrifft: Math-Objekt


fontcolor-Methode

Setzt das HTML-Tag <FONT> mit dem COLOR-Attribut um Text in einem String-Objekt.

strVariable.fontcolor(Farbwert)

Argumente

strVariable
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Farbwert
Erforderlich. Eine Zeichenfolge, die einen Farbwert enthält. Dies kann entweder der hexadezimale Wert oder der vordefinierte Name einer Farbe sein.

Hinweise

Das folgende Beispiel veranschaulicht, wie die fontcolor-Methode funktioniert:

var strVariable = "Dies ist eine Zeichenfolge";
strVariable = strVariable.fontcolor("red");

strVariable hat nach der letzten Anweisung den folgenden Wert:

<FONT COLOR="RED">Dies ist eine Zeichenfolge</FONT>

Gültige vordefinierte Farbnamen hängen von Ihrem JScript-Host (Browser, Server usw.) ab. Sie variieren möglicherweise auch von Version zu Version des Hosts. Weitere Informationen hierzu finden Sie in der Dokumentation Ihres Hosts.

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

fontsize-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


fontsize-Methode

Setzt das HTML-Tag <FONT> mit dem SIZE-Attribut um Text in einem String-Objekt.

strVariable.fontsize(Schriftgröße)

Argumente

strVariable
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Schriftgröße
Erforderlich. Ein ganzzahliger Wert, der die Schriftgröße des Textes angibt.

Hinweise

Das folgende Beispiel veranschaulicht, wie die fontsize-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.fontsize(-1);

strVariable hat nach der letzten Anweisung den folgenden Wert:

<FONT SIZE="-1">Dies ist ein String-Objekt</FONT>

Gültige ganzzahlige Werte hängen von Ihrem Microsoft JScript-Host ab. Weitere Informationen hierzu finden Sie in der Dokumentation Ihres Hosts.

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

fontcolor-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


fromCharCode-Methode

Gibt eine Zeichenfolge aus Unicode-Zeichenwerten zurück.

String.fromCharCode([Code1[, Code2[, ...[, CodeN]]]])

Argument

String
Erforderlich. Das String-Objekt.
Code1, . . . , CodeN
Optional. Eine Folge von Unicode-Zeichen, die in eine Zeichenfolge umgewandelt werden. Wenn keine Argumente geliefert werden, wird als Ergebnis eine leere Zeichenfolge zurückgegeben.

Hinweise

Vor dem Aufruf von fromCharCode muss kein String-Objekt erstellt werden.

Im folgenden Beispiel enthält test die Zeichenfolge "einfach":

var test = String.fromCharCode(112, 108, 97, 105, 110);

Anforderungen

Version 3

Siehe auch

charCodeAt-Methode | Methoden des String-Objekts

Betrifft: String-Objekt


getDate-Methode

Bestimmt aus einem Date-Objekt den Tag des Monats unter Verwendung der Lokalzeit.

DatumsObj.getDate()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getUTCDate-Methode, um den Tag des Monats unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zu bestimmen.

Der Rückgabewert ist eine Ganzzahl zwischen 1 und 31, die den Tag des Monats in dem Date-Objekt angibt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getDate-Methode:

function DatumDemo(){
   var d, s = "Das heutige Datum lautet: ";
   d = new Date();
   s += (d.getMonth() + 1) + ".";
   s += d.getDate() + ".";
   s += d.getYear();
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getUTCDate-Methode | setDate-Methode | setUTCDate-Methode

Betrifft: Date-Objekt


getDay-Methode

Bestimmt aus einem Date-Objekt den Wochentag unter Verwendung der Lokalzeit.

DatumsObj.getDay()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getUTCDay-Methode, um den Wochentag unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zu bestimmen.

Die getDay-Methode gibt einen ganzzahligen Wert im Bereich von 0 bis 6 zurück. Dieser entspricht dem Wochentag:

Wert | Wochentag
0 | Sonntag
1 | Montag
2 | Dienstag
3 | Mittwoch
4 | Donnerstag
5 | Freitag
6 | Samstag

Das folgende Beispiel veranschaulicht die Verwendung der getDay-Methode.

function DatumDemo(){
   var d, day, x, s = "Heute ist ";
   var x = new Array("Sonntag", "Montag", "Dienstag");
   var x = x.concat("Mittwoch","Donnerstag", "Freitag");
   var x = x.concat("Samstag");
   d = new Date();
   day = d.getDay();
   return(s += x[day]);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getUTCDay-Methode

Betrifft: Date-Objekt


getFullYear-Methode

Bestimmt aus einem Date-Objekt die Jahreszahl unter Verwendung der Lokalzeit.

DatumsObj.getFullYear()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um das Jahr unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zu bestimmen, verwenden Sie die getUTCFullYear-Methode.

Die getFullYear-Methode gibt das Jahr als absolute Zahl zurück. So wird zum Beispiel das Jahr 1976 als 1976 zurückgegeben. Dadurch wird das Jahr-2000-Problem, das Verwechseln von Datumsangaben, die mit dem 01. Januar 2000 beginnen, mit denen, die mit dem 01. Januar 1900 beginnen, vermieden.

Das folgende Beispiel veranschaulicht die Verwendung der getFullYear-Methode.

function DatumDemo(){
   var d, s = "Das heutige Datum lautet: ";
   d = new Date();
   s += (d.getMonth() + 1 ) +".";
   s += d.getDate() + ".";
   s += d.getFullYear();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getUTCFullYear-Methode | setFullYear-Methode | setUTCFullYear-Methode

Betrifft: Date-Objekt


getHours-Methode

Gibt den Wert der Stunden in einem Date-Objekt unter Verwendung der Lokalzeit zurück.

DatumsObj.getHours()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getUTCHours-Methode, um den Stundenwert mithilfe der koordinierten Weltzeit (Universal Coordinated Time=UTC) abzurufen.

Mit der getHours-Methode wird eine Ganzzahl zwischen 0 und 23 ausgegeben, die die Anzahl der seit Mitternacht vergangenen Stunden anzeigt. Der Wert Null (0) wird in zwei Fällen zurückgegeben: Die Zeit liegt vor 1:00 Uhr, oder die Uhrzeit war nicht im Date-Objekt gespeichert, als das Objekt erstellt wurde. Welcher Fall eingetreten ist, kann nur durch zusätzliches Überprüfen der Minuten und Sekunden festgestellt werden. Sind alle Werte Null, ist es fast sicher, dass die Zeit nicht im Date-Objekt gespeichert wurde.

Das folgende Beispiel veranschaulicht die Verwendung der getHours-Methode.

function ZeitDemo(){
   var d, s = "Die aktuelle Lokalzeit ist: ";
   var c = ":";
   d = new Date();
   s += d.getHours() + c;
   s += d.getMinutes() + c;
   s += d.getSeconds() + c;
   s += d.getMilliseconds();
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getUTCHours-Methode | setHours-Methode | setUTCHours-Methode

Betrifft: Date-Objekt


getItem-Methode

Gibt das Element am angegebenen Speicherort zurück.

Array.getItem(Dimension1[, Dimension2, ...], DimensionN)

Argumente

Array
Erforderlich. Ein VBArray-Objekt.
Dimension1, ..., DimensionN
Gibt die exakte Position des gewünschten Elements im VBArray an. n entspricht der Anzahl der Dimensionen des VBArrays.

Beispiel

Das folgende Beispiel besteht aus drei Teilen. Der erste Teil ist VBScript-Code zum Erstellen eines Visual Basic Safe Array-Objekts. Der zweite Teil ist JScript-Code, der das Safe Array-Objekt durchläuft und den Inhalt jedes Elements ausgibt. Beide Teile gehören in den <HEAD>-Abschnitt einer HTML-Seite. Der dritte Teil ist JScript-Code, der im <BODY>-Abschnitt den Aufruf der beiden anderen Teile bewirkt.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function ErzeugeVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(i, j) = k
         document.writeln(k)
         k = k + 1
      Next
      document.writeln("<BR>")
   Next
   ErzeugeVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function GetItemTest(vbarray)
{
   var i, j;
   var a = new VBArray(vbarray);
   for (i = 0; i <= 2; i++)
   {
      for (j =0; j <= 2; j++)
      {
         document.writeln(a.getItem(i, j));
      }
   }
}-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JScript">
<!--
   GetItemTest(ErzeugeVBArray());
-->
</SCRIPT>
</BODY>

Anforderungen

Version 1

Siehe auch

dimensions-Methode | lbound-Methode | toArray-Methode | ubound-Methode

Betrifft: VBArray-Objekt


getMilliseconds-Methode

Bestimmt aus einem Date-Objekt die Zahl der Millisekunden unter Verwendung der Lokalzeit.

DatumsObj.getMilliseconds()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um die Zahl der Millisekunden unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zu bestimmen, verwenden Sie die getUTCMilliseconds-Methode.

Der zurückgegebene Millisekundenwert liegt im Bereich zwischen 0 und 999.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getMilliseconds-Methode.

function ZeitDemo(){
   var d, s = "Die aktuelle Lokalzeit lautet: ";
   var c = ":";
   d = new Date();
   s += d.getHours() + c;
   s += d.getMinutes() + c;
   s += d.getSeconds() + c;
   s += d.getMilliseconds();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getUTCMilliseconds-Methode | setMilliseconds-Methode | setUTCMilliseconds-Methode

Betrifft: Date-Objekt


getMinutes-Methode

Gibt den Wert der Minuten in einem Date-Objekt unter Verwendung der Lokalzeit zurück.

DatumsObj.getMinutes()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getUTCMinutes-Methode, um den Wert für die Minuten mithilfe der koordinierten Weltzeit (Universal Coordinated Time=UTC) abzurufen.

Die getMinutes-Methode gibt einen ganzzahligen Wert zwischen 0 und 59 entsprechend dem im Date-Objekt gespeicherten Wert für die Minuten zurück. Der Wert Null (0) wird in zwei Fällen zurückgegeben: Die aktuelle Zeit beträgt weniger als 1 Minute nach der vollen Stunde, oder beim Erstellen des Objekts wurde die Zeit nicht im Date-Objekt gespeichert. Welcher Fall eingetreten ist, kann nur durch zusätzliches Überprüfen der Stunden und Sekunden festgestellt werden. Sind alle Werte Null, ist es fast sicher, dass die Zeit nicht im Date-Objekt gespeichert wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getMinutes-Methode.

function ZeitDemo(){
   var d, s = "Die aktuelle Lokalzeit ist: ";
   var c = ":";
   d = new Date();
   s += d.getHours() + c;
   s += d.getMinutes() + c;
   s += d.getSeconds() + c;
   s += d.getMilliseconds();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getUTCMinutes-Methode | setMinutes-Methode | setUTCMinutes-Methode

Betrifft: Date-Objekt


getMonth-Methode

Bestimmt aus einem Date-Objekt den Monat unter Verwendung der Lokalzeit.

DatumsObj.getMonth()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getUTCMonth-Methode, um den Wert für den Monat unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zu bestimmen.

Die getMonth-Methode gibt einen ganzzahligen Wert zwischen 0 und 11 entsprechend dem Monatswert des Date-Objekts zurück. Der zurückgegebene ganzzahlige Wert ist nicht der herkömmliche Wert für den Monat, sondern der herkömmliche Wert abzüglich eins. Ist das Datum "5 Januar 1996 08:47:00" in einem Date-Objekt gespeichert, so gibt getMonth 0 zurück.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getMonth-Methode.

function DatumDemo(){
   var d, s = "Das heutige Datum lautet: ";
   d = new Date();
   s += (d.getMonth() + 1) + ".";
   s += d.getDate() + ".";
   s += d.getYear();
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getUTCMonth-Methode | setMonth-Methode | setUTCMonth-Methode

Betrifft: Date-Objekt


getSeconds-Methode

Gibt den Wert der Sekunden in einem Date-Objekt unter Verwendung der Lokalzeit zurück.

DatumsObj.getSeconds()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getUTCSeconds-Methode, um den Wert für die Sekunden mithilfe der koordinierten Weltzeit (Universal Coordinated Time=UTC) zu erhalten.

Die getSeconds-Methode gibt einen ganzzahligen Wert zwischen 0 und 59 entsprechend dem im Date-Objekt gespeicherten Wert für die Sekunden zurück. Der Wert Null (0) wird in zwei Fällen zurückgegeben: Die aktuelle Minute ist seit weniger als 1 Sekunde angebrochen, oder beim Erstellen des Objekts wurde die Zeit nicht im Date-Objekt gespeichert. Welcher Fall eingetreten ist, kann nur durch zusätzliches Überprüfen der Stunden und Minuten festgestellt werden. Sind alle Werte Null, ist es fast sicher, dass die Zeit nicht im Date-Objekt gespeichert wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getSeconds-Methode.

function ZeitTimeDemo(){
   var d, s = "Die aktuelle Lokalzeit ist: ";
   var c = ":";
   d = new Date();
   s += d.getHours() + c;
   s += d.getMinutes() + c;
   s += d.getSeconds() + c;
   s += d.getMilliseconds();
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getUTCSeconds-Methode | setSeconds-Methode | setUTCSeconds-Methode

Betrifft: Date-Objekt


getTime-Methode

Gibt den Zeitwert eines Date-Objekts zurück.

DatumsObj.getTime()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Die getTime-Methode gibt einen ganzzahligen Wert zurück, der der Anzahl der seit dem 1. Januar 1970, Mitternacht, und dem Wert im Date-Objekt vergangenen Millisekunden entspricht. Der Datumsbereich umfasst etwa 285.616 Jahre vor und nach dem 1. Januar 1970. Negative Zahlen verweisen auf Daten vor 1970.

Bei umfangreichen Daten- und Zeitkalkulationen ist es häufig sinnvoll, Variablen zu definieren, die der Anzahl der Millisekunden eines Tages, einer Stunde oder einer Minute entsprechen. Beispiele:

var MinMilli = 1000 * 60
var StdMilli = MinMilli * 60
var TagMilli = StdMilli * 24

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getTime-Methode:

function GetTimeTest(){
   var d, s, t;
   var MinMilli = 1000 * 60;
   var StdMilli = MinMilli * 60
   var TagMilli = StdMilli * 24
   d = new Date();
   t = d.getTime();
   s = "Seit dem 1.1.1970 sind "
   s += Math.round(t / TagMilli) + " Tage vergangen";
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | setTime-Methode

Betrifft: Date-Objekt


getTimezoneOffset-Methode

Gibt den Zeitunterschied in Minuten zwischen dem Hostcomputer und der koordinierten Weltzeit (Universal Coordinated Time=UTC) zurück.

DatumsObj.getTimezoneOffset()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Die getTimezoneOffset-Methode gibt einen ganzzahligen Wert für die Anzahl der Minuten zurück, die zwischen der Uhrzeit des aktuellen Computers und der koordinierten Weltzeit (UTC) liegen. Diese Werte beziehen sich auf den Computer, auf dem das Skript ausgeführt wird. Bei einem Aufruf aus einem Serverskript werden die Werte des Servers zurückgegeben. Bei einem Aufruf aus einem Clientskript werden die Werte des Clients zurückgegeben.

Diese Zahl ist positiv, wenn Sie sich nach UTC befinden (z. B. Pazifische Zeit). Wenn Sie sich vor UTC befinden (z. B. in Japan), ist die Zahl negativ.

Beispiel: Ein Client in Los Angeles stellt am 1. Dezember eine Verbindung zu einem Server in New York City her. getTimezoneOffset gibt 480 zurück, wenn die Ausführung auf dem Client erfolgt, oder 300, wenn sie auf dem Server erfolgt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getTimezoneOffset-Methode.

function TZDemo(){
   var d, tz, s = "Die aktuelle Lokalzeit ist ";
   d = new Date();
   tz = d.getTimezoneOffset();
   if (tz < 0)
      s += tz / 60 + " Stunden vor GMT";
   else if (tz == 0)
      s += "GMT";
   else
      s += tz / 60 + " Stunden nach GMT";
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden

Betrifft: Date-Objekt


getUTCDate-Methode

Bestimmt aus einem Date-Objekt den Tag des Monats unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC).

DatumsObj.getUTCDate()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getDate-Methode, um den Tag des Monats unter Verwendung der Lokalzeit zu bestimmen.

Der Rückgabewert ist eine Ganzzahl zwischen 1 und 31, die den Tag des Monats in dem Date-Objekt angibt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCDate-Methode.

function UTCDateDemo(){
   var d, s = "Das heutige UTC-Datum lautet: ";
   d = new Date();
   s += (d.getUTCMonth() + 1 ) + ".";
   s += d.getUTCDate() + ".";
   s += d.getUTCFullYear();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getDate-Methode | setDate-Methode | setUTCDate-Methode

Betrifft: Date-Objekt


getUTCDay-Methode

Bestimmt aus einem Date-Objekt den Wochentag unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC).

DatumsObj.getUTCDay()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Verwenden Sie die getDay-Methode, um den Wochentag unter Verwendung der Lokalzeit zu bestimmen.

Der von der getUTCDay-Methode zurückgegebene Wert ist eine Ganzzahl zwischen 0 und 6, die für den Wochentag steht. Die Werte entsprechen den folgenden Wochentagen:

Wert | Wochentag
0 | Sonntag
1 | Montag
2 | Dienstag
3 | Mittwoch
4 | Donnerstag
5 | Freitag
6 | Samstag

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCDay-Methode.

function DatumDemo(){
   var d, tag, x, s = "Heute ist ";
   var x = new Array("Sonntag", "Montag", "Dienstag");
   x = x.concat("Mittwoch","Donnerstag", "Freitag");
   x = x.concat("Samstag");
   d = new Date();
   tag = d.getUTCDay();
   return(s += x[tag]);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getDay-Methode

Betrifft: Date-Objekt


getUTCFullYear-Methode

Bestimmt aus einem Date-Objekt die Jahreszahl unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC).

DatumsObj.getUTCFullYear()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um das Jahr unter Verwendung der Lokalzeit zu bestimmen, verwenden Sie die getFullYear-Methode.

Die getUTCFullYear-Methode gibt das Jahr als absolute Zahl zurück. Dadurch wird das Jahr-2000-Problem, das Verwechseln von Datumsangaben, die mit dem 01. Januar 2000 beginnen, mit denen, die mit dem 01. Januar 1900 beginnen, vermieden.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCFullYear-Methode.

function UTCDatumDemo(){
   var d, s = "Das heutige UTC-Datum lautet: ";
   d = new Date();
   s += (d.getUTCMonth() + 1) + ".";
   s += d.getUTCDate() + ".";
   s += d.getUTCFullYear();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getFullYear-Methode | setFullYear-Methode | setUTCFullYear-Methode

Betrifft: Date-Objekt


getUTCHours-Methode

Gibt den Stundenwert in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zurück.

DatumsObj.getUTCHours()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um die Zahl der seit Mitternacht vergangenenen Stunden unter Verwendung der Lokalzeit abzurufen, verwenden Sie die getHours-Methode.

Die getUTCHours-Methode gibt eine Ganzzahl zwischen 0 und 23 zurück, die die Zahl der seit Mitternacht vergangenen Stunden angibt. Der Wert Null (0) wird in zwei Fällen zurückgegeben: Die Zeit liegt vor 01:00:00 Uhr, oder es wurde keine Zeit im Date-Objekt gespeichert, als das Objekt erstellt wurde. Welcher Fall eingetreten ist, kann nur durch zusätzliches Überprüfen der Minuten und Sekunden festgestellt werden. Sind alle Werte Null, ist es fast sicher, dass die Zeit nicht im Date-Objekt gespeichert wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCHours-Methode.

function UTCZeitDemo(){
   var d, s = "Aktuelle koordinierte Weltzeit (UTC) ist: ";
   var c = ":";
   d = new Date();
   s += d.getUTCHours() + c;
   s += d.getUTCMinutes() + c;
   s += d.getUTCSeconds() + c;
   s += d.getUTCMilliseconds();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getHours-Methode | setHours-Methode | setUTCHours-Methode

Betrifft: Date-Objekt


getUTCMilliseconds-Methode

Bestimmt aus einem Date-Objekt die Zahl der Millisekunden unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC).

DatumsObj.getUTCMilliseconds()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um die Zahl der Millisekunden unter Verwendung der Lokalzeit zu bestimmen, verwenden Sie die getMilliseconds-Methode.

Der zurückgegebene Millisekundenwert liegt im Bereich zwischen 0 und 999.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCMilliSeconds-Methode.

function UTCZeitDemo(){
   var d, s = "Aktuelle koordinierte Weltzeit (UTC) ist: ";
   var c = ":";
   d = new Date();
   s += d.getUTCHours() + c;
   s += d.getUTCMinutes() + c;
   s += d.getUTCSeconds() + c;
   s += d.getUTCMilliseconds();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getMilliseconds-Methode | setMilliseconds-Methode | setUTCMilliseconds-Methode

Betrifft: Date-Objekt


getUTCMinutes-Methode

Gibt den Wert der Minuten in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zurück.

DatumsObj.getUTCMinutes()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um die gespeicherte Zahl der Minuten unter Verwendung der Lokalzeit abzurufen, verwenden Sie die getMinutes-Methode.

Die getUTCMinutes-Methode gibt einen ganzzahligen Wert zwischen 0 und 59 entsprechend dem im Date-Objekt gespeicherten Wert für die Minuten zurück. Der Wert Null (0) wird in zwei Fällen zurückgegeben: Die aktuelle Zeit beträgt weniger als 1 Minute nach der vollen Stunde, oder es wurde keine Zeit im Date-Objekt gespeichert, als das Objekt erstellt wurde. Welcher Fall eingetreten ist, kann nur durch zusätzliches Überprüfen der Stunden und Sekunden festgestellt werden. Sind alle Werte Null, ist es fast sicher, dass die Zeit nicht im Date-Objekt gespeichert wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCMinutes-Methode.

function UTCZeitDemo(){
   var d, s = "Aktuelle koordinierte Weltzeit (UTC) ist: ";
   var c = ":";
   d = new Date();
   s += d.getUTCHours() + c;
   s += d.getUTCMinutes() + c;
   s += d.getUTCSeconds() + c;
   s += d.getUTCMilliseconds();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getMinutes-Methode | setMinutes-Methode | setUTCMinutes-Methode

Betrifft: Date-Objekt


getUTCMonth-Methode

Bestimmt aus einem Date-Objekt den Monat unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC).

DatumsObj.getUTCMonth()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um den Monat unter Verwendung der Lokalzeit zu bestimmen, verwenden Sie die getMonth-Methode.

Die getUTCMonth-Methode gibt einen ganzzahligen Wert zwischen 0 und 11 entsprechend dem im Date-Objekt gespeicherten Wert für die Monate zurück. Der zurückgegebene ganzzahlige Wert ist nicht der herkömmliche Wert für den Monat, sondern der herkömmliche Wert abzüglich eins. Wenn "5 Jan 1996 08:47:00" in einem Date-Objekt gespeichert ist, gibt getUTCMonth 0 zurück.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCMonth-Methode.

function UTCDatumDemo(){
   var d, s = "Das heutige UTC-Datum lautet: ";
   d = new Date();
   s += (d.getUTCMonth() + 1) + ".";
   s += d.getUTCDate() + ".";
   s += d.getUTCFullYear();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getMonth-Methode | setMonth-Methode | setUTCMonth-Methode

Betrifft: Date-Objekt


getUTCSeconds-Methode

Gibt den Wert der Sekunden in einem Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) zurück.

DatumsObj.getUTCSeconds()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Um die Zahl der Sekunden unter Verwendung der Lokalzeit abzurufen, verwenden Sie die getSeconds-Methode.

Die getUTCSeconds-Methode gibt einen ganzzahligen Wert zwischen 0 und 59 entsprechend dem im Date-Objekt gespeicherten Wert für die Sekunden zurück. Der Wert Null (0) wird in zwei Fällen zurückgegeben: Die aktuelle Minute ist seit weniger als 1 Sekunde angebrochen, oder es wurde keine Zeit im Date-Objekt gespeichert, als das Objekt erstellt wurde. Welcher Fall eingetreten ist, kann nur durch zusätzliches Überprüfen der Minuten und Stunden festgestellt werden. Sind alle Werte Null, ist es fast sicher, dass die Zeit nicht im Date-Objekt gespeichert wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getUTCSeconds-Methode.

function UTCZeitDemo(){
   var d, s = "Aktuelle koordinierte Weltzeit (UTC) ist: ";
   var c = ":";
   d = new Date();
   s += d.getUTCHours() + c;
   s += d.getUTCMinutes() + c;
   s += d.getUTCSeconds() + c;
   s += d.getUTCMilliseconds();
   return(s);
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getSeconds-Methode | setSeconds-Methode | setUTCSeconds-Methode

Betrifft: Date-Objekt


getVarDate-Methode

Gibt den VT_DATE-Wert eines Date-Objekts zurück.

DatumsObj.getVarDate()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Die getVarDate-Methode wird zur Interaktion mit COM-Objekten, ActiveX®-Objekten oder anderen Objekten verwendet, die Datumswerte im VT_DATE-Format akzeptieren und zurückgeben, wie z. B. Visual Basic und VBScript. Das tatsächliche Format ist von der Ländereinstellung abhängig, und es sollte nicht in JScript erwidert werden.

Anforderungen

Version 3

Siehe auch

getDate-Methode | parse-Methode

Betrifft: Date-Objekt


getYear-Methode

Gibt den Wert des Jahres in einem Date-Objekt zurück.

DatumsObj.getYear()

Der erforderliche DatumsObj-Verweis ist ein Date-Objekt.

Hinweise

Diese Methode ist veraltet und wird nur für die Abwärtskompatibilität bereitgestellt. Verwenden Sie stattdessen die getFullYear-Methode.

Für die Jahre 1900 bis 1999 ist das Jahr ein zweistelliger Ganzzahlwert, der als Differenz zwischen dem gespeicherten Jahr und 1900 zurückgegeben wird. Für Daten außerhalb dieses Zeitraums, wird eine 4-stellige Jahreszahl zurückgegeben. 1996 wird z. B. als 96, 1825 und 2025 werden dagegen vollständig zurückgegeben.

Anmerkung Für JScript, Version 1.0: getYear gibt einen Wert zurück, der das Ergebnis der Subtraktion von 1900 von der Jahreszahl, die vom Date-Objekt zur Verfügung gestellt wird, ergibt. Dabei ist die Jahreszahl nicht relevant. Das Jahr 1899 wird z. B. als -1 und das Jahr 2000 als 100 zurückgegeben.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der getYear-Methode:

function DatumDemo(){
   var d, s = "Das heutige Datum lautet: ";
   d = new Date();
   s += d.getDate() + ".";
   s += (d.getMonth() + 1 ) + ".";
   s += d.getYear();
   return(s);
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getFullYear-Methode | getUTCFullYear-Methode | setFullYear-Methode | setUTCFullYear-Methode | setYear-Methode

Betrifft: Date-Objekt


indexOf-Methode

Gibt die Zeichenposition zurück, an der das erste Auftreten einer Teilzeichenfolge in einem String-Objekt vorkommt.

strObj.indexOf(Teilzeichenfolge[,Startindex])

Argumente

strObj
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Teilzeichenfolge
Erforderlich. Die im String-Objekt zu suchende Teilzeichenfolge.
Startindex
Optional. Ein ganzzahliger Wert, der die Startposition festlegt, bei der die Suche im String-Objekt begonnen werden soll. Ohne diese Angabe startet die Suche am Beginn der Zeichenfolge.

Hinweise

Die indexOf-Methode liefert einen ganzzahligen Wert, der die Startposition der zu suchenden Teilzeichenfolge innerhalb des String-Objekts angibt. Wird die Teilzeichenfolge nicht gefunden, ist der Rückgabewert -1.

Ist Startindex negativ, dann wird Startindex wie Null behandelt. Ist er höher als der höchste Zeichenpositionsindex, dann wird er wie der höchstmögliche Index behandelt.

Die Suche wird von links nach rechts durchgeführt. Ansonsten ist diese Methode mit lastindexOf identisch.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der indexOf-Methode.

function IndexDemo(str2){
   var str1 = "BABEBIBOBUBABEBIBOBU"
   var s = str1.indexOf(str2);
   return(s);
}

Anforderungen

Version 1

Siehe auch

lastIndexOf-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


isFinite-Methode

Gibt einen booleschen Wert zurück, der angibt, ob die angegebene Zahl endlich ist.

isFinite(Zahl)

Das erforderliche Argument Zahl ist ein beliebiger numerischer Wert.

Hinweise

Die isFinite-Methode gibt true zurück, falls Zahl einen anderen Wert als NaN, minus-unendlich oder plus-unendlich hat. In diesen drei Fällen wird false zurückgegeben.

Anforderungen

Version 3

Siehe auch

isNaN-Methode

Betrifft: Global-Objekt


isNaN-Methode

Gibt einen booleschen Wert zurück, der angibt, ob ein Wert der reservierte Wert NaN (not a number) ist.

isNaN(NumWert)

Das erforderliche Argument NumWert ist der Wert, der auf NaN getestet werden soll.

Hinweise

Die isNaN-Funktion gibt true zurück, falls der Wert NaN ist. Andernfalls wird false zurückgegeben. Diese Funktion wird typischerweise verwendet, um Rückgabewerte der Methoden parseInt und parseFloat zu testen.

Alternativ kann auch eine Variable mit sich selbst verglichen werden. Ergibt der Vergleich eine Ungleichheit, so hat die Variable den Wert NaN. Dies liegt daran, dass NaN der einzige Wert ist, der nicht mit sich selbst gleich ist.

Anforderungen

Version 1

Siehe auch

isFinite-Methode | NaN-Eigenschaft (Global) | parseFloat-Methode | parseInt-Methode

Betrifft: Global-Objekt


italics-Methode

Setzt das HTML-Tag <I> um Text in einem String-Objekt.

strVariable.italics( )
"Zeichenfolgenliteral".italics( )

Hinweise

Das folgende Beispiel veranschaulicht, wie die italics-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.italics( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<I>Dies ist ein String-Objekt</I>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

bold-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


item-Methode

Gibt das aktuelle Element der Auflistung zurück.

enumObj.item()

Der erforderliche enumObj-Verweis ist ein beliebiges Enumerator-Objekt.

Hinweise

Die item-Methode gibt das aktuelle Element zurück. Ist die Auflistung leer oder das aktuelle Element nicht definiert, so gibt die Methode undefined zurück.

Beispiel

Im folgenden Code dient die item-Methode dazu, ein Element der Auflistung Drives zurückzugeben.

function ZeigeLaufwerkliste(){
   var fso, s, n, e, x;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);
   s = "";
   for (; !e.atEnd(); e.moveNext())
   {
      x = e.item();
      s = s + x.DriveLetter;
      s += " - ";
      if (x.DriveType == 3)
         n = x.ShareName;
      else if (x.IsReady)
         n = x.VolumeName;
      else
         n = "[Laufwerk nicht bereit]";
      s +=  n + "<br>";
   }
   return(s);
}

Anforderungen

Version 3

Siehe auch

atEnd-Methode | moveFirst-Methode | moveNext-Methode

Betrifft: Enumerator-Objekt


join-Methode

Gibt eine Zeichenfolge zurück, die aus den verketteten Elementen eines Arrays besteht und durch ein angegebenes Trennzeichen getrennt wird.

Array.join(Separator)

Argumente

Array
Erforderlich. Ein Array-Objekt.
Separator
Erforderlich. Ein String-Objekt, das zum Trennen eines Elements des Arrays vom nächsten Element im resultierenden String-Objekt verwendet wird. Wenn es ausgelassen wird, werden die Arrayelemente mit einem Komma getrennt.

Hinweise

Hat ein Element des Arrays den Wert undefined oder null, wird es wie eine leere Zeichenfolge behandelt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der join-Methode.

function JoinDemo(){
   var a, b;
   a = new Array(0,1,2,3,4);
   b = a.join("-");
   return(b);
}

Anforderungen

Version 2

Siehe auch

Array-Objekt Methoden | String-Objekt

Betrifft: Array-Objekt


lastIndexOf-Methode

Gibt das letzte Auftreten einer Teilzeichenfolge in einem String-Objekt zurück.

strObj.lastIndexOf(Teilzeichenfolge[, Startindex])

Argumente

strObj
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Teilzeichenfolge
Erforderlich. Die im String-Objekt zu suchende Teilzeichenfolge.
Startindex
Optional. Ein ganzzahliger Wert, der die Startposition festlegt, bei der die Suche im String-Objekt begonnen werden soll. Ohne diese Angabe beginnt die Suche am Ende der Zeichenfolge.

Hinweise

Die lastIndexOf-Methode liefert einen ganzzahligen Wert, der die Startposition der zu suchenden Teilzeichenfolge innerhalb des String-Objekts angibt. Wird die Teilzeichenfolge nicht gefunden, ist der Rückgabewert -1.

Ist Startindex negativ, dann wird Startindex wie Null behandelt. Ist er höher als der höchste Zeichenpositionsindex, dann wird er wie der höchstmögliche Index behandelt.

Die Suche wird von rechts nach links durchgeführt. Ansonsten ist diese Methode mit indexOf identisch.

Das folgende Beispiel veranschaulicht die Verwendung der lastIndexOf-Methode.

function lastIndexDemo(str2)
{
   var str1 = "BABEBIBOBUBABEBIBOBU"
   var s = str1.lastIndexOf(str2);
   return(s);
}

Anforderungen

Version 1

Siehe auch

indexOf-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


lbound-Methode

Gibt den kleinsten Indexwert zurück, der in der angegebenen Dimension eines VBArrays verwendet wird.

Array.lbound(Dimension)

Argumente

Array
Erforderlich. Ein VBArray-Objekt.
Dimension
Optional. Die Dimension des VBArray-Objekts, deren kleinster Indexwert bestimmt werden soll. Erfolgt keine Dimensionsangabe, so gibt lbound den kleinsten Indexwert der ersten Dimension zurück.

Hinweise

Ist das VBArray leer, so gibt die lbound-Methode undefined zurück. Ist Dimension größer als die Anzahl der Dimensionen des VBArrays oder negativ, so erzeugt die Methode den Fehler "Index außerhalb des gültigen Bereichs".

Beispiel

Das folgende Beispiel besteht aus drei Teilen. Der erste Teil ist VBScript-Code zum Erstellen eines Visual Basic Safe Array-Objekts. Der zweite Teil ist JScript-Code, der die Anzahl der Dimensionen des Safe Array-Objekts und die untere Grenze der einzelnen Dimensionen bestimmt. Da das Safe Array in VBScript und nicht in Visual Basic erzeugt wird, ist die untere Grenze immer gleich Null. Beide Teile gehören in den <HEAD>-Abschnitt einer HTML-Seite. Der dritte Teil ist JScript-Code, der im <BODY>-Abschnitt den Aufruf der beiden anderen Teile bewirkt.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function ErzeugeVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         k = k + 1
      Next
   Next
   ErzeugeVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vba){
   var i, s="";
   var a = new VBArray(vba);
   for (i = 1; i <= a.dimensions(); i++)
   {
      s += "Die untere Grenze der Dimension ";
      s += i + " ist ";
      s += a.lbound(i)+ ".<BR>";
      return(s);
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT language="jscript">
   document.write(VBArrayTest(ErzeugeVBArray()));
</SCRIPT>
</BODY>

Anforderungen

Version 3

Siehe auch

dimensions-Methode | getItem-Methode | toArray-Methode | ubound-Methode

Betrifft: VBArray-Objekt


link-Methode

Setzt einen HTML-Anker mit einem HREF-Attribut um Text in einem String-Objekt.

strVariable.link(Verknüpfungszeichenfolge)
"Zeichenfolgenliteral".link(Verknüpfungszeichenfolge)

Das Verknüpfungszeichenfolge-Argument enthält den Text, der im HREF-Attribut des HTML-Ankers eingesetzt werden soll.

Hinweise

Rufen Sie die link-Methode auf, um aus einem String-Objekt einen Hyperlink zu generieren. Das folgende Beispiel veranschaulicht, wie die Methode dies durchführt:

var strVariable = "Dies ist ein Hyperlink";
strVariable = strVariable.link("http://www.microsoft.de");

strVariable hat nach der letzten Anweisung den folgenden Wert:

<A HREF="http://www.microsoft.de">Dies ist ein Hyperlink</A>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

anchor-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


localeCompare-Methode

Gibt einen Wert zurück, der angibt, ob zwei Zeichenfolgen im aktuellen Gebietsschema gleichwertig sind.

Zeichenfolgenvar.localeCompare(Zeichenfolgenausdr)

Argumente

Zeichenfolgenvar
Erforderlich. Ein String-Objekt oder Literal.
Zeichenfolgenausdr
Erforderlich. Zeichenfolge, die mit Zeichenfolgenausdr verglichen werden soll.

Hinweise

Die localeCompare-Methode führt einen Zeichenfolgenvergleich von Zeichenfolgenvar und Zeichenfolgenausdr durch, der das Gebietsschema beachtet, und gibt, abhängig von der Sortierreihenfolge des Standardgebietsschemas, -1, 0 oder +1 zurück.

Wenn Zeichenfolgenvar in der Sortierreihenfolge vor Zeichenfolgenausdr kommt, gibt localeCompare den Wert –1 zurück; wenn Zeichenfolgenvar in der Sortierreihenfolge nach Zeichenfolgenausdr kommt, wird +1 zurückgegeben. Ein Rückgabewert von Null bedeutet, dass die beiden Zeichenfolgen gleichwertig sind.

Anforderungen

Version 5.5

Siehe auch

toLocaleString

Betrifft: String-Objekt


log-Methode

Gibt den natürlichen Logarithmus einer Zahl zurück.

Math.log(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen natürlicher Logarithmus zu bestimmen ist.

Rückgabewert

Der Rückgabewert ist der natürliche Logarithmus von Zahl. Die Basis ist e.

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden

Betrifft: Math-Objekt


match-Methode

Führt eine Suche auf einer Zeichenfolge nach dem Muster eines regulären Ausdrucks durch und gibt ein Array zurück, das die Ergebnisse dieser Suche enthält.

StringObj.match(RegA)

Argumente

StringObj
Erforderlich. Das String-Objekt oder Zeichenfolgenliteral, in dem gesucht werden soll.
RegA
Erforderlich. Eine Instanz eines Regular Expression-Objekts, das das Muster des regulären Ausdrucks und verfügbare Flags enthält. Es kann außerdem ein Variablenname oder Zeichenfolgenliteral sein, das das Muster des regulären Ausdrucks und verfügbare Flags enthält.

Hinweise

Wenn die match-Methode keine Übereinstimmung findet, gibt sie den Wert null zurück. Wenn sie eine Übereinstimmung findet, gibt match ein Array zurück, und die Eigenschaften des globalen RegExp-Objekts werden aktualisiert, um die Ergebnisse der Übereinstimmung anzuzeigen.

Die von der match-Methode zurückgegebene Zeichenfolge hat drei Eigenschaften: input, index und lastIndex. Die input-Eigenschaft enthält die vollständige gesuchte Zeichenfolge. Die index-Eigenschaft enthält die Position der übereinstimmenden Teilzeichenfolgen in der vollständigen gesuchten Zeichenfolge. Die lastIndex-Eigenschaft enthält die Position, die dem letzten Zeichen in der letzten Übereinstimmung folgt.

Wenn der globale Flag (g) nicht gesetzt ist, enthält das Element Null des Arrays die vollständige Übereinstimmung, wobei die Elemente 1 – n alle Teilübereinstimungen enthalten, die innerhalb der Übereinstimmung aufgetreten sind. Dieses Verhalten ist mit dem Verhalten der exec-Methode ohne gesetzten globalen Flag identisch. Wenn der globale Flag gesetzt ist, enthalten die Elemente 0 - n alle aufgetretenen Übereinstimmungen.

Beispiel

Das folgende Beispiel zeigt die Verwendung der match-Methode.

function MatchDemo(){
   var r, re;         //Deklariert Variablen.
   var s = "The rain in Spain stays mainly in the plain. ";
   re = / ain/i;    //Erstellt Muster eines regulären Ausdrucks.
   r = s.match(re);   //Versucht Übereinstimmung auf Suchzeichenfolge.
   return(r);         //Gibt erstes Vorkommnis von "ain" zurück.
}

Das folgende Beispiel zeigt die Verwendung der übereinstimmenden Methode mit gesetztem g-Flag.

function MatchDemo(){
   var r, re;         //Deklariert Variablen.
   var s = "The rain in Spain stays mainly in the plain.";
   re = /ain/ig;      //Erstellt Muster eines regulären Ausdrucks.
   r = s.match(re);   //Versucht Übereinstimmung auf Suchzeichenfolge.
   return(r);         //Gibt Array zurück, das alle vier
                      // Vorkommnisse von "ain" enthält.
}

Die folgenden Codezeilen veranschaulichen die Verwendung eines Zeichenfolgenliterals mit der match-Methode.

var r, re = "Spain";
r = "The rain in Spain".replace(re, "Canada");

Anforderungen

Version 3

Siehe auch

exec-Methode | RegExp-Objekt | replace-Methode | search-Methode | Methoden des String-Objekts | test-Methode

Betrifft: String-Objekt


max-Methode

Gibt den größeren Wert von keinem oder mehr angegebenen numerischen Ausdrücken zurück.

Math.max([Zahl1[, Zahl2[. . . [,ZahlN]]]])

Die optionalen Argumente Zahl1, Zahl2, . . ., ZahlN sind auszuwertende numerische Ausdrücke.

Hinweise

Wenn keine Argumente bereitgestellt werden, entspricht der Rückgabewert NEGATIVE_INFINITY. Wenn ein Argument den Wert NaN hat, ist auch der Rückgabewert NaN.

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden | min-Methode | NEGATIVE_INFINITY-Eigenschaft

Betrifft: Math-Objekt


min-Methode

Gibt den kleineren Wert von keinem oder mehreren bereitgestellten numerischen Ausdrücken zurück.

Math.min([Zahl1[, Zahl2[. . . [,ZahlN]]]])

Die optionalen Argumente Zahl1, Zahl2, . . ., ZahlN sind auszuwertende numerische Ausdrücke.

Hinweise

Wenn keine Argumente bereitgestellt werden, entspricht der Rückgabewert POSITIVE_INFINITY. Wenn ein Argument den Wert NaN hat, ist auch der Rückgabewert NaN.

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden | max-Methode | POSITIVE_INFINITY-Eigenschaft

Betrifft: Math-Objekt


moveFirst-Methode

Setzt das aktuelle Element in der Auflistung auf das erste Element zurück.

enumObj.moveFirst( )

Der erforderliche enumObj-Verweis ist ein Enumerator-Objekt.

Hinweise

Befinden sich keine Elemente in der Auflistung, wird das aktuelle Element auf undefined gesetzt.

Beispiel

Im folgenden Beispiel wird die moveFirst-Methode verwendet, um die Elemente der Drives-Auflistung vom Anfang der Liste an auszuwerten.

function ZeigeErstesVerfuegbaresLW(){
   var fso, s, e, x;                //Variablen deklarieren.
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);  //Enumerator-Objekt erstellen.
   e.moveFirst();                   //Zum ersten Laufwerk gehen.
   s = "";                          //s initialisieren.
   do
   {
      x = e.item();                 //Auf Vorhandensein des Laufwerks testen.
      if (x.IsReady)                //Bereitschaft prüfen.
      {
         s = x.DriveLetter + ":";   //Als 1. Laufwerksbuchstaben s zuweisen.
         break;
      }
      else
         if (e.atEnd())             //Prüfen, ob Ende der Auflistung erreicht.
         {
            s = "Keine Laufwerke verfügbar";
            break;
         }
      e.moveNext();
   }
   while (!e.atEnd());              //Führen Sie dies aus, während Sie sich
                                    //nicht am Ende der Auflistung befinden.
   return(s);                       //Liste der verfügbaren Laufwerke
                                    //zurückgeben.
}

Anforderungen

Version 3

Siehe auch

atEnd-Methode | item-Methode | moveNext-Methode

Betrifft: Enumerator-Objekt


moveNext-Methode

Verschiebt das aktuelle Element zum nächsten Element der Auflistung.

enumObj.moveNext( )

Der erforderliche enumObj-Verweis ist ein Enumerator-Objekt.

Hinweise

Befindet sich das Enumerator-Objekt am Ende der Auflistung oder ist die Auflistung leer, so wird das aktuelle Element auf undefined gesetzt.

Im folgenden Beispiel wird die moveNext-Methode verwendet, um mit der Auswertung beim nächsten Laufwerk in der Drives-Auflistung fortzufahren.

function ZeigeLaufwerkliste(){
   var fso, s, n, e, x;                 //Variablen deklarieren.
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);      //Enumerator-Objekt erstellen.
   s = "";                              //s initialisieren.
   for (; !e.atEnd(); e.moveNext())
   {
      x = e.item();
      s = s + x.DriveLetter;            //Laufwerksbuchstaben hinzufügen.
      s += " - ";                       //Das Zeichen "-" hinzufügen.
      if (x.DriveType == 3)
         n = x.ShareName;               //Freigabenamen hinzufügen.
      else if (x.IsReady)
         n = x.VolumeName;              //Datenträgernamen hinzufügen.
      else
         n = "[Laufwerk nicht bereit]";       //Laufwerk als nicht bereit anzeigen.
      s +=  n + "<br>";
   }
   return(s);                           //Laufwerksstatus zurückgeben.
}

Anforderungen

Version 3

Siehe auch

atEnd-Methode | item-Methode | moveFirst-Methode

Betrifft: Enumerator-Objekt


parse-Methode

Analysiert eine Zeichenfolge mit einem Datum und liefert die Anzahl der Millisekunden zwischen diesem Datum und Mitternacht des 1. Januar 1970.

Date.parse(Datumswert)

Das erforderliche Argument Datumswert ist eine Zeichenfolge mit einem Datum im Format, z. B. "5 Januar 5 1997 08:47:00" oder ein VT_DATE-Wert, der von einem ActiveX®-Objekt oder einem anderen Objekt abgerufen wurde.

Hinweise

Die parse-Methode liefert einen ganzzahligen Wert für die Anzahl der Millisekunden zwischen Mitternacht, 1. Januar 1970, und dem mit DatumWert übergebenen Datum.

Die parse-Methode ist eine statische Methode des Date-Objekts. Da sie eine statische Methode ist, wird sie wie im folgenden Beispiel gezeigt und nicht als Methode eines erzeugten Date-Objekts aufgerufen.

var datumszeichenfolge = "November 1, 1997 10:15 AM";
Date.parse(datumszeichenfolge)

Die folgenden Regeln bestimmen, was die parse-Methode erfolgreich analysieren kann:

  • Ein kurzes Datum kann mit "/" oder "-" als Trennzeichen angegeben werden, muss aber dem amerikanischen Standardformat Monat/Tag/Jahr entsprechen.
  • Ein langes Datum der Form "10 Juli 1995" kann mit Jahr, Monat und Tag in beliebiger Reihenfolge angegeben werden, wobei das Jahr 2 oder 4 Stellen haben kann. Wenn Sie die 2stellige Form verwenden, muss die Jahreszahl größer, oder gleich 70 sein.
  • Jeder Text in Klammern wird als Kommentar behandelt. Die Klammern können geschachtelt werden.
  • Kommata und Leerzeichen werden als Begrenzungszeichen behandelt. Mehrfache Begrenzungszeichen sind erlaubt.
  • Die Namen der Monate oder Tage müssen mindestens zwei Zeichen lang sein. Namen mit zwei Zeichen, die nicht eindeutig sind, werden der letzten Übereinstimmung zugeordnet. Beispiel: "Ju" resultiert in Juli, nicht Juni.
  • Ein in Bezug auf den Rest des Datums falsch angegebener Wochentag wird ignoriert. Beispiel: "Tuesday 9 November 1996" wird akzeptiert und analysiert, obwohl der Tag tatsächlich ein Freitag ist. Das resultierende Date-Objekt enthält "Friday 9 November 1996".
  • Alle Standardzeitzonen, UTC (Universal Coordinated Time) und GMT (Greenwich Mean Time) werden von JScript verarbeitet.
  • Stunden, Minuten und Sekunden werden mit Doppelpunkten getrennt; allerdings müssen nicht alle Teile angegeben werden. "10:", "10:11" und "10:11:12" sind alle gültig.
  • Wird die 24-Stunden-Zeiteinteilung verwendet, ist der Zusatz von "PM" für Werte größer als 12 Uhr falsch. "23:15 PM" ist z. B. falsch.
  • Eine Zeichenfolge mit einem ungültigen Datum ist ein Fehler. So sind z. B. Zeichenfolgen mit zwei Jahresangaben oder zwei Monatsangaben falsch.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der parse-Methode. Geben Sie für die Funktion ein Datum an, und die Funktion gibt den Unterschied zwischen dem angegebenen Datum und 1. 1. 1970 zurück:

function HoleZeitTest(Testdatum){
   var d, s, t;                    //Variablen deklarieren.
   var MinMilli = 1000 * 60;       //Variablen initialisieren.
   var StdMilli = MinMilli * 60
   var TagMilli = StdMilli * 24
   t = Date.parse(Testdatum);       //Testdatum analysieren.
   s = "Es gibt "                // Rückgabezeichenfolge erstellen.
   s += Math.round(Math.abs(t / TagMilli)) + " Tage "
   s += "zwischen " + Testdatum + " und 1.1.70";
   return(s);                      //Ergebnisse zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden

Betrifft: Date-Objekt


parseFloat-Methode

Gibt eine aus einer Zeichenfolge konvertierte Fließkommazahl zurück.

parseFloat(NumZeichenfolge)

Das erforderliche Argument NumZeichenfolge ist eine Zeichenfolge, die eine Fließkommazahl enthält.

Hinweise

Die parseFloat-Methode gibt einen numerischen Wert zurück, der gleich der in NumZeichenfolge enthaltenen Zahl ist. Falls kein Präfix von NumZeichenfolge erfolgreich in eine Fließkommazahl umgewandelt werden kann, wird NaN (not a number) zurückgegeben.

parseFloat("abc")      // Gibt NaN zurück.
parseFloat("1.2abc")   // Gibt 1.2 zurück.

Eine Überprüfung auf NaN können Sie mit der isNaN-Methode durchführen.

Anforderungen

Version 1

Siehe auch

isNaN-Methode | parseInt-Methode | String-Objekt

Betrifft: Global-Objekt


parseInt-Methode

Gibt eine aus einer Zeichenfolge konvertierte Ganzzahl zurück.

parseInt(NumZeichenfolge[, Basis])

Argumente

NumZeichenfolge
Erforderlich. Eine Zeichenfolge, die in eine Zahl konvertiert werden soll.
Basis
Optional. Ein Wert zwischen 2 and 36, der die Basis der in NumZeichenfolge enthaltenen Zahl angibt. Wird dieser Wert nicht angegeben, werden Zeichenfolgen, die mit '0x' beginnen, als hexadezimal angenommen, und alle Zeichenfolgen, die mit '0' beginnen, werden als oktal angenommen. Alle anderen Zeichenfolgen werden als dezimal angenommen.

Hinweise

Die parseInt-Methode gibt einen ganzzahligen Wert zurück, der gleich der in NumZeichenfolge enthaltenen Zahl ist. Falls kein Präfix von NumZeichenfolge erfolgreich in eine Ganzzahl umgewandelt werden kann, wird NaN (Not a Number) zurückgegeben.

parseInt("abc")     // Gibt NaN zurück.
parseInt("12abc")   // Gibt 12 zurück.

Eine Überprüfung auf NaN können Sie mit der isNaN-Methode durchführen.

Anforderungen

Version 1

Siehe auch

isNaN-Methode | parseFloat-Methode | String-Objekt | valueOf-Methode

Betrifft: Global-Objekt


pop-Methode

Entfernt das letzte Element aus einem Array und gibt es zurück.

ArrayObj.pop( )

Der erforderliche ArrayObj-Verweis ist ein Array-Objekt.

Hinweise

Wenn das Array leer ist, wird undefined zurückgegeben.

Anforderungen

Version 5.5

Siehe auch

push-Methode

Betrifft: Array-Objekt


pow-Methode

Gibt den um einen angegebenen Exponenten potenzierten Wert eines Ausdrucks zurück.

Math.pow(Basis, Exponent)

Argumente

Basis
Erforderlich. Der Basiswert des Ausdrucks.
Exponent
Erforderlich. Der Exponentenwert des Ausdrucks.

Beispiel

Im folgenden Beispiel wird ein numerischer Ausdruck vom Typ BasisExponent mit dem Wert 1000 zurückgegeben:

Math.pow(10,3);

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden

Betrifft: Math-Objekt


push-Methode

Fügt an ein Array neue Elemente an und gibt die neue Länge des Arrays zurück.

ArrayObj.push([Element1 [Element2 [...[ElementN ]]]])

Argumente

ArrayObj
Erforderlich. Ein Array-Objekt.
Element1, Element2,...ElementN
Optional. Neue Elemente des Array-Objekts.

Hinweise

Die push-Methode fügt Elemente in der Reihenfolge an, in der sie angegeben wurden. Wenn eines der Argumente ein Array ist, wird es als ein Element hinzugefügt. Verwenden Sie die concat-Methode, um die Elemente von zwei oder mehr Arrays zu verknüpfen.

Anforderungen

Version 5.5

Siehe auch

Concat-Methode | pop-Methode

Betrifft: Array-Objekt


random-Methode

Gibt eine Pseudozufallszahl zwischen 0 und 1 zurück.

Math.random( )

Hinweise

Die generierte Pseudozufallszahl liegt zwischen 0 (einschließlich) und 1 (ausschließlich), d. h. die zurückgegebene Zahl kann 0 sein, wird aber stets kleiner als 1 sein. Der Zufallszahlengenerator erhält seinen Startwert automatisch beim erstmaligen Laden von JScript.

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden

Betrifft: Math-Objekt


replace-Methode

Gibt unter Verwendung regulärer Ausdrücke oder Suchzeichenfolgen eine Kopie der Zeichenfolge mit ersetztem Text zurück.

StringObj.replace(RegA, ErsetzenderText)

Argumente

StringObj
Erforderlich. Das String-Objekt oder Zeichenfolgenliteral, auf dem das Ersetzen durchgeführt wird. Diese Zeichenfolge wird durch die replace-Methode nicht verändert.
RegA
Erforderlich. Eine Instanz eines Regular Expression-Objekts oder Zeichenfolgenliterals. Wenn RegA keine Instanz eines Regular Expression-Objekts ist, wird RegA in eine Zeichenfolge konvertiert, und eine exakte Suche nach Ergebnissen wird durchgeführt. Es wird kein Versuch unternommen, die Zeichenfolge in einen regulären Ausdruck zu konvertieren.
ErsetzenderText
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral mit dem Text, der jede Entsprechung von RegA in StringObj ersetzen soll. In JScript 5.5 oder höher kann das Argument ErsetzenderText auch eine Funktion sein, die den ersetzenden Text zurückgibt.

Hinweise

Das Ergebnis der replace-Methode ist eine Kopie von StringObj, nachdem die angegebenen Ersetzungen durchgeführt wurden.

Jede der folgenden Übereinstimmungsvariablen kann zum Anzeigen der aktuellen Übereinstimmung und der Zeichenfolge, aus der sie resultierte, verwendet werden. Die Übereinstimmungsvariablen können zum Ersetzen von Text verwendet werden, auf dem die Ersatzzeichenfolge dynamisch bestimmt werden muss.

Zeichen | Bedeutung
$$ | $ (JScript 5.5 oder höher)
$& | Gibt den Teil von stringObj an, auf den das vollständige Muster passte. (JScript 5.5 oder höher)
$` | Gibt den Teil von stringObj an, der der Übereinstimmung vorangeht, die durch $& beschrieben wird. (JScript 5.5 oder höher)
$' | Gibt den Teil von stringObj an, der der Übereinstimmung folgt, die durch $& beschrieben wird. (JScript 5.5 oder höher)
$n | Die nte erfasste Teilübereinstimmung, wobei n eine einfache dezimale Dezimalstelle zwischen 1 und 9 ist. (JScript 5.5 oder höher)
$nn | Die nnte erfasste Teilübereinstimmung, wobei nn eine zweistellige Dezimalzahl zwischen 01 und 99 ist. (JScript 5.5 oder höher)

Wenn der ErsetzendeText eine Funktion ist, wird die Funktion für jede überinstimmende Teilzeichenfolge mit den Argumenten m + 3 aufgerufen, wobei m eine Anzahl von links schließenden Klammern in RegA ist. Das erste Argument ist eine Teilzeichenfolge, die übereinstimmte. Die nächsten m-Argumente sind alle Erfassungen, die aus der Suche resultieren. Das Argument m + 2 ist der Versatz in stringObj, in dem die Übereinstimmung auftrat, und das Argument m + 3 ist stringObj. Das Ergebnis ist eine Zeichenfolge, die daraus resultiert, dass jede übereinstimmende Teilzeichenfolge durch den entsprechenden Rückgabewert des Funktionsaufrufs ersetzt wird.

Die replace-Methode aktualisiert die Eigenschaften des globalen RegExp-Objekts.

Beispiel

Das folgende Beispiel zeigt die Verwendung der replace-Methode zum Ersetzen der ersten Instanz des Wortes "Der" durch das Wort "Ein."

function ReplaceDemo(){
   var r, re;                    //Variablen deklarieren.
   var ss = "Der Mann traf den Ball mit dem Schläger,\n .";
   ss += "während der Fänger den Ball mit dem Handschuh fing.";
   re = /Der/g;             //Muster des regulären Ausdrucks erstellen.
   r = s.replace(re, "Ein");    //"Der" durch "Ein" ersetzen.
   return(r);                   //Zeichenfolge mit der erfolgten Ersetzung zurückgeben.
}

Darüber hinaus kann die replace-Methode Teilausdrücke im Muster ersetzen. Im folgenden Beispiel wird jedes Wortpaar in der Zeichenfolge vertauscht.

function ReplaceDemo(){
   var r, re;                      //Variablen deklarieren.
   var ss = "The rain in Spain falls mainly in the plain.";
   re = /(\S+)(\s+)(\S+)/g;        //Muster des regulären Ausdrucks erstellen.
   r = ss.replace(re, "$3$2$1");   //Die einzelnen Wortpaare vertauschen.
   return(r);                      //Resultierende Zeichenfolge zurückgeben.
}

Das folgende Beispiel, das in JScript 5.5 und höher funktioniert, führt eine Konvertierung von Fahrenheit in Celsius durch und veranschaulicht die Verwendung einer Funktion als ErsetzenderText. Um zu sehen, wie diese Funktion funktioniert, geben Sie eine Zeichenfolge mit einer Zahl ein, die unmittelbar von einem "F" gefolgt wird (z. B. "Wasser kocht bei 212").

function f2c(s) {
  var test = /(\d+(\.\d*)?)F\b/g;    //Muster initialisieren.
  return(s.replace
    (test,
      function($0,$1,$2) {
        return((($1-32) * 5/9) + "C");
    }
     )
  );
}
document.write(f2c("Wasser gefriert bei 32F und kocht bei 212F."));

Anforderungen

Version 1

Siehe auch

exec-Methode | match-Methode | RegExp-Objekt | search-Methode | Methoden des String-Objekts | test-Methode

Betrifft: String-Objekt


reverse-Methode

Gibt ein Array-Objekt mit den Elementen in umgekehrter Reihenfolge zurück.

Array.reverse( )

Der erforderliche arrayObj-Verweis ist ein Array-Objekt.

Hinweise

Mit der reverse -Methode kann die Reihenfolge der Elemente eines Array-Objekts invertiert werden. Bei der Ausführung der Methode wird kein neues Array-Objekt erstellt.

Ist das Array nicht zusammenhängend, so werden durch die reverse-Methode Elemente erstellt, die die Lücken in dem Array füllen. Jedes dieser so erstellten Elemente hat den Wert undefined.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der reverse-Methode.

function ReverseDemo(){
   var a, l;                  //Variablen deklarieren.
   a = new Array(0,1,2,3,4);  //Array erstellen und füllen.
   l = a.reverse();           //Inhalt des Arrays umkehren.
   return(l);                 //Resultierendes Array zurückgeben.
}

Anforderungen

Version 2

Siehe auch

Array-Objekt Methoden

Betrifft: Array-Objekt


round-Methode

Rundet einen angegebenen numerischen Ausdruck auf die nächste Ganzzahl und gibt das Ergebnis zurück.

Math.round(Zahl)

Das erforderliche Argument Zahl ist der auf die nächste Ganzzahl zu rundende Wert.

Hinweise

Falls der Nachkommateil von Zahl 0,5 oder größer ist, ist der Rückgabewert gleich der kleinsten Ganzzahl größer als Zahl. Andernfalls gibt round die größte Ganzzahl kleiner oder gleich Zahl zurück.

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden

Betrifft: Math-Objekt


search-Methode

Gibt die Position der ersten Entsprechung einer Teilzeichenfolge in einer Suche mit einem regulären Ausdruck zurück.

StringObj.search(RegA)

Argumente

StringObj
Erforderlich. Das String-Objekt oder –Literal, auf dem die Suche durchgeführt wird.
RegA
Erforderlich. Eine Instanz eines Regular Expression-Objekts, das das Muster des regulären Ausdrucks und verfügbare Flags enthält.

Hinweise

Die search-Methode gibt an, ob eine Entsprechung vorhanden ist. Wenn eine Entsprechung gefunden wird, gibt die search-Methode einen Ganzzahlwert zurück, der den Versatz vom Anfang der Zeichenfolge anzeigt, an dem die Entsprechung auftrat. Wird keine Entsprechung gefunden, wird -1 zurückgegeben.

Beispiel

Das folgende Beispiel zeigt die Verwendung der search-Methode.

function SearchDemo(){
   var r, re;                   //Variablen deklarieren.
   var s = "The rain in Spain falls mainly in the plain.";
   re = /falls/i;            //Muster des regulären Ausdrucks erstellen.
   r = s.search(re);            //Zeichenfolge suchen.
   return(r);                   //Boolesche Ergebnis zurückgeben.
}

Anforderungen

Version 3

Siehe auch

exec-Methode | match-Methode | Regular Expression-Objekt | Regular Expression Syntax | replace-Methode | Methoden des String-Objekts | test-Methode

Betrifft: String-Objekt


setDate-Methode

Legt das numerische Tagesdatum des Date-Objekts unter Verwendung der Lokalzeit fest.

DatumsObj.setDate(Tagesdatum)

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Tagesdatum
Erforderlich. Ein numerischer Wert, der dem numerischen Tagesdatum entspricht.

Hinweise

Verwenden Sie die setUTCDate-Methode, um den Wert des Tagesdatums unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen.

Ist der Wert Tagesdatum größer als die Anzahl von Tagen des Monats im gespeicherten Date-Objekt oder eine negative Zahl, so wird das Tagesdatum auf einen Wert gleich Tagesdatum minus der Anzahl der Tage des gespeicherten Monats gesetzt. Ist das gespeicherte Datum z. B. der 5. Januar 1996 und wird setDate(32) ausgeführt, so ändert sich das Datum in 1. Februar 1996. Negative Zahlen haben ähnliche Auswirkung.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setDate-Methode.

function SetDateDemo(neuesdatum){
   var d, s;                  //Variablen deklarieren.
   d = new Date();            //Date-Objekt erstellen.
   d.setDate(neuesdatum);        //Datum auf neuesdatum festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toLocaleString();
   return(s);                 //Neu festgelegtes Datum zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getDate-Methode | getUTCDate-Methode | setUTCDate-Methode

Betrifft: Date-Objekt


setFullYear-Methode

Legt den Wert des Jahres in einem Date-Objekt unter Verwendung der Lokalzeit fest.

DatumsObj.setFullYear(Jahre[, Monate[, Datum]])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Jahre
Erforderlich. Ein dem Jahr entsprechender numerischer Wert.
Monate
Optional. Ein dem Monat entsprechender numerischer Wert. Muss angegeben werden, wenn Datum angegeben wird.
Datum
Optional. Ein dem Datum entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn das optionale Argument nicht angegeben wurde. Wenn z. B. das Argument Monate optional, aber nicht angegeben ist, verwendet JScript den von der getMonth-Methode zurückgegebenen Wert.

Wenn darüber hinaus der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert.

Um das Jahr unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen, verwenden Sie die setUTCFullYear-Methode.

Der Bereich der im Date-Objekt unterstützten Jahre beträgt ca. 285.616 Jahre in beide Richtungen ab 1970.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setFullYear-Methode:

function SetFullYearDemo(NeuesJahr){
   var d, s;                 //Variablen deklarieren.
   d = new Date();           //Date-Objekt erstellen.
   d.setFullYear(NeuesJahr);   //Jahr festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toLocaleString();
   return(s);                //Neues Datum zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getFullYear-Methode | getUTCFullYear-Methode | setUTCFullYear-Methode

Betrifft: Date-Objekt


setHours-Methode

Legt den Stundenwert in dem Date-Objekt unter Verwendung der Lokalzeit fest.

DatumsObj.setHours(Stunden[, Minuten[, Sekunden[, Millisekunden]]])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Stunden
Erforderlich. Ein den Stunden entsprechender numerischer Wert.
Minuten
Optional. Ein den Minuten entsprechender numerischer Wert. Muss angegeben werden, wenn eines der beiden folgenden Argumente verwendet wird.
Sekunden
Optional. Ein den Sekunden entsprechender numerischer Wert. Muss angegeben werden, wenn das folgende Argument verwendet wird.
Millisekunden
Optional. Ein den Millisekunden entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Minuten optional, aber nicht angegeben ist, verwendet JScript den von der getMinutes-Methode zurückgegebenen Wert.

Verwenden Sie die setUTCHours-Methode, um den Wert der Stunden unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen.

Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Ist das gespeicherte Datum z. B. "5 Jan 1996 00:00:00", ändert sich das Datum beim Ausführen von setHours(30) in "6 Jan 1996 06:00:00". Negative Zahlen haben ähnliche Auswirkung.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setHours-Methode.

function SetHoursDemo(nStd, nMin, nSek){
   var d, s;                     //Variablen deklarieren.
   d = new Date();               //Date-Objekt erstellen.
   d.setHours(nStd, nMin, nSek);  //Stunden, Minuten und Sekunden festlegen.
   s = "Die aktuelle Einstellung ist " + d.toLocaleString()
   return(s);                    //Neue Einstellung für das Datum zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getHours-Methode | getUTCHours-Methode | setUTCHours-Methode

Betrifft: Date-Objekt


setMilliseconds-Methode

Legt den Millisekundenwert im Date-Objekt unter Verwendung der Lokalzeit fest.

DatumsObj.setMilliseconds(Millisekunden)

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Millisekunden
Erforderlich. Ein numerischer Wert, der dem Millisekundenwert entspricht.

Hinweise

Um den Millisekundenwert mithilfe der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen, verwenden Sie die setUTCMilliseconds-Methode.

Wenn der Wert von Millisekunden größer als 999 oder eine negative Zahl ist, wird die gespeicherte Zahl der Sekunden (und Minuten, Stunden usw., falls erforderlich) um einen entsprechenden Betrag erhöht.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setMilliseconds-Methode.

function SetMilliSecondsDemo(nmSek){
   var d, s;                    //Variablen deklarieren.
   var sep = ":";               //Separator initialisieren.
   d = new Date();              //Date-Objekt erstellen.
   d.setMilliseconds(nmSek);    //Millisekunden festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toLocaleString() + sep + d.getMilliseconds();
   return(s);                   //Neue Einstellung für das Datum zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | setMilliseconds-Methode | getUTCMilliseconds-Methode | setUTCMilliseconds-Methode

Betrifft: Date-Objekt


setMinutes-Methode

Legt den Wert der Minuten in dem Date-Objekt unter Verwendung der Lokalzeit fest.

DatumsObj.setMinutes(Minuten[, Sekunden[, Millisekunden]])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Minuten
Erforderlich. Ein den Minuten entsprechender numerischer Wert.
Sekunden
Optional. Ein den Sekunden entsprechender numerischer Wert. Muss angegeben werden, wenn das Argument Millisekunden verwendet wird.
Millisekunden
Optional. Ein den Millisekunden entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Sekunden optional, aber nicht angegeben ist, verwendet JScript den von der getSeconds-Methode zurückgegebenen Wert.

Verwenden Sie die setUTCMinutes-Methode, um den Minutenwert unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen.

Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Ist das gespeicherte Datum z. B. "5 Jan 1996 00:00:00", ändert sich beim Ausführen von setMinutes(90) das Datum in "5 Jan 1996 01:30:00". Negative Zahlen haben eine ähnliche Auswirkung.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setMinutes-Methode.

function SetMinutesDemo(nMin, nSek){
   var d, s;                     //Variablen deklarieren.
   d = new Date();               //Date-Objekt erstellen.
   d.setMinutes(nMin, nSek);     //Minuten festlegen.
   s = "Die aktuelle Einstellung ist " + d.toLocaleString()
   return(s);                    //Neue Einstellung zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getMinutes-Methode | getUTCMinutes-Methode | setUTCMinutes-Methode

Betrifft: Date-Objekt


setMonth-Methode

Legt den Wert des Monats im Date-Objekt unter Verwendung der Lokalzeit fest.

DatumsObj.setMonth(Monate[, Datum])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Monate
Erforderlich. Ein dem Monat entsprechender numerischer Wert.
Datum
Optional. Ein dem Datum entsprechender numerischer Wert. Wenn nicht angegeben, wird der Wert aus einem Aufruf der getDate-Methode verwendet.

Hinweise

Verwenden Sie die setUTCMonth-Methode, um den Monatswert unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen.

Ist der Wert von Monate größer als 11 (Januar entspricht dem Monat 0) oder eine negative Zahl, wird das gespeicherte Jahr entsprechend geändert. Ist das gespeicherte Datum z. B. "5 Jan 1996" und wird setMonth(14) ausgeführt, ändert sich das Datum in "5 Mar 1997".

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setMonth-Methode.

function SetMonthDemo(neuermonat){
   var d, s;               //Variablen deklarieren
   d = new Date();         //Date-Objekt erstellen.
   d.setMonth(neuermonat);   //Monat festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toLocaleString();
   return(s);              //Neue Einstellung zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getMonth-Methode | getUTCMonth-Methode | setUTCMonth-Methode

Betrifft: Date-Objekt


setSeconds-Methode

Legt den Sekundenwert im Date-Objekt unter Verwendung der Lokalzeit fest.

DatumsObj.setSeconds(Sekunden[, Millisekunden])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Sekunden
Erforderlich. Ein den Sekunden entsprechender numerischer Wert.
Millisekunden
Optional. Ein den Millisekunden entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Millisekunden optional, aber nicht angegeben ist, verwendet JScript den von der getMilliseconds-Methode zurückgegebenen Wert.

Verwenden Sie die setUTCSeconds-Methode, um den Sekundenwert mithilfe der koordinierten Weltzeit (Universal Coordinated Time=UTC) festzulegen.

Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Ist das gespeicherte Datum z. B. "5 Jan 1996 00:00:00", ändert sich beim Ausführen von setSeconds(150) das Datum in "5 Jan 1996 00:02:30".

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setSeconds-Methode.

function SetSecondsDemo(nSek, nmSek){
   var d, s;                   //Variablen deklarieren.
   var sep = ":";
   d = new Date();             //Date-Objekt erstellen.
   d.setSeconds(nSek, nmSek);  //Sekunden und Millisekunden festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toLocaleString() + sep + d.getMilliseconds();
   return(s);                  //Neue Einstellung zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getSeconds-Methode | getUTCSeconds-Methode | setUTCSeconds-Methode

Betrifft: Date-Objekt


setTime-Methode

Legt die Werte für das Datum und die Zeit des Date-Objekts fest.

DatumsObj.setTime(Millisekunden)

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Millisekunden
Erforderlich. Ein ganzzahliger Wert für die seit Mitternacht, 1. Januar 1970, Greenwich Mean Time (GMT), vergangenen Millisekunden.

Hinweise

Ist Millisekunden ein negativer Wert, verweist er auf ein Datum vor 1970. Der Bereich verfügbarer Datumsangaben umfasst etwa 285.616 Jahre vor und nach 1970.

Das Festlegen des Datums und der Zeit mit der setTime-Methode ist unabhängig von Zeitzonen.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setTime-Methode.

function SetTimeTest(neuezeit){
   var d, s;                  //Variablen deklarieren.
   d = new Date();            //Date-Objekt erstellen.
   d.setTime(neuezeit);        //Zeit festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toUTCString();
   return(s);                 //Neue Einstellung zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getTime-Methode

Betrifft: Date-Objekt


setUTCDate-Methode

Legt das numerische Tagesdatum des Date-Objekts unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCDate(Tagesdatum)

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Tagesdatum
Erforderlich. Ein numerischer Wert, der dem numerischen Tagesdatum entspricht.

Hinweise

Verwenden Sie die setDate-Methode, um den Wert des Tagesdatums unter Verwendung der Lokalzeit festzulegen.

Ist der Wert Tagesdatum größer als die Anzahl von Tagen des Monats im gespeicherten Date-Objekt oder eine negative Zahl, so wird das Tagesdatum auf einen Wert gleich Tagesdatum minus der Anzahl der Tage des gespeicherten Monats gesetzt. Wenn z. B. das gespeicherte Datum der 05.01.1996 ist und setUTCDate(32) aufgerufen wird, dann wird das Datum in den 01.02.1996 geändert. Bei negativen Zahlen verhält es sich ähnlich.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCDate-Methode.

function SetUTCDateDemo(neuesdatum){
   var d, s;                   //Variablen deklarieren.
   d = new Date();             //Date-Objekt erstellen.
   d.setUTCDate(neuesdatum);      //Koordinierte Weltzeit (UTC) festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toUTCString();
   return(s);                  //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getDate-Methode | getUTCDate-Methode | setDate-Methode

Betrifft: Date-Objekt


setUTCFullYear-Methode

Legt die Jahreszahl im Date-Objekt unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCFullYear(Jahr[, Monat[, Tag]])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Jahr
Erforderlich. Ein dem Jahr entsprechender numerischer Wert.
Monat
Optional. Ein dem Monat entsprechender numerischer Wert. Muss angegeben werden, wenn auch Tag angegeben wird.
Tag
Optional. Ein dem Tagesdatum entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Monat optional, aber nicht angegeben ist, verwendet JScript den von der getUTCMonth-Methode zurückgegebenen Wert.

Wenn darüber hinaus der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert.

Um das Jahr unter Verwendung der Lokalzeit festzulegen, verwenden Sie die setFullYear-Methode.

Der von Date-Objekten unterstützte Bereich beträgt ca. 285.616 Jahre vor und nach 1970.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCFullYear-Methode

function SetUTCFullYearDemo(neuesjahr){
   var d, s;                   //Variablen deklarieren.
   d = new Date();             //Date-Objekt erstellen.
   d.setUTCFullYear(neuesjahr);  //Vollständige UTC-Jahreszahl festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toUTCString();
   return(s);                  //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getFullYear-Methode | getUTCFullYear-Methode | setFullYear-Methode

Betrifft: Date-Objekt


setUTCHours-Methode

Legt den Wert der Stunden des Date-Objekts unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCHours(Stunden[,Minuten[,Sekunden[,Millisekunden]]])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Stunden
Erforderlich. Ein den Stunden entsprechender numerischer Wert.
Minuten
Optional. Ein den Minuten entsprechender numerischer Wert. Muss angegeben werden, wenn Sekunden oder Millisekunden verwendet wird.
Sekunden
Optional. Ein den Sekunden entsprechender numerischer Wert. Muss angegeben werden, wenn das Argument Millisekunden verwendet wird.
Millisekunden
Optional. Ein den Millisekunden entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Minuten optional, aber nicht angegeben ist, verwendet JScript den von der getUTCMinutes-Methode zurückgegebenen Wert.

Um den Stundenwert unter Verwendung der Lokalzeit festzulegen, verwenden Sie die setHours-Methode.

Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Wenn z. B. das gespeicherte Datum "5 Jan 1996, 00:00:00.00" ist und setUTCHours(30) aufgerufen wird, dann wird das Datum in "6 Jan 1996, 06:00:00.00" geändert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCHours-Methode.

function SetUTCHoursDemo(nstd, nmin, nsek){
   var d, s;                        //Variablen deklarieren.
   d = new Date();                  //Date-Objekt erstellen.
   d.setUTCHours(nstd, nmin, nsek);  //UTC-Stunden, -Minuten und -Sekunden festlegen.
   s = "Die aktuelle Einstellung ist " + d.toUTCString()
   return(s);                       //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getHours-Methode | getUTCHours-Methode | setHours-Methode

Betrifft: Date-Objekt


setUTCMilliseconds-Methode

Legt den Millisekundenwert des Date-Objekts unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCMilliseconds(Millisekunden)

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Millisekunden
Erforderlich. Ein dem Millisekundenwert entsprechender numerischer Wert.

Hinweise

Um den Millisekundenwert unter Verwendung der Lokalzeit festzulegen, verwenden Sie die setMilliseconds-Methode.

Wenn der Wert von Millisekunden größer als 999 oder eine negative Zahl ist, wird ggf. der Sekundenwert (und falls erforderlich, auch der Minuten-, Stundenwert usw.) entsprechend erhöht.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCMilliseconds-Methode.

function SetUTCMillisecondsDemo(nmsek){
   var d, s;                           //Variablen deklarieren.
   var sep = ":";                      //Separator initialisieren.
   d = new Date();                     //Date-Objekt erstellen.
   d.setUTCMilliseconds(nmsek);        //UTC-Millisekunden festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toUTCString() + sep + d.getUTCMilliseconds();
   return(s);                          //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getMilliseconds-Methode | getUTCMilliseconds-Methode | setMilliseconds-Methode

Betrifft: Date-Objekt


setUTCMinutes-Methode

Legt den Minutenwert des Date-Objekts unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCMinutes(Minuten[, Sekunden[, Millisekunden]])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Minuten
Erforderlich. Ein den Minuten entsprechender numerischer Wert.
Sekunden
Optional. Ein den Sekunden entsprechender numerischer Wert. Muss angegeben werden, wenn Millisekunden verwendet wird.
Millisekunden
Optional. Ein den Millisekunden entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Sekunden optional, aber nicht angegeben ist, verwendet JScript den von der getUTCSeconds-Methode zurückgegebenen Wert.

Um den Minutenwert unter Verwendung der Lokalzeit zu ändern, verwenden Sie die setMinutes-Methode.

Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Wenn z. B. das gespeicherte Datum "5 Jan 1996, 00:00:00.00" ist und setUTCMinutes(70) aufgerufen wird, dann wird das Datum in "5 Jan 1996, 01:10:00.00" geändert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCMinutes-Methode:

function SetUTCMinutesDemo(nmin, nsek){
   var d, s;                    //Variablen deklarieren.
   d = new Date();              //Date-Objekt erstellen.
   d.setUTCMinutes(nmin,nsek);  //UTC-Minuten festlegen.
   s = "Die aktuelle Einstellung ist " + d.toUTCString()
   return(s);                   //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getMinutes-Methode | getUTCMinutes-Methode | setMinutes-Methode

Betrifft: Date-Objekt


setUTCMonth-Methode

Legt den Wert des Monats des Date-Objekts unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCMonth(Monat[, Tag])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Monat
Erforderlich. Ein dem Monat entsprechender numerischer Wert.
Tag
Optional. Ein dem Tagesdatum entsprechender numerischer Wert. Falls nicht angegeben, wird der Wert eines Aufrufs der getUTCDate-Methode verwendet.

Hinweise

Um den Monat unter Verwendung der Lokalzeit festzulegen, verwenden Sie die setMonth-Methode.

Wenn der Wert Monat größer als 11 (Januar ist Monat 0) oder eine negative Zahl ist, wird das gespeicherte Jahr entsprechend erhöht oder gesenkt. Wenn z. B. das gespeicherte Datum "5 Jan 1996, 00:00:00.00" ist und setUTCMonth(14) aufgerufen wird, dann wird das Datum in "5 Mar 1997, 00:00:00.00" geändert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCMonth-Methode.

function SetUTCMonthDemo(neuermonat){
   var d, s;                       //Variablen deklarieren.
   d = new Date();                 //Date-Objekt erstellen.
   d.setUTCMonth(neuermonat);        //UTC-Monat festlegen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toUTCString();
   return(s);                      //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getMonth-Methode | getUTCMonth-Methode | setMonth-Methode

Betrifft: Date-Objekt


setUTCSeconds-Methode

Legt den Sekundenwert des Date-Objekts unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) fest.

DatumsObj.setUTCSeconds(Sekunden[, Millisekunden])

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Sekunden
Erforderlich. Ein den Sekunden entsprechender numerischer Wert.
Millisekunden
Optional. Ein den Millisekunden entsprechender numerischer Wert.

Hinweise

Alle set-Methoden, die optionale Argumente annehmen, verwenden den von den entsprechenden get-Methoden zurückgegebenen Wert, wenn kein optionales Argument angegeben wurde. Wenn z. B. das Argument Millisekunden optional, aber nicht angegeben ist, verwendet JScript den von der getUTCMilliseconds-Methode zurückgegebenen Wert.

Um den Sekundenwert unter Verwendung der Lokalzeit festzulegen, verwenden Sie die setSeconds-Methode.

Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Wenn z. B. das gespeicherte Datum "5 Jan 1996, 00:00:00.00" ist und setUTCSeconds(150) aufgerufen wird, dann wird das Datum in "5 Jan 1996, 00:02:30.00" geändert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der setUTCSeconds-Methode.

function SetUTCSecondsDemo(nsek, nmsek){
   var d, s;                       //Variablen deklarieren.
   d = new Date();                 //Date-Objekt erstellen.
   d.setUTCSeconds(nsek, nmsek);   //UTC-Sekunden und -Millisekunden festlegen.
   s = "Die aktuelle Einstellung der UTC-Millisekunden ist ";
   s += d.getUTCMilliseconds();    //Neue Einstellung übertragen.
   return(s);                      //Neue Einstellung zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | getSeconds-Methode | getUTCSeconds-Methode | setSeconds-Methode

Betrifft: Date-Objekt


setYear-Methode

Legt den Wert des Jahres des Date-Objekts fest.

DatumsObj.setYear(Jahr)

Argumente

DatumsObj
Erforderlich. Ein beliebiges Date-Objekt.
Jahr
Erforderlich. Ein numerischer Wert entsprechend dem Jahr minus 1900.

Hinweise

Diese Methode ist veraltet und wird nur für die Abwärtskompatibilität bereitgestellt. Verwenden Sie stattdessen die setFullYear-Methode.

Um die Jahreszahl eines Date-Objekts auf 1997 zu setzen, verwenden Sie den Aufruf setYear(97). Um die Jahreszahl auf 2010 zu setzen, verwenden Sie den Aufruf setYear(2010). Um das Jahr in einem Bereich von 0 bis 99 zu setzen, verwenden Sie die setFullYear-Methode.

Anmerkung Für JScript, Version 1.0: setYear verwendet einen Wert, der sich aus der Addition von 1900 und der Jahreszahl, die von numYear zur Verfügung gestellt wird, ergibt. Dabei ist die Jahreszahl nicht relevant. Wenn Sie z. B. das Jahr 1899 festlegen möchten, ist numYear -1 und wenn Sie das Jahr 2000 festlegen möchten, so ist numYear 100.

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | getFullYear-Methode | getUTCFullYear-Methode | getYear-Methode | setFullYear-Methode | setUTCFullYear-Methode

Betrifft: Date-Objekt


shift-Methode

Entfernt das erste Element aus einem Array und gibt es zurück.

ArrayObj.shift( )

Der erforderliche ArrayObj-Verweis ist ein Array-Objekt.

Hinweise

Die shift-Methode entfernt das erste Element aus einem Array und gibt es zurück.

Anforderungen

Version 5.5

Siehe auch

unshift-Methode

Betrifft: Array-Objekt


sin-Methode

Gibt den Sinus einer Zahl zurück.

Math.sin(Zahl)

Das Argument Zahl ist ein numerischer Ausdruck, für den der Sinus erforderlich ist.

Hinweis

Der Rückgabewert ist der Sinus des numerischen Arguments.

Anforderungen

Version 1

Siehe auch

acos-Methode | asin-Methode | atan-Methode | cos-Methode | Math-Objekt Methoden | tan-Methode

Betrifft: Math-Objekt


slice-Methode (Array)

Gibt einen Abschnitt eines Arrays zurück.

Array.slice(Beginn[, Ende])

Argumente

Array
Erforderlich. Ein Array-Objekt.
Beginn
Erforderlich. Der Index am Beginn des angegebenen Abschnitts von Array.
Ende
Optional. Der Index am Ende des angegebenen Abschnitts von Array.

Hinweise

Die slice-Methode gibt ein Array-Objekt zurück, das den angegebenen Abschnitt von Array enthält.

Die slice-Methode kopiert bis zum Element, das durch Ende angegeben wird, aber nicht einschließlich dieses Elements. Falls Beginn negativ ist, wird es als Länge + Beginn behandelt, wobei Länge der Länge des Arrays entspricht. Falls Ende negativ ist, wird es als Länge + Ende behandelt, wobei Länge der Länge des Arrays entspricht. Falls Ende weggelassen wird, wird die Extrahierung bis zum Ende von Array fortgesetzt. Falls Ende vor Beginn auftritt, werden keine Elemente in das neue Array kopiert.

Beispiel

Im folgenden Beispiel werden alle Elemente außer dem letzten von meinArray in neuesArray kopiert:

neuesArray = meinArray.slice(0, -1)

Anforderungen

Version 3

Siehe auch

slice-Methode (String) | String-Objekt

Betrifft: Array-Objekt


slice-Methode (String)

Gibt einen Abschnitt einer Zeichenfolge zurück.

StringObj.slice(Beginn[, Ende])

Argumente

StringObj
Erforderlich. Ein String-Objekt oder Zeichenfolgenliteral.
Beginn
Erforderlich. Der Index am Beginn des gewünschten Abschnitts von StringObj.
Ende
Optional. Der nullbasierte Index am Ende des gewünschten Abschnitts von StringObj.

Hinweise

Die slice-Methode gibt ein String-Objekt zurück, das den angegebenen Abschnitt von StringObj enthält.

Die slice-Methode kopiert bis zum Element, das durch Ende angegeben wird, aber nicht einschließlich dieses Elements. Falls Beginn negativ ist, wird es als Länge + Beginn behandelt, wobei Länge der Länge des Arrays entspricht. Falls Ende negativ ist, wird es als Länge + Ende behandelt, wobei Länge der Länge des Arrays entspricht. Falls Ende weggelassen wird, wird die Extrahierung bis zum Ende von Array fortgesetzt. Falls Ende vor Beginn auftritt, werden keine Elemente in das neue Array kopiert.

Beispiel

Im folgenden Beispiel geben die beiden Aufrufe der slice-Methode dasselbe Ergebnis zurück. Im zweiten Beispiel weist die negative eins (-1) auf das letzte Zeichen in str1 als dem Endpunkt.

str1.slice(0)
str1.slice(0,-1)

Anforderungen

Version 3

Siehe auch

Array-Objekt | slice-Methode (Array) | Methoden des String-Objekts

Betrifft: String-Objekt


small-Methode

Setzt das HTML-Tag <SMALL> um Text in einem String-Objekt.

strVariable.small( )
"Zeichenfolgenliteral".small( )

Hinweise

Das folgende Beispiel veranschaulicht, wie die small-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.small( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<SMALL>Dies ist ein String-Objekt</SMALL>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

big-Methode | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


sort-Methode

Gibt ein Array-Objekt mit sortierten Elementen zurück.

Array.sort(Sortierfunktion)

Argumente

Array
Erforderlich. Ein Array-Objekt.
Sortierfunktion
Optional. Der Name der Funktion für die Bestimmung der Reihenfolge der Elemente. Ohne Angabe werden die Elemente in aufsteigender ASCII-Zeichen-Reihenfolge sortiert.

Hinweise

Die sort-Methode sortiert innerhalb des Array-Objekts. Während der Ausführung wird kein neues Array-Objekt erstellt.

Geben Sie eine Funktion im Argument Sortierfunktion an, so muss diese einen der folgenden Werte zurückgeben:

  • Einen negativen Wert, wenn das erste übergebene Argument kleiner als das zweite übergebene Argument ist.
  • Null, wenn beide Argumente gleich sind.
  • Einen positiven Wert, wenn das erste Argument größer als das zweite ist.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der sort-Methode.

function SortDemo(){
   var a, l;                       //Variablen deklarieren.
   a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
   l = a.sort();                   //Array sortieren.
   return(l);                      //Sortiertes Array zurückgeben.
}

Anforderungen

Version 2

Siehe auch

Array-Objekt Methoden

Betrifft: Array-Objekt


splice-Methode

Entfernt Elemente aus einem Array und fügt gegebenenfalls an ihrer Stelle neue Elemente ein, wobei sie die gelöschten Elemente zurückgibt.

ArrayObj.splice(Start, Löschanzahl, [Element1[, Element2[, ...[,ElementN]]]])

Argumente

ArrayObj
Erforderlich. Ein Array-Objekt.
Start
Erforderlich. Die nullbasierte Position im Array, ab der das Entfernen von Elementen beginnen soll.
Löschanzahl
Erforderlich. Die Anzahl der Elemente, die entfernt werden sollen.
Element1, Element2,...,ElementN
Optional. Elemente, die an Stelle der gelöschten Elemente in das Array eingefügt werden sollen.

Hinweise

Die splice-Methode ändert ArrayObj, indem sie die angegebene Anzahl von Elementen ab der Position Start entfernt und neue Elemente einfügt. Die gelöschten Elemente werden als neues array-Objekt zurückgegeben.

Anforderungen

Version 5.5

Siehe auch

slice-Methode (Array)

Betrifft: Array-Objekt


split-Methode

Gibt das sich ergebende Array von Zeichenfolgen zurück, das entsteht, wenn eine Zeichenfolge in Teilzeichenfolgen unterteilt wird.

StringObj.split([Separator[, Begrenzung]])

Argumente

StringObj
Erforderlich. Das zu unterteilende String-Objekt oder Zeichenfolgenliteral. Dieses Objekt wird von der split-Methode nicht verändert.
Separator
Optional. Eine Zeichenfolge bzw. eine Instanz eines Regular Expression-Objekts, die ein oder mehrere Zeichen zum Teilen der Zeichenfolge identifizieren. Wird der Separator ausgelassen, wird ein Array mit einem Element, das eine vollständige Zeichenfolge enthält, zurückgegeben.
Begrenzung
Optional. Ein Wert, der zur Begrenzung der Anzahl von Elementen verwendet wird, die im Array zurückgegeben werden.

Hinweise

Das Ergebnis der split-Methode ist ein Array von Zeichenfolgen. Diese ergeben sich durch Unterteilung des String-Objekts oder Zeichenfolgenliterals an den Stellen, an denen Separator in StringObj auftaucht. Der Separator wird nicht als Bestandteil eines Arrayelements zurückgegeben.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der split-Methode:

function SplitDemo(){
   var s, ss;
   var s = "The rain in Spain falls mainly in the plain. ";
   // Teilen bei jedem Leerzeichen.
   ss = s.split(" ");
   return(ss);
}

Anforderungen

Version 3

Siehe auch

concat-Methode | RegExp-Objekt | Regular Expression-Objekt | Syntax regulärer Ausdrücke | Methoden des String-Objekts

Betrifft: String-Objekt


sqrt-Methode

Gibt die Quadratwurzel einer Zahl zurück.

Math.sqrt(Zahl)

Das Argument Zahl ist ein numerischer Ausdruck.

Hinweise

Ist Zahl negativ, so wird der Wert NaN zurückgegeben.

Anforderungen

Version 1

Siehe auch

Math-Objekt Methoden | SQRT1_2-Eigenschaft | SQRT2-Eigenschaft

Betrifft: Math-Objekt


strike-Methode

Setzt das HTML-Tag <STRIKE> um Text in einem String-Objekt.

strVariable.strike( )
"Zeichenfolgenliteral".strike( )

Hinweise

Das folgende Beispiel veranschaulicht, wie die strike-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.strike( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<STRIKE>Dies ist ein String-Objekt</STRIKE>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


sub-Methode

Setzt das HTML-Tag <SUB> um einen Text in einem String-Objekt.

strVariable.sub( )
"Zeichenfolgenliteral".sub( )

Hinweise

Das folgende Beispiel veranschaulicht, wie die sub-Methode funktioniert:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.sub( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<SUB>Dies ist ein String-Objekt</SUB>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts | sup-Methode

Betrifft: String-Objekt


substr-Methode

Gibt eine Teilzeichenfolge zurück, die an der angegebenen Stelle beginnt und eine angegebene Länge hat.

StringVar.substr(Beginn [, Länge])

Argumente

StringVar
Erforderlich. Ein Zeichenfolgenliteral oder String-Objekt, aus dem die Teilzeichenfolge extrahiert werden soll.
Beginn
Erforderlich. Die Anfangsposition der gewünschten Teilzeichenfolge. Der Index des ersten Zeichens der Zeichenfolge ist Null.
Länge
Optional. Die Anzahl der Zeichen, die die zurückgegebene Teilzeichenfolge enthalten soll.

Hinweise

Falls Länge Null oder negativ ist, wird eine leere Zeichenfolge zurückgegeben. Falls nicht angegeben, wird die Teilzeichenfolge bis zum Ende von StringVar fortgesetzt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der substr-Methode.

function SubstrDemo(){
   var s, ss;                //Variablen deklarieren.
   var s = "The rain in Spain falls mainly in the plain.";
   ss = s.substr(12, 5);  //Teilzeichenfolge übertragen
   return(ss);               //Gibt "Spain" zurück.
}

Anforderungen

Version 3

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts | substring-Methode

Betrifft: String-Objekt


substring-Methode

Gibt eine Teilzeichenfolge ab der angegebenen Position in einem String-Objekt zurück.

strVariable.substring(Beginn, Ende)
"Zeichenfolgenliteral".substring(Beginn, Ende)

Argumente

Beginn
Der nullbasierte Index für den Beginn der gewünschten Teilzeichenfolge.
Ende
Der nullbasierte Index für das Ende der gewünschten Teilzeichenfolge.

Hinweise

Die substring-Methode gibt eine Zeichenfolge zurück, die die Teilzeichenfolge von Beginn bis, aber nicht einschließlich, Ende enthält.

Die substring-Methode verwendet einen niedrigeren Wert von Beginn und Ende als den Anfangspunkt der Teilzeichenfolge. strvar.substring(0, 3) und strvar.substring(3, 0) geben z. B. dieselbe Teilzeichenfolge zurück.

Falls entweder Beginn oder Ende den Wert NaN oder einen negativen Wert haben, wird der entsprechende Wert durch Null ersetzt.

Die Länge einer Teilzeichenfolge entspricht dem absoluten Wert der Differenz zwischen Beginn und Ende. Die Länge der Teilzeichenfolge, die z. B. in strvar.substring(0, 3) und strvar.substring(3, 0) zurückgegeben wird, ist drei.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der substring-Methode:

function SubstringDemo(){
   var s, ss;                         //Variablen deklarieren.
   var s = "The rain in Spain falls mainly in the plain.";
   ss = s.substring(12, 17)   //Teilzeichenfolge übertragen.
   return(ss);                     //Teilzeichenfolge zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts | substr-Methode

Betrifft: String-Objekt


sup-Methode

Setzt das HTML-Tag <SUP> um Text in einem String-Objekt.

strVariable.sup( )
"Zeichenfolgenliteral".sup( )

Hinweise

Das folgende Beispiel veranschaulicht, wie die sup-Methode funktioniert.

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.sup( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

<SUP>Dies ist ein String-Objekt</SUP>

Es wird nicht überprüft, ob die Zeichenfolge bereits die Tags enthält.

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts | sub-Methode

Betrifft: String-Objekt


tan-Methode

Gibt den Tangens einer Zahl zurück.

Math.tan(Zahl)

Das erforderliche Argument Zahl ist ein numerischer Ausdruck, dessen Tangens zu bestimmen ist.

Hinweis

Der Rückgabewert ist der Tangens von Zahl.

Anforderungen

Version 1

Siehe auch

acos-Methode | asin-Methode | atan-Methode | atan2-Methode | cos-Methode | Math-Objekt Methoden | sin-Methode

Betrifft: Math-Objekt


test-Methode

Gibt einen booleschen Wert zurück, der angibt, ob ein Muster in einer durchsuchten Zeichenfolge vorhanden ist.

RegA.test(Zeichenfolge)

Argumente

RegA
Erforderlich. Eine Instanz eines Regular Expression-Objekts, das das Muster des regulären Ausdrucks und verfügbare Flags enthält.
Zeichenfolge
Erforderlich. Die zu durchsuchende Zeichenfolge.

Hinweise

Die test-Methode prüft, ob ein Muster in einer Zeichenfolge vorhanden ist, und gibt true zurück, wenn dem so ist. Ansonsten wird false zurückgegeben.

Das RegExp-Objekt wird von der test-Methode nicht geändert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der test-Methode. Übergeben Sie der Funktion ein Muster des regulären Ausdrucks und eine Zeichenfolge, damit Sie dieses Beispiel verwenden können. Die Funktion testet, ob das Muster des regulären Ausdrucks in der Zeichenfolge vorkommt und gibt eine Zeichenfolge zurück, die die Ergebnisse dieser Suche anzeigt:

function TestDemo(re, s){
   var s1;                         //Variable deklarieren.
   // Testen der Zeichenfolge auf Vorkommen des regulären Ausdruckes.
   if (re.test(s))                 //Testen auf das Vorhandensein.
      s1 = " enthält ";           //s enthält das Muster.
   else
      s1 = " enthält nicht ";   //s enthält das Muster nicht.
   return("'" + s + "'" + s1 + "'"+ re.source + "'"); //Zeichenfolge zurückgeben.
}

Anforderungen

Version 3

Siehe auch

RegExp-Objekt | Regular Expression-Objekt | Regular Expression-Objekt Methoden | Regular Expression-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: Regular Expression-Objekt


toArray-Methode

Konvertiert ein VBArray-Objekt in ein Standard-JScript-Array und gibt dieses zurück.

Array.toArray( )

Der erforderliche safeArray-Verweis ist ein VBArray-Objekt.

Hinweise

Bei der Umwandlung wird das mehrdimensionale VBArray-Objekt in ein eindimensionales JScript-Array konvertiert. Dies kann man sich als eine n-fach (Anzahl der Dimensionen) geschachtelte Schleife vorstellen, wobei die innerste Schleife über die erste Dimension und die äußerste Schleife über die letzte Dimension läuft. Ein VBArray-Objekt mit z. B. zwei Dimensionen mit drei Zeilen und drei Spalten wird wie folgt in ein JScript-Array konvertiert:

Angenommen, das VBArray-Objekt enthält: (1, 2, 3), (4, 5, 6), (7, 8, 9). Nach der Umwandlung enthält das JScript-Array: 1, 2, 3, 4, 5, 6, 7, 8, 9.

Derzeit ist es nicht möglich, ein JScript-Array in ein VBArray-Objekt umzuwandeln.

Beispiel

Das folgende Beispiel besteht aus drei Teilen. Der erste Teil ist VBScript-Code zum Erstellen eines Visual Basic Safe Array-Objekts. Der zweite Teil enthält JScript-Code für die Umwandlung des Visual Basic Safe Array in ein JScript-Array. Beide Teile gehören in den <HEAD>-Abschnitt einer HTML-Seite. Der dritte Teil ist JScript-Code, der im <BODY>-Abschnitt den Aufruf der beiden anderen Teile bewirkt.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function ErzeugeVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         document.writeln(k)
         k = k + 1
      Next
      document.writeln("<BR>")
   Next
   ErzeugeVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vbarray)
{
   var a = new VBArray(vba);
   var b = a.toArray();
   var i;
   for (i = 0; i < 9; i++)
   {
      document.writeln(b[i]);
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JScript">
<!--
   VBArrayTest(ErzeugeVBArray());
-->
</SCRIPT>
</BODY>

Anforderungen

Version 3

Siehe auch

dimensions-Methode | getItem-Methode | lbound-Methode | ubound-Methode

Betrifft: VBArray-Objekt


toDateString-Methode

Gibt ein Datum als Zeichenfolgenwert zurück.

ObjDate.toDateString( )

Der erforderliche ObjDate-Verweis ist ein Date-Objekt.

Hinweise

Die toDateString-Methode gibt einen Zeichenfolgenwert zurück, der das Datum in der aktuellen Zeitzone in einem benutzerfreundlichen, leicht lesbaren Format enthält.

Anforderungen

Version 5.5

Siehe auch

toTimeString-Methode | toLocaleDateString-Methode

Betrifft: Date-Objekt


toExponential-Methode

Gibt eine Zeichenfolge zurück, die eine in exponentieller Notation dargestellte Zahl enthält.

NumObj.toExponential([Bruchstellen])

Argumente

NumObj
Erforderlich. Ein Number-Objekt.
Bruchstellen
Optional. Anzahl der Ziffern nach dem Dezimalkomma. Muss im Bereich 0–20 (einschließlich) liegen.

Hinweise

Die toExponential-Methode gibt eine Zeichenfolgendarstellung einer Zahl in exponentieller Notation zurück. Die Zeichenfolge enthält eine Ziffer vor dem Dezimalkomma des Signifikanden und kann Ziffern nach dem Dezimalkomma (Bruchstellen) enthalten.

Wenn Bruchstellen nicht angegeben wird, gibt die toExponential-Methode so viele Ziffern zurück wie zur eindeutigen Angabe der Zahl erforderlich.

Anforderungen

Version 5.5

Siehe auch

toFixed-Methode | toPrecision-Methode

Betrifft: Number-Objekt


toFixed-Methode

Gibt eine Zeichenfolge zurück, die eine Zahl in Festkommanotation darstellt.

NumObj.toFixed([Bruchstellen])

Argumente

NumObj
Erforderlich. Ein Number-Objekt.
Bruchstellen
Optional. Anzahl der Ziffern nach dem Dezimalkomma. Muss im Bereich 0–20 (einschließlich) liegen.

Hinweise

Die toFixed-Methode gibt eine Zeichenfolgendarstellung einer Zahl in Festkommanotation zurück. Die Zeichenfolge enthält eine Ziffer vor dem Dezimalkomma des Signifikanden und muss Bruchstellen Ziffern nach ihm enthalten.

Wenn Bruchstellen nicht angegeben wird oder undefined ist, nimmt die toFixed-Methode an, dass dieser Wert Null ist.

Anforderungen

Version 5.5

Siehe auch

toExponential-Methode | toPrecision-Methode

Betrifft: Number-Objekt


toGMTString-Methode

Gibt das unter Verwendung von GMT (Greenwich Mean Time) in eine Zeichenfolge konvertierte Datum an.

DatumsObj.toGMTString()

Der erforderliche dateObj-Verweis ist ein Date-Objekt.

Hinweise

Die toGMTString-Methode ist veraltet und ist ausschließlich der Abwärtskompatibilität vorbehalten. Es wird empfohlen, stattdessen die toUTCString-Methode zu verwenden.

Die toGMTString-Methode gibt ein String-Objekt im Format der GMT-Konvention zurück. Das Format des Rückgabewertes ist: "05 Jan 1996 00:00:00 GMT".

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | toUTCString-Methode

Betrifft: Date-Objekt


toLocaleDateString-Methode

Gibt ein Datum als Zeichenfolgenwert entsprechend dem aktuellen Gebietsschema der Hostumgebung zurück.

ObjDate.toLocaleDateString( )

Der erforderliche ObjDate-Verweis ist ein Date-Objekt.

Hinweise

Die toLocaleDateString-Methode gibt einen Zeichenfolgenwert zurück, der ein Datum in der aktuellen Zeitzone in einem leicht lesbaren Format enthält. Das Datum hat das Standardformat des aktuellen Gebietsschemas der Hostumgebung. Auf den Rückgabewert dieser Methode kann beim Erstellen von Skripten nicht vertraut werden, da er von Computer zu Computer variiert. Die toLocaleDateString-Methode sollte nur zum Formatieren der Anzeige verwendet werden, niemals als Teil einer Berechnung.

Anforderungen

Version 5.5

Siehe auch

toDateString-Methode | toLocaleTimeString-Methode

Betrifft: Date-Objekt


toLocaleLowerCase-Methode

Gibt eine Zeichenfolge zurück, in der alle alphabetischen Zeichen unter Berücksichtigung des aktuellen Gebietsschemas der Hostumgebung in Kleinbuchstaben konvertiert wurden.

Zeichenfolgenvar.toLocaleLowerCase( )

Der erforderliche Zeichenfolgenvar-Verweis ist ein String-Objekt, Zeichenfolgenwert oder Literal.

Hinweise

Die toLocaleLowerCase-Methode konvertiert die Zeichen in einer Zeichenfolge unter Berücksichtigung des aktuellen Gebietsschemas der Hostumgebung. In den meisten Fällen sind die Ergebnisse die gleichen, die Sie auch mit der toLowerCase-Methode erhalten würden. Die Ergebnisse sind unterschiedlich, wenn die Regeln für eine Sprache mit den regulären Unicode-Zuordnungen der Groß-/Kleinschreibung in Konflikt stehen.

Anforderungen

Version 5.5

Siehe auch

toLocaleUpperCase-Methode | toLowerCase-Methode

Betrifft: String-Objekt


toLocaleString-Methode

Gibt das gemäß dem aktuellen Gebietsschema in eine Zeichenfolge konvertierte Datum zurück.

DatumsObj.toLocaleString()

Der erforderliche dateObj-Verweis ist ein Date-Objekt.

Hinweise

Die toLocaleString-Methode gibt ein String-Objekt mit dem Datum im Format des aktuellen Gebietsschemas zurück.

  • Für Tage zwischen 1601 und 1999 wird das Datum entsprechend der Ländereinstellung in der Systemsteuerung des Benutzers formatiert.
  • Für Tage außerhalb dieser Spanne wird das Standardformat der toString-Methode verwendet.

Beispiel: In den Vereinigten Staaten gibt toLocaleString für den 5. Januar 1996 "01/05/96 00:00:00" zurück, in Europa für dasselbe Datum jedoch "05.01.96 00:00:00", weil nach der europäischen Schreibweise der Tag vor dem Monat angegeben wird.

Anmerkung toLocaleString sollte nur zum Anzeigen der Ergebnisse für den Benutzer verwendet werden und nie als Grundlage zur Berechnung in einem Skript, weil das resultierende Ergebnis computerspezifisch ist.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der toLocaleString-Methode:

function toLocaleStringDemo(){
   var d, s;                      //Variablen deklarieren.
   d = new Date();                //Date-Objekt erstellen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toLocaleString();       //Zum aktuellen Gebietsschema konvertieren.
   return(s);                     //Konvertiertes Datum zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden

Betrifft: Array-Objekt | Date-Objekt | Number-Objekt | Object-Objekt


toLocaleTimeString-Methode

Gibt eine Uhrzeit als Zeichenfolgenwert entsprechend dem aktuellen Gebietsschema der Hostumgebung zurück.

ObjDate.toLocaleTimeString( )

Der erforderliche ObjDate-Verweis ist ein Date-Objekt.

Hinweise

Die toLocaleTimeString-Methode gibt einen Zeichenfolgenwert zurück, der eine Uhrzeit in der aktuellen Zeitzone in einem leicht lesbaren Format enthält. Die Uhrzeit hat das Standardformat des aktuellen Gebietsschemas der Hostumgebung. Auf den Rückgabewert dieser Methode kann beim Erstellen von Skripten nicht vertraut werden, da er von Computer zu Computer variiert. Die toLocaleTimeString-Methode sollte nur zum Formatieren der Anzeige verwendet werden, niemals als Teil einer Berechnung.

Anforderungen

Version 5.5

Siehe auch

toTimeString-Methode | toLocaleDateString-Methode

Betrifft: Date-Objekt


toLocaleUpperCase-Methode

Gibt eine Zeichenfolge zurück, in der alle alphabetischen Zeichen unter Berücksichtigung des aktuellen Gebietsschemas der Hostumgebung in Großbuchstaben konvertiert wurden.

Zeichenfolgenvar.toLocaleUpperCase( )

Der erforderliche Zeichenfolgenvar-Verweis ist ein String-Objekt, Zeichenfolgenwert oder Literal.

Hinweise

Die toLocaleUpperCase-Methode konvertiert die Zeichen in einer Zeichenfolge unter Berücksichtigung des aktuellen Gebietsschemas der Hostumgebung. In den meisten Fällen sind die Ergebnisse die gleichen, die Sie auch mit der toUpperCase-Methode erhalten würden. Die Ergebnisse sind unterschiedlich, wenn die Regeln für eine Sprache mit den regulären Unicodezuordnungen der Groß-/Kleinschreibung in Konflikt stehen.

Anforderungen

Version 5.5

Siehe auch

toLocaleLowerCase-Methode | toUpperCase-Methode

Betrifft: String-Objekt


toLowerCase-Methode

Gibt eine Zeichenfolge zurück, bei der alle alphabetischen Zeichen zu Kleinbuchstaben konvertiert wurden.

strVariable.toLowerCase( )
"Zeichenfolgenliteral".toLowerCase( )

Hinweise

Die toLowerCase-Methode hat keine Auswirkungen auf nicht-alphabetische Zeichen.

Das folgende Beispiel veranschaulicht die Auswirkungen der toLowerCase-Methode:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.toLowerCase( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

dies ist ein string-objekt

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts | toUpperCase-Methode

Betrifft: String-Objekt


toPrecision-Methode

Gibt eine Zeichenfolge zurück, die eine Zahl enthält, die entweder in exponentieller oder in Festkommanotation mit einer angegebenen Anzahl von Ziffern dargestellt ist.

NumObj.toPrecision ([Präzision])

Argumente

NumObj
Erforderlich. Ein Number-Objekt.
Präzision
Optional. Anzahl der signifikanten Stellen. Muss im Bereich 1–21 (einschließlich) liegen.

Hinweise

Für Zahlen in exponentieller Notation werden Präzision - 1 Ziffern nach dem Dezimalkomma zurückgegeben. Für Zahlen in Festkommanotation werden Präzision signifikante Stellen zurückgegeben.

Wenn Präzision nicht angegeben wird oder undefined ist, wird stattdessen die toString-Methode aufgerufen.

Anforderungen

Version 5.5

Siehe auch

toFixed-Methode | toExponential-Methode

Betrifft: Number-Objekt


toString-Methode

Gibt die Zeichenfolgendarstellung eines Objekts zurück.

Objektname.toString([Basis])

Argumente

Objektname
Erforderlich. Ein Objekt, für das eine Zeichenfolgendarstellung gesucht wird.
Basis
Optional. Spezifiziert eine Basis für das Konvertieren von numerischen Werten zu Zeichenfolgen. Dieser Wert wird nur für Zahlen verwendet.

Hinweise

Die toString-Methode ist ein Element aller in JScript integrierten Objekte. Ihr Verhalten hängt vom Objekttyp ab:

Objekt | Verhalten
Array | Elemente eines Arrays werden in Zeichenfolgen konvertiert. Die sich ergebenden Zeichenfolgen werden durch Kommata getrennt aneinander gefügt.
Boolean | Ist der Boolesche Wert true, wird "true" zurückgegeben. Andernfalls wird "false" zurückgegeben.
Date | Gibt eine Textdarstellung des Datums zurück.
Error | Gibt eine Zeichenfolge mit der entsprechenden Fehlermeldung zurück.
Function Gibt eine Zeichenfolge im folgenden Format zurück, bei der Funktionsname der Name der Funktion ist, deren toString-Methode aufgerufen wurde:
function Funktionsname( ) { [Code] }
Number | Gibt eine Textdarstellung der Zahl zurück.
String | Gibt den Wert des String-Objekts zurück.
Standard | Gibt "[object Objektname]" zurück, wobei Objektname der Name des Objekttyps ist.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der toString-Methode mit einem Basisargument. Der Rückgabewert der Funktion ist eine Basiskonvertierungstabelle.

function ErstelleBasisTabelle (){
   var s1, s2, s3, x;                    //Variablen deklarieren.
   s = "Hex    Dec   Bin \n";               //Tabellenüberschrift erstellen.
   for (x = 0; x < 16; x++)                 //Größe der Tabelle festlegen in
   {                                        // Zusammenhang mit der Anzahl
      switch(x)                             // der angezeigten Werte.
      {                                     //Abstand zwischen den Spalten festlegen.
         case 0 :
            s1 = "      ";
            s2 = "    ";
            s3 = "   ";
            break;
         case 1 :
            s1 = "      ";
            s2 = "    ";
            s3 = "   ";
            break;
         case 2 :
            s3 = "   ";
            break;
         case 3 :
            s3 = "   ";
            break;
         case 4 :
            s3 = "   ";
            break;
         case 5 :
            s3 = "   ";
            break;
         case 6 :
            s3 = "   ";
            break;
         case 7 :
            s3 = "   ";
            break;
         case 8 :
            s3 = "";
            break;
         case 9 :
            s3 = "";
            break;
      default:
            s1 = "      ";
            s2 = "";
            s3 = "   ";
      }                                     //Konvertieren zu Hexadezimal, Dezimal und Binär.
      s += " " + x.toString(16) + s1 + x.toString(10)
      s +=  s2 + s3 + x.toString(2)+ "\n";

   }
   return(s);                               //Vollständige Basistabelle zurückgeben.
}

Anforderungen

Version 2

Siehe auch

function-Anweisung

Betrifft: Array-Objekt | Boolean-Objekt | Date-Objekt | Error Object | Function-Objekt | Number-Objekt | Object-Objekt | String-Objekt


toTimeString-Methode

Gibt eine Uhrzeit als Zeichenfolgenwert zurück.

ObjDate.toTimeString( )

Der erforderliche ObjDate-Verweis ist ein Date-Objekt.

Hinweise

Die toTimeString-Methode gibt einen Zeichenfolgenwert zurück, der die Uhrzeit in der aktuellen Zeitzone in einem benutzerfreundlichen, leicht lesbaren Format enthält.

Anforderungen

Version 5.5

Siehe auch

toDateString-Methode | toLocaleTimeString-Methode

Betrifft: Date-Objekt


toUpperCase-Methode

Gibt eine Zeichenfolge zurück, bei der alle alphabetischen Zeichen zu Großbuchstaben konvertiert wurden.

strVariable.toUpperCase( )
"Zeichenfolgenliteral".toUpperCase( )

Hinweise

Die toUpperCase-Methode hat keine Auswirkungen auf nicht alphabetische Zeichen.

Beispiel

Das folgende Beispiel veranschaulicht die Auswirkungen der toUpperCase-Methode:

var strVariable = "Dies ist ein String-Objekt";
strVariable = strVariable.toUpperCase( );

strVariable hat nach der letzten Anweisung den folgenden Wert:

DIES IST EIN STRING-OBJEKT

Anforderungen

Version 1

Siehe auch

Methoden des String-Objekts | Eigenschaften des String-Objekts | toLowerCase-Methode

Betrifft: String-Objekt


toUTCString-Methode

Gibt das unter Verwendung der koordinierten Weltzeit (Universal Coordinated Time=UTC) in eine Zeichenfolge konvertierte Datum zurück.

DatumsObj.toUTCString()

Der erforderliche dateObj-Verweis ist ein Date-Objekt.

Hinweise

Die toUTCString-Methode gibt ein String-Objekt zurück, das das gemäß UTC-Konvention formatierte Datum in benutzerfreundlich lesbarer Form enthält.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der toUTCString-Methode:

function toUTCStringDemo(){
   var d, s;                   //Variablen deklarieren.
   d = new Date();             //Date-Objekt erstellen.
   s = "Die aktuelle Einstellung ist ";
   s += d.toUTCString();       //Zur UTC-Zeichenfolge konvertieren.
   return(s);                  //UTC-Zeichenfolge zurückgeben.
}

Anforderungen

Version 3

Siehe auch

Date-Objekt Methoden | toGMTString-Methode

Betrifft: Date-Objekt


ubound-Methode

Gibt den größten Indexwert zurück, der in der angegebenen Dimension eines VBArray-Objekts verwendet wird.

Array.ubound(Dimension)

Argumente

Array
Erforderlich. Ein VBArray-Objekt.
Dimension
Optional. Die Dimension des VBArray-Objekts, deren größter Indexwert bestimmt werden soll. Erfolgt keine Dimensionsangabe, so gibt ubound den größten Indexwert der ersten Dimension zurück.

Hinweise

Ist das VBArray-Objekt leer, so gibt die ubound-Methode undefined zurück. Ist Dimension größer als die Anzahl der Dimensionen des VBArray-Objekts oder negativ, so erzeugt die Methode den Fehler "Index außerhalb des gültigen Bereichs".

Beispiel

Das folgende Beispiel besteht aus drei Teilen. Der erste Teil ist VBScript-Code zum Erstellen eines Visual Basic Safe Array-Objekts. Der zweite Teil ist JScript-Code, der die Anzahl der Dimensionen in dem Safe Array-Objekt und die obere Grenze jeder Dimension bestimmt. Beide Teile gehören in den <HEAD>-Abschnitt einer HTML-Seite. Der dritte Teil ist JScript-Code, der im <BODY>-Abschnitt den Aufruf der beiden anderen Teile bewirkt.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function ErzeugeVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         k = k + 1
      Next
   Next
   ErzeugeVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vba)
{
   var i, s;
   var a = new VBArray(vba);
   for (i = 1; i <= a.dimensions(); i++)
   {
      s += "Die obere Grenze der Dimension ";
      s += i + " ist ";
      s += a.ubound(i)+ ".<BR>";
      return(s);
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT language="jscript">
   document.write(VBArrayTest(ErzeugeVBArray()));
</SCRIPT>
</BODY>

Anforderungen

Version 3

Siehe auch

dimensions-Methode | getItem-Methode | lbound-Methode | toArray-Methode

Betrifft: VBArray-Objekt


unescape-Methode

Dekodiert String-Objekte, die mit der escape-Methode kodiert wurden.

unescape(Zeichenfolge)

Das erforderliche Argument Zeichenfolge ist ein zu dekodierendes String-Objekt bzw. -Zeichenfolge.

Hinweise

Die unescape-Methode gibt ein neues String-Objekt zurück, das den Inhalt von Zeichenfolge enthält. Alle im hexadezimalen Format %xx kodierten Zeichen werden durch ihre ASCII-Zeichensatzäquivalente ersetzt.

Im Format %u xxxx kodierte Zeichen (Unicode-Zeichen) werden durch Unicode-Zeichen mit hexadezimaler Kodierung xxxx ersetzt.

Anmerkung Die unescape-Methode sollte nicht zum Dekodieren von Uniform Resource Identifiers (URI) verwendet werden. Verwenden Sie dafür die Methoden decodeURI und decodeURIComponent.

Anforderungen

Version 1

Siehe auch

DecodeURI-Methode | decodeURIComponent-Methode | escape-Methode | String-Objekt

Betrifft: Global-Objekt


unshift-Methode

Gibt ein Array zurück, bei dem die angegebenen Elemente am Anfang eingefügt wurden.

ArrayObj.unshift([Element1[, Element2 [, ...[, ElementN]]]])

Argumente

ArrayObj
Erforderlich. Ein Array-Objekt.
Element1, Element2,...,ElementN
Optional. Elemente, die an den Anfang des Array-Objekts eingefügt werden sollen.

Hinweise

Die unshift-Methode fügt Elemente in den Anfang eines Arrays ein, so dass sie in der gleichen Reihenfolge enthalten sind, in der sie auch in der Argumentliste enthalten sind.

Anforderungen

Version 5.5

Siehe auch

shift-Methode

Betrifft: Array-Objekt


UTC-Methode

Gibt die Anzahl der Millisekunden zwischen Mitternacht, 1. Januar 1970 gemäß koordinierter Weltzeit (Universal Coordinated Time=UTC) (oder GMT = Greenwich Mean Time) und dem angegebenen Datum zurück.

Date.UTC(Jahr,Monat,Tag[,Stunden[,Minuten[,Sekunden[,Millisekunden]]]])

Argumente

Jahr
Erforderlich. Die vollständige Jahresangabe ist für die Genauigkeit richtiger jahrhundertübergreifender Datumsangaben erforderlich. Wird für Jahr ein Wert zwischen 0 und 99 verwendet, wird Jahr als 1900 + Jahr interpretiert.
Monat
Erforderlich. Der Monat als Ganzzahl zwischen 0 und 11 (Januar bis Dezember).
Tag
Erforderlich. Das Datum als Ganzzahl zwischen 1 und 31.
Stunden
Optional. Muss angegeben werden, wenn Minuten angegeben wird. Eine Ganzzahl zwischen 0 und 23 (Mitternacht bis 23 Uhr), die die Stunde angibt.
Minuten
Optional. Muss angegeben werden, wenn Sekunden angegeben wird. Eine Ganzzahl zwischen 0 und 59, die die Minuten angibt.
Sekunden
Optional. Muss angegeben werden, wenn Millisekunden angegeben wird. Eine Ganzzahl zwischen 0 und 59, die die Sekunden angibt.
Millisekunden
Optional. Eine Ganzzahl zwischen 0 und 999, die die Millisekunden angibt.

Hinweise

Die UTC-Methode gibt die Anzahl der Millisekunden zwischen dem 1. Januar 1970, Mitternacht, Universal Coordinated Time (UTC) und dem angegebenen Datum zurück. Dieser Rückgabewert kann in der setTime-Methode und im Date-Objektkonstruktor verwendet werden. Ist der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl, werden andere gespeicherte Werte entsprechend geändert. Wenn Sie beispielsweise 150 Sekunden angeben, legt JScript hierfür 2 Minuten und 30 Sekunden fest

Der Unterschied zwischen der UTC-Methode und dem Date-Objektkonstruktor, der ein Datum akzeptiert, liegt darin, dass die UTC-Methode von UTC und der Date-Objektkonstruktor von der Lokalzeit ausgeht.

Bei der UTC-Methode handelt es sich um eine statische Methode. Ein Date-Objekt muss daher nicht vor der eigentlichen Verwendung erstellt werden.

Anmerkung Liegt Jahr zwischen 0 und 99, verwenden Sie für die Jahresangabe 1900 + Jahr.

Beispiel

Das folgende Beispiel zeigt die Verwendung der UTC-Methode:

function TageZwischenDatumUndJetzt(jahr, monat, tag){
   var d, r, t1, t2, t3;            //Variablen deklarieren.
   var MinMilli = 1000 * 60         //Variablen initialisieren.
   var StdMilli = MinMilli * 60
   var TagMilli = StdMilli * 24
   t1 = Date.UTC(jahr, monat, tag)    //Millisekunden seit 1.1.1970 übertragen.
   d = new Date();                  //Date-Objekt erstellen.
   t2 = d.getTime();                //Aktuelle Zeit übertragen.
   if (t2 >= t1)
      t3 = t2 - t1;
   else
      t3 = t1 - t2;
   r = Math.round(t3 / TagMilli);
   return(r);                       //Differenz zurückgeben.
}

Anforderungen

Version 1

Siehe auch

Date-Objekt Methoden | setTime-Methode

Betrifft: Date-Objekt


valueOf-Methode

Gibt den elementaren Wert des angegebenen Objekts zurück.

Objekt.valueOf( )

Der erforderliche object-Verweis ist ein intrinsisches JScript-Objekt.

Hinweise

Die valueOf-Methode wird für jedes intrinsisches JScript-Objekt unterschiedlich definiert.

Objekt | Rückgabewert
Array | Die Elemente des Arrays werden in Zeichenfolgen konvertiert, und die Zeichenfolgen werden, getrennt durch Kommata, aneinandergefügt. Dies entspricht dem Verhalten der MethodenArray.toString und Array.join.
Boolean | Der boolesche Wert.
Date | Die Zahl der Millisekunden seit dem 1. Januar 1970 UTC.
Function | Die Funktion selbst.
Number | Der numerische Wert.
Objekt | Das Objekt selbst. (Voreinstellung).
String | Die Zeichenfolge.

Die Objekte Math und Error verfügen über keine valueOf-Methode.

Anforderungen

Version 2

Siehe auch

toString-Methode

Betrifft: Array-Objekt | Boolean-Objekt | Date-Objekt | Function-Objekt | Number-Objekt | Object-Objekt | String-Objekt


JScript-Objekte

In der folgenden Tabelle sind JScript-Objekte aufgeführt.

Beschreibung | Sprachelement
Aktiviert ein Automatisierungsobjekt und gibt einen Verweis auf dieses Objekt zurück. | ActiveXObject-Objekt
Unterstützt das Erstellen von Arrays beliebigen Datentyps. | Array-Objekt
Erstellt einen neuen booleschen Wert. | Boolean-Objekt
Aktiviert grundlegende Speicherungs- und Abrufmöglichkeiten von Datums- und Zeitangaben. | Date-Objekt
Ein Objekt, das Element/Schlüssel-Paare speichert. | Dictionary-Objekt
Aktiviert die Aufzählung von Elementen in einer Auflistung. | Enumerator-Objekt
Ein Objekt, das Informationen zu Fehlern enthält, die beim Ausführen von JScript-Code auftreten. | Error-Objekt
Ermöglicht den Zugriff auf das Dateisystem des Computers. | FileSystemObject-Objekt
Erstellt eine neue Funktion. | Function-Objekt
Ein intrinsisches Objekt, dessen Zweck das Zusammenfassen globaler Methoden in einem Objekt ist. | Global-Objekt
Ein intrinsisches Objekt mit mathematischen Grundfunktionen und Konstanten. | Math-Objekt
Eine Objektdarstellung des numerischen Datentyps und Platzhalter für numerische Konstanten. | Number-Objekt
Stellt eine allen JScript-Objekten gemeinsame Funktionalität bereit. | Object-Objekt
Speichert Informationen zu Mustersuchen mit regulären Ausdrücken. | RegExp-Objekt
Enthält das Muster eines regulären Ausdrucks. | Regular Expression-Objekt
Ermöglicht das Bearbeiten und Formatieren von Textzeichenfolgen sowie das Festlegen und Suchen von Teilzeichenfolgen innerhalb von Zeichenfolgen. | String-Objekt
Bietet Zugriff auf sichere Visual Basic-Arrays. | VBArray-Objekt


ActiveXObject-Objekt

Aktiviert und gibt einen Verweis auf ein Automatisierungsobjekt zurück.

neuesObjekt = new ActiveXObject(Servername.Klassenname[, Speicherort])

Argumente

neuesObjekt
Erforderlich. Der Variablenname, dem ein ActiveXObject-Objekt zugewiesen wird.
Servername
Erforderlich. Der Name der Anwendung, die das Objekt bereitstellt.
Klassenname
Erforderlich. Der Typ oder die Klasse des zu erstellenden Objekts.
Speicherort
Optional. Der Name des Netzwerkservers, auf dem das Objekt erstellt werden soll.

Hinweise

Alle Automatisierungsserver stellen mindestens einen Objekttyp zur Verfügung. Eine Textverarbeitung kann beispielsweise ein Anwendungsobjekt, ein Dokumentobjekt und ein Symbolleistenobjekt bereitstellen.

Um ein Automatisierungsobjekt zu erstellen, weisen Sie das neue ActiveXObject-Objekt einer Objektvariablen zu:

var ExcelArbeitsblatt;
ExcelAnwendung = new ActiveXObject("Excel.Application");
ExcelArbeitsblatt = new ActiveXObject("Excel.Sheet");

Der Code startet die Anwendung, die das Objekt erstellt (in diesem Fall ein Microsoft Excel-Arbeitsblatt). Anschließend können Sie aus dem Code mit der von Ihnen festgelegten Objektvariablen auf das Objekt zugreifen. In diesem Beispiel können Sie auf Eigenschaften und Methoden des neuen Objekts mit der Objektvariablen ExcelArbeitsblatt und anderer Excel-Objekte wie dem Application-Objekt und der ActiveSheet.Cells-Auflistung zugreifen.

// Anzeigen von Excel durch das Anwendungsobjekt.
ExcelArbeitsblatt.Application.Visible = true;
// Text in die erste Zelle der Tabelle schreiben.
ExcelArbeitsblatt.ActiveSheet.Cells(1,1).
Value = "Dies ist Spalte A, Zeile 1";
// Tabelle speichern.
ExcelArbeitsblatt.SaveAs("C:\\TEST.XLS");
// Excel mit der Quit-Methode des Anwendungsobjekts schließen.
ExcelArbeitsblatt.Application.Quit();

Das Erstellen von Objekten auf einem Remoteserver kann nur durchgeführt werden, wenn die Internetsicherheit deaktiviert wurde. Sie können ein Objekt auf einem entfernten Netzwerkcomputer erstellen, indem Sie dem Servername-Argument von ActiveXObject den Computernamen übergeben. Dieser Name entspricht dem Computernamen-Bestandteil im Freigabenamen. Bei der Netzwerkfreigabe "\\meinserver\public" ist der Servername "meinserver". Darüber hinaus können Sie auch den Servernamen unter Verwendung des DNS-Formats oder einer IP-Adresse angeben.

Der nachstehend aufgeführte Code gibt die Versionsnummer einer Excel-Instanz zurück, die auf dem entfernten Netzwerkcomputer "meinserver" ausgeführt wird:

function GetAppVersion() {
   var XLApp = new ActiveXObject("Excel.Application", "MeinServer");
   return(XLApp.Version);
}

Ist der angegebene Remoteserver nicht vorhanden, oder kann er nicht gefunden werden, tritt eine Fehlermeldung auf.

Anforderungen

Version 1

GetObject-Funktion


Array-Objekt

Ermöglicht das Erstellen von Arrays beliebigen Datentyps.

Array = new Array()
Array = new Array([Größe])
Array = new Array([Element0[,Element1[, ...[, ElementN]]]])

Argumente

Array
Erforderlich. Der Variablenname, dem das Array-Objekt zugewiesen wird.
Größe
Optional. Die Größe des Arrays. Weil Arrays nullbasiert sind, haben erstellte Elemente Indizes von 0 bis Größe -1.
Element0,...,ElementN
Optional. Die Elemente, die in dem Array gespeichert werden sollen. Auf diese Weise wird ein Array mit n + 1 Elementen und einer Länge von n + 1 erstellt. Sie müssen mehr als ein Element angeben, um diese Syntax zu verwenden.

Hinweise

Nachdem ein Array erstellt wurde, kann auf die einzelnen Elemente über die Notation mit eckigen Klammern [ ] zugegriffen werden:

var mein_Array = new Array();
for (i = 0; i < 10; i++)
   {
   mein_Array[i] = i;
   }
x = mein_Array[4];

Da Arrays in Microsoft JScript nullbasiert sind, greift die letzte Anweisung im obigen Beispiel auf das fünfte Element des Arrays zu. Dieses Element enthält den Wert 4.

Wenn nur ein Argument an den Array-Konstruktor übergeben wird und es sich dabei um eine Zahl handelt, muss diese Zahl eine 32-Bit-Ganzzahl ohne Vorzeichen sein (< ca. vier Milliarden Zeichen). Dieser Wert entspricht dann der Größe des Arrays. Wenn der Wert eine Zahl ist, die jedoch kleiner als 0 bzw. keine Ganzzahl ist, tritt ein Laufzeitfehler auf.

Wenn ein einzelner Wert an den Array-Konstruktor übergeben wird, und dieser Wert keine Zahl ist, wird die length-Eigenschaft auf 1 gesetzt, und der Wert des einzigen Arrayelements wird das einzige übergebene Argument.

Beachten Sie, dass JScript-Arrays keine umfangreichen Arrays sind, d. h., obwohl Sie einem Array viele Elemente zuweisen können, sind nur Elemente vorhanden, die tatsächlich Daten enthalten. Dadurch wird der vom Array verwendete Speicherplatz reduziert.

Eigenschaften

constructor-Eigenschaft | length-Eigenschaft | prototype-Eigenschaft

Methoden

concat-Methode | join-Methode | pop-Method3 | push-Methode | reverse-Methode | shift-Methode | slice-Methode | sort-Methode | splice-Methode | toLocaleString-Methode | toString-Methode | unshift-Methode | valueOf-Methode

Anforderungen

Version 2

new-Operator


arguments-Objekt

Ein Objekt, dass die Argumente in den aktuell ausgeführten Funktion und in den Funktionen, die das Objekt aufgerufen haben, darstellt.

[Funktion.]arguments[n]

Argumente

Funktion
Optional. Der Name des aktuell ausführenden Function-Objekts.
n
Erforderlich. Der nullbasierte Index der Argumentwerte, die an das Function-Objekt übertragen werden.

Hinweise

Sie können ein arguments-Objekt nicht ausdrücklich erstellen. Das arguments-Objekt ist erst dann verfügbar, wenn die Ausführung einer Funktion gestartet wird. Das arguments-Objekt einer Funktion ist kein Array, aber auf die einzelnen Argumente kann auf dieselbe Weise wie auf Arrayelemente zugegriffen werden. Der Index n ist eigentlich ein Verweis auf eine der 0…n-Eigenschaften des arguments-Objekts.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des arguments-Objekts.

function ArgTest(a, b){
   var i, s = "The ArgTest function expected ";
   var numargs = arguments.length;     //Überträgt die Anzahl der übergebenen Argumente.
   var expargs = ArgTest.length;       //Überträgt die Anzahl der erwarteten Argumente.
   if (expargs < 2)
      s += expargs + " Argument. ";
   else
      s += expargs + " Argumente. ";
   if (numargs < 2)
      s += numargs + " wurde übergeben.";
   else
      s += numargs + " wurden übergeben.";
   s += "\n\n"
   for (i =0 ; i < numargs; i++){      //Überträgt den Argumenteninhalt.
   s += "  Arg " + i + " = " + arguments[i] + "\n";
   }
   return(s);                          //Gibt die Liste der Argumente zurück.
}

Anforderungen

Version 1

0…n-Eigenschaften | callee-Eigenschaft | length-Eigenschaft


Boolean-Objekt

Erstellt einen neuen booleschen Wert.

Syntax

BoolObjekt = new Boolean([BoolWert])

Argumente

BoolObjekt
Erforderlich. Der Variablenname, dem das Boolean-Objekt zugewiesen wird.
BoolWert
Optional. Der anfängliche boolesche Wert des neuen Objekts. Ist BoolWert nicht vorhanden, oder false, 0, null, NaN oder eine leere Zeichenfolge, dann ist der anfängliche Wert des Boolean-Objekts false. Andernfalls ist der anfängliche Wert true.

Hinweise

Das Boolean-Objekt ist ein Mantelobjekt für den booleschen Datentyp. JScript verwendet das Boolean-Objekt automatisch, wenn ein boolescher Datentyp zu einem Boolean-Objekt konvertiert wird.

Das Boolean-Objekt wird nur selten explizit aufgerufen.

Eigenschaften

constructor-Eigenschaft | prototype-Eigenschaft

Methoden

toString-Methode | valueOf-Methode

Anforderungen

Version 2

new-Operator | var-Anweisung


Date-Objekt

Ermöglicht grundlegende Speicherungs- und Abrufmöglichkeiten von Datums- und Zeitangaben.

DatumsObj = new Date()
DatumsObj = new Date(DatumWert)
DatumsObj = new Date(Jahr, Monat, Datum[, Stunden[, Minuten[, Sekunden[,Millisekunden]]]])

Argumente

DatumsObj
Erforderlich. Der Variablenname, dem das Date-Objekt zugewiesen wird..
DatumWert
Erforderlich. Als numerischer Wert entspricht DatumWert der Anzahl von Millisekunden gemäß koordinierter Weltzeit zwischen dem angegebenen Datum und dem 1. Januar 1970 um Mitternacht. Als Zeichenfolge wird DatumWert gemäß den Regeln der parse-Methode analysiert. Das Argument DatumWert kann auch ein VT_DATE-Wert sein, wie er von einigen ActiveX®-Objekten zurückgegeben wird.
Jahr
Erforderlich. Das vollständige Jahr, z. B. 1976 (und nicht 76).
Monat
Erforderlich. Der Monat als eine Ganzzahl zwischen 0 und 11 (Januar bis Dezember).
Datum
Erforderlich. Das Datum als eine Ganzzahl zwischen 1 und 31.
Stunden
Optional. Muss angegeben werden, wenn Minuten angegeben wird. Eine Ganzzahl zwischen 0 und 23 (Mitternacht bis 23 Uhr), die die Stunde angibt.
Minuten
Optional. Muss angegeben werden, wenn Sekunden angegeben wird. Eine Ganzzahl zwischen 0 und 59, die die Minuten angibt.
Sekunden
Optional. Muss angegeben werden, wenn Millisekunden angegeben wird. Eine Ganzzahl zwischen 0 und 59, die die Sekunden angibt.
Millisekunden
Optional. Eine Ganzzahl zwischen 0 und 999, die die Millisekunden angibt.

Hinweise

Ein Date-Objekt enthält eine Zahl, die einen bestimmten Zeitpunkt von bis zu einer Millisekunde darstellt. Wenn der Wert eines Arguments größer als dessen Bereich oder eine negative Zahl ist, werden andere gespeicherte Werte entsprechend geändert. Wenn Sie z. B. 150 Sekunden angeben, macht JScript daraus 2 Minuten und 30 Sekunden.

Ist die Zahl NaN, stellt das Objekt keinen bestimmten Zeitpunkt dar. Wenn Sie dem Date-Objekt keine Parameter übergeben, wird es mit der aktuellen Zeit (UTC) initialisiert. Sie müssen dem Objekt einen Wert zuweisen, bevor Sie es verwenden können.

Der Bereich, der in einem Date-Objekt dargestellt werden kann, beträgt etwa 285.616 Jahre vor und nach dem 1. Januar 1970.

Zum Date-Objekt gehören zwei statische Methoden, die aufgerufen werden, ohne ein Date-Objekt zu erstellen: parse und UTC.

Fehler

Das folgende Beispiel veranschaulicht die Verwendung des Date-Objekts.

function DateDemo(){
   var d, s = "Das heutige Datum lautet: ";           //Variablen deklarieren.
   d = new Date();                           //Date-Objekt erstellen.
   s += (d.getMonth() + 1) + "/";            //Monat übertragen.
   s += d.getDate() + "/";                   //Tag übertragen.
   s += d.getYear();                         //Jahr übertragen.
   return(s);                                //Datum zurückgeben.
}

Eigenschaften

constructor-Eigenschaft | prototype-Eigenschaft

Methoden

getDate-Methode | getDay-Methode | getFullYear-Methode | getHours-Methode | getMilliseconds-Methode | getMinutes-Methode | getMonth-Methode | getSeconds-Methode | getTime-Methode | getTimezoneOffset-Methode | getUTCDate-Methode | getUTCDay-Methode | getUTCFullYear-Methode | getUTCHours-Methode | getUTCMilliseconds-Methode | getUTCMinutes-Methode | getUTCMonth-Methode | getUTCSeconds-Methode | getVarDate-Methode | getYear-Methode | setDate-Methode | setFullYear-Methode | setHours-Methode | setMilliseconds-Methode | setMinutes-Methode | setMonth-Methode | setSeconds-Methode | setTime-Methode | setUTCDate-Methode | setUTCFullYear-Methode | setUTCHours-Methode | setUTCMilliseconds-Methode | setUTCMinutes-Methode | setUTCMonth-Methode | setUTCSeconds-Methode | setYear-Methode | toGMTString-Methode | toLocaleString-Methode | toString-Methode | toUTCString-Methode | valueOf-Methode | parse-Methode | UTC-Methode

Anforderungen

Version 1

new-Operator | var-Anweisung


Enumerator-Objekt

Ermöglicht das Aufzählen der Elemente einer Auflistung.

EnumeratorObjekt = new Enumerator(Auflistung)

Argumente

EnumeratorObjekt
Erforderlich. Der Variablenname, dem das Enumerator-Objekt zugewiesen wird.
Auflistung
Optional. Ein Collection-Objekt.

Hinweise

Auflistungen unterscheiden sich von Arrays dadurch, dass auf die Elemente einer Auflistung nicht direkt zugegriffen werden kann. Anstatt wie bei Arrays Indizes zu verwenden, können Sie nur den aktuellen Elementzeiger auf das erste oder das nächste Element der Auflistung bewegen.

Das Enumerator-Objekt bietet die Möglichkeit, auf die Elemente einer Auflistung zuzugreifen, und verhält sich ähnlich wie die Anweisung For...Each in VBScript.

Beispiel

Der folgende Code veranschaulicht die Verwendung des Enumerator-Objekts:

function ZeigeLaufwerkListe(){
   var fso, s, n, e, x;                     //Variablen deklarieren.
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);          //Enumerator auf Drives erstellen.
   s = "";
   for (;!e.atEnd();e.moveNext())           //drives-Auflistung aufzählen.
      {
         x = e.item();
         s = s + x.DriveLetter;
         s += " - ";
         if (x.DriveType == 3)              //Erkennen, ob es ein Netzlaufwerk ist.
            n = x.ShareName;                //Freigabenamen übertragen.
         else if (x.IsReady)                //Erkennen, ob das Laufwerk bereit ist.
            n = x.VolumeName;               //Datenträgernamen übertragen.
         else
            n = "[Laufwerk nicht bereit]";
         s +=  n + "<br>";
      }
   return(s);                               //Aktive Laufwerkliste zurückgeben.
}

Eigenschaften

Das Enumerator-Objekt verfügt über keinerlei Eigenschaften.

Methoden

atEnd-Methode | item-Methode | moveFirst-Methode | moveNext-Methode

Anforderungen

Version 3


Error-Objekt

Enthält Informationen zu Fehlern.

ErrorObjekt = new Error()
ErrorObjekt = new Error([Zahl])
ErrorObjekt = new Error([Zahl[, Beschreibung]])

Argumente

ErrorObjekt
Erforderlich. Der Variablenname, dem das Error-Objekt zugewiesen wird.
Zahl
Optional. Einem Fehler zugewiesener numerischer Wert. Null, wenn sie weggelassen wird.
Beschreibung
Optional. Kurze Zeichenfolge, die einen Fehler beschreibt. Leere Zeichenfolge, wenn sie weggelassen wird.

Hinweise

Bei jedem Auftreten eines Laufzeitfehlers wird eine Instanz des Error-Objekts erstellt, um den Fehler zu beschreiben. Diese Instanz hat zwei integrierte Eigenschaften, die die Beschreibung des Fehlers (description-Eigenschaft) und die Fehlernummer (number-Eigenschaft) enthalten.

Eine Fehlernummer ist ein 32-Bit-Wert. Das obere 16-Bit-Wort ist der Teildienstcode, wohingegen das untere Wort den eigentlichen Fehlercode darstellt.

Error-Objekte können unter Verwendung der weiter oben dargestellten Syntax auch explizit oder mithilfe der throw-Anweisung erstellt werden. In beiden Fällen können Sie zusätzliche gewünschte Eigenschaften hinzufügen, um den Funktionsumfang des Error-Objekts zu erweitern.

Normalerweise verweist die lokale Variable, die in einer try...catch-Anweisung erstellt wird, auf das explizit erstellte Error-Objekt. Sie können die Fehlernummer und -beschreibung daher beliebig und Ihren Anforderungen entsprechend verwenden.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des explizit erstellten Error-Objekts.

try
   x = y   // Generiert einen Fehler.
catch(e){   // Erstellt die lokale Variable e.
   response.write(e)   // Gibt "[object Error]" aus.
   response.write(e.number & 0xFFFF)   // Gibt 5009 aus.
   response.write(e.description)   // Gibt "'y' ist undefiniert" aus.
}

Methoden

Das Error-Objekt verfügt über keinerlei Methoden.

Eigenschaften

description-Eigenschaft | number-Eigenschaft

Anforderungen

Version 5

Siehe auch

new-Operator | throw-Anweisung | try...catch-Anweisung | var-Anweisung


Function-Objekt

Erstellt eine neue Funktion.

Syntax 1

function Funktionsname ([Argumentname1 [, ...[, ArgumentnameN]]])
{
   Rumpf
}

Syntax 2

Funktionsname = new Function( [Argumentname1, [... ArgumentnameN,]] Rumpf );

Argumente

Funktionsname
Erforderlich. Der Name der neu erstellten Funktion.
Argumentname1...ArgumentnameN
Optional. Eine Liste der Argumente, die die Funktion akzeptiert.
Rumpf
Optional. Eine Zeichenfolge mit dem JScript-Codeblock, der ausgeführt werden soll, wenn die Funktion aufgerufen wird.

Hinweise

Die Funktion ist ein Basisdatentyp in JScript. Syntax 1 erstellt einen Funktionswert, den JScript nach Bedarf in ein Function-Objekt konvertiert. JScript konvertiert Function-Objekte, die mit Syntax 2 erstellt wurden, zum Zeitpunkt des Aufrufs der Funktion in Funktionswerte.

Syntax 1 ist die Standardweise zum Erstellen neuer Funktionen in JScript. Syntax 2 bietet eine Alternative, mit der Funktionsobjekte explizit erstellt werden können.

Wenn Sie z. B. eine Funktion erstellen möchten, die die beiden übergebenen Argumente addiert, haben Sie dazu die beiden folgenden Möglichkeiten:

Beispiel 1

function addiere(x, y)
{
   return(x + y);            //Addition durchführen und Ergebnisse zurückgeben.
}

Beispiel 2

var addiere = new Function("x", "y", "return(x+y)");

In beiden Fällen rufen Sie die Funktion mit einer Codezeile wie der folgenden auf:

addiere(2, 3);
Anmerkung Stellen Sie beim Aufrufen einer Funktion stets sicher, dass Sie die Klammern sowie die notwendigen Argumente einschließen. Das Aufrufen einer Funktion ohne Klammern führt zum Zurückgeben des Textes der Funktion, nicht jedoch des eigentlichen Ergebnisses.

Eigenschaften

arguments-Eigenschaft | caller-Eigenschaft | constructor-Eigenschaft | prototype-Eigenschaft

Methoden

toString-Methode | valueOf-Methode

Anforderungen

Version 2

function-Anweisung | new-Operator | var-Anweisung


Global-Objekt

Ein intrinsisches Objekt, dessen Zweck das Zusammenfassen globaler Methoden in einem Objekt ist.

Das Global-Objekt verfügt über keine Syntax. Sie rufen seine Methoden direkt auf.

Hinweise

Das Global-Objekt wird nie direkt verwendet und kann nicht mithilfe des new-Operators erstellt werden. Es wird beim Initialisieren des Skriptmoduls erstellt, wodurch seine Methoden und Eigenschaften sofort verfügbar werden.

Eigenschaften

Infinity-Eigenschaft | NaN-Eigenschaft

Methoden

escape-Methode | eval-Methode | isFinite-Methode | isNaN-Methode | parseFloat-Methode | parseInt-Methode | unescape-Methode

Anforderungen

Version 5

Object-Objekt


Math-Objekt

Ein intrinsisches Objekt, das die mathematischen Grundfunktionen und Konstanten bereitstellt.

Math.[{Eigenschaft | Methode}]

Argumente

Eigenschaft
Erforderlich. Der Name einer der Eigenschaften des Math-Objekts.
Methode
Erforderlich. Der Name einer der Methoden des Math-Objekts.

Hinweise

Das Math-Objekt kann nicht unter Verwendung des new-Operators erstellt werden und gibt bei einem solchen Versuch einen Fehler zurück. Es wird beim Laden des Skriptmoduls von diesem erstellt. Seine gesamten Methoden und Eigenschaften stehen Ihrem Skript jederzeit zur Verfügung.

Eigenschaften

E-Eigenschaft | LN10-Eigenschaft | LN2-Eigenschaft | LOG10E-Eigenschaft | LOG2E-Eigenschaft | PI-Eigenschaft | SQRT1_2-Eigenschaft | SQRT2-Eigenschaft

Methoden

abs-Methode | acos-Methode | asin-Methode | atan-Methode | atan2-Methode | ceil-Methode | cos-Methode | exp-Methode | floor-Methode | log-Methode | max-Methode | min-Methode | pow-Methode | random-Methode | round-Methode | sin-Methode | sqrt-Methode | tan-Methode

Anforderungen

Version 1

Number-Objekt


Number-Objekt

Eine Objektdarstellung des numerischen Datentyps und Platzhalter für numerische Konstanten.

NumberObjekt = new Number(Wert)

Argumente

NumberObjekt
Erforderlich. Der Variablenname, dem das Number-Objekt zugewiesen wird.
Wert
Erforderlich. Der numerische Wert des Number-Objekts, das erstellt wird.

Hinweise

JScript erstellt Number-Objekte bei Bedarf aus numerischen Werten. Es ist nur selten erforderlich, Number-Objekte explizit zu erstellen.

Der Hauptzweck des Number-Objekts besteht darin, seine Eigenschaften in einem Objekt zu vereinen und mit der toString-Methode das Konvertieren von Zahlen in Zeichenfolgen zu ermöglichen.

Eigenschaften

constructor-Eigenschaft | MAX_VALUE-Eigenschaft | MIN_VALUE-Eigenschaft | NaN-Eigenschaft (Number) | NEGATIVE_INFINITY-Eigenschaft | POSITIVE_INFINITY-Eigenschaft | prototype-Eigenschaft

Methoden

ToLocaleString-Methode | toString-Methode | valueOf-Methode

Anforderungen

Version 1

Math-Objekt | new-Operator


Object-Objekt

Bietet allen JScript-Objekten eine gemeinsame Funktionalität.

Objekt = new Object([Wert])

Argumente

Objekt
Erforderlich. Der Variablenname, dem das Object-Objekt zugewiesen wird.
Wert
Optional. Einer der einfachen Datentypen von JScript (Zahl, Boolescher Wert oder Zeichenfolge). Wenn der Wert ein Objekt ist, wird das Objekt ungeändert zurückgegeben. Wenn Wert null, undefined oder nicht angegeben ist, wird ein leeres Objekt erstellt.

Hinweise

Das Object-Objekt ist in allen weiteren JScript-Objekten enthalten. Alle seine Methoden und Eigenschaften sind in allen anderen Objekten verfügbar. Die Methoden können in von Ihnen definierten Objekten neu definiert werden und werden von JScript zum entsprechenden Zeitpunkt aufgerufen. Die toString-Methode ist ein Beispiel einer häufig neu definierten Object-Methode.

In diesem Sprachverzeichnis enthält die Beschreibung der einzelnen Object-Methoden sowohl standardisierte als auch objektspezifische Implementierungsinformationen für die intrinsischen JScript-Objekte.

Eigenschaften

constructor-Eigenschaft | prototype-Eigenschaft

Methoden

ToLocaleString-Methode | toString-Methode | valueOf-Methode

Anforderungen

Version 3

Function-Objekt | Global-Objekt


RegExp-Objekt

Ein intrinsisches globales Global-Objekt, das die Informationen zu den Ergebnissen des übereinstimmenden Musters des regulären Ausdrucks speichert.

RegExp. Eigenschaft

Das erforderliche Argument Eigenschaft kann eine der Eigenschaften des RegExp-Objekts sein.

Hinweise

Das Objekt RegExp kann nicht direkt erstellt werden, ist jedoch stets verwendbar.

Bis eine Suche mit einem regulärem Ausdruck erfolgreich beendet werden kann, sind die Startwerte der verschiedenen Eigenschaften des RegExp-Objekts wie folgt:

Eigenschaft | Kurzschrift | Startwert
index |  | -1
lastIndex |  | -1
lastMatch | $& | Leere Zeichenfolge.
lastParen | $+ | Leere Zeichenfolge.
leftContext |  | Leere Zeichenfolge.
rightContext |  | Leere Zeichenfolge.
$1 - $9 | $1 - $9 | Leere Zeichenfolge.

Der Wert seiner Eigenschaften ist solange undefined, bis eine erfolgreiche Suche nach regulären Ausdrücken abgeschlossen ist.

Das globale RegExp-Objekt darf nicht mit dem Regular Expression-Objekt verwechselt werden. Obwohl ihre Namen sehr ähnlich klingen, sind sie als zwei unterschiedliche Objekte zu betrachten. Die Eigenschaften des globalen RegExp-Objekts enthalten regelmäßig aktualisierte Informationen zu jeder auftretenden Übereinstimmung, während die Eigenschaften des Regular Expression-Objekts nur die Informationen zu den Übereinstimmungen enthalten, die mit der Instanz des Regular Expression-Objekts auftreten.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des globalen RegExp-Objekts.

function trefferDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "$1 enthält: " + RegExp.$1 + "\n";
   s += "$2 enthält: " + RegExp.$2 + "\n";
   s += "$3 enthält: " + RegExp.$3;
   return(s);
}

Eigenschaften

$1...$9-Eigenschaften | index-Eigenschaft | input-Eigenschaft | lastIndex-Eigenschaft | lastMatch-Eigenschaft | lastParen-Eigenschaft | leftContext-Eigenschaft | rightContext-Eigenschaft

Methoden

Das RegExp-Objekt verfügt über keinerlei Methoden.

Anforderungen

Version 3

Siehe auch

Regular Expression-Objekt | Syntax regulärer Ausdrücke | String-Objekt


Regular Expression-Objekt

Ein Objekt, das neben Flags, die erkennen, wie das Muster angewandt werden soll, auch ein Muster des regulären Ausdrucks enthält.

Syntax 1

re = /Muster/[Flags]

Syntax 2

re = new RegExp("Muster",["Flags"])

Argumente

re
Erforderlich. Der Variablenname, dem das Muster des regulären Ausdrucks zugewiesen wird.
Muster
Erforderlich. Das zu verwendende Muster eines regulären Ausdruckes. Beim Verwenden von Syntax 1 begrenzen Sie das Muster mit den Zeichen "/". Beim Verwenden von Syntax 2 setzen Sie das Muster in Anführungszeichen.
Flags
Optional. Setzen Sie beim Verwenden von Syntax 2 den Flag in Anführungszeichen. Folgende kombinierbare Flags sind verfügbar:
  • g (globale Suche nach allen Treffern von Muster)
  • i (Groß-/Kleinschreibung ignorieren)
  • m (mehrzeilige Suche)

Hinweise

Das globale Regular Expression-Objekt darf nicht mit dem RegExp-Objekt verwechselt werden. Obwohl ihre Namen sehr ähnlich klingen, sind sie als zwei unterschiedliche Objekte zu betrachten. Die Eigenschaften des globalen Regular Expression-Objekts enthalten nur die Informationen zu einer bestimmten Regular Expression-Instanz, während die Eigenschaften des RegExp-Objekts regelmäßig aktualisierte Informationen zu jeder auftretenden Übereinstimmung enthalten.

Regular Expression-Objekte speichern verwendete Muster, wenn sie Zeichenfolgen nach Zeichenkombinationen durchsuchen. Nach Erstellen des Regular Expression-Objekts wird dieses entweder an eine string-Methode übergeben, oder eine Zeichenfolge wird an eine der Regular Expression-Methoden übergeben. Informationen zu der zuletzt durchgeführten Suche werden im globalen RegExp-Objekt gespeichert.

Verwenden Sie Syntax 1, wenn Ihnen die zu suchende Zeichenfolge vorher bekannt ist. Verwenden Sie Syntax 2, wenn sich die Suchzeichenfolge häufig ändert oder unbekannt ist, wie z. B. Zeichenfolgen, die einer Benutzereingabe entnommen werden.

Das Argument Muster wird vor der Verwendung in ein internes Format kompiliert. Bei Syntax 1 wird Muster beim Laden des Skriptes kompiliert. Bei Syntax 2 wird Muster kurz vor der Verwendung bzw. nach Aufrufen der compile-Methode kompiliert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des Regular Expression-Objekts, indem ein Objekt (re), das das Muster des regulären Ausdrucks mit seinen zugewiesenen Flags enthält, erstellt wird. In diesem Fall wird das resultierende Regular Expression-Objekt anschließend als match-Methode verwendet:

function MatchDemo(){
   var r, re;                     //Variablen deklarieren.
   var s = "The rain in Spain falls mainly in the plain";
   re = new RegExp("Spain","i");  //Regular Expression-Objekt erstellen.
   r = s.match(re);               //Übereinstimmung innerhalb der Zeichenfolge s suchen.
   return(r);                     //Ergebnisse der Übereinstimmung zurückgeben.
}

Eigenschaften

lastIndex-Eigenschaft | source-Eigenschaft

Methoden

compile-Methode | exec-Methode | test-Methode

Anforderungen

Version 3

RegExp-Objekt | Syntax regulärer Ausdrücke | String-Objekt


String-Objekt

Ermöglicht das Verändern und Formatieren von Zeichenfolgen sowie das Festlegen und Suchen von Teilzeichenfolgen innerhalb von Zeichenfolgen.

Syntax

neueZeichenfolge = new String(["Zeichenfolgenliteral"])

Argumente

neueZeichenfolge
Erforderlich. Der Variablenname, dem das String-Objekt zugewiesen wird.
Zeichenfolgenliteral
Optional. Eine beliebige Gruppe mit Unicodezeichen.

Hinweise

String-Objekte können implizit durch die Angabe von Zeichenfolgenliteralen erstellt werden. Auf diese Weise erstellte String-Objekte werden als Standardzeichenfolgen bezeichnet. Ihre Verarbeitung unterscheidet sich geringfügig von der anderer String-Objekte, die mit dem new-Operator erstellt worden sind. Standardzeichenfolgen verwenden ein gemeinsames, globales String-Objekt. Wenn eine Eigenschaft einer Standardzeichenfolge hinzugefügt wird, ist sie in allen Standard-String-Objekten verfügbar:

var alpha, beta;
alpha = "Dies ist eine Zeichenfolge";
beta = "Dies ist ebenfalls eine Zeichenfolge";

alpha.test = 10;

In vorherigen Beispiel ist test nunmehr für beta und alle zukünftigen Zeichenfolgenliterale definiert. Im nächsten Beispiel werden hinzugefügte Eigenschaften jedoch anders behandelt:

var gamma, delta;
gamma = new String("Dies ist eine Zeichenfolge");
delta = new String("Dies ist ebenfalls eine Zeichenfolge");

gamma.test = 10;

In diesem Fall ist test für delta nicht definiert. Jedes String-Objekt, das als new (neues) String-Objekt definiert ist, hat seine eigene Gruppe von Elementen. Nur in diesem Fall werden String-Objekte und Zeichenfolgenliterale unterschiedlich behandelt.

Eigenschaften

constructor-Eigenschaft | length-Eigenschaft | prototype-Eigenschaft

Methoden

anchor-Methode | big-Methode | blink-Methode | bold-Methode | charAt-Methode | charCodeAt-Methode | concat-Methode | fixed-Methode | fontcolor-Methode | fontsize-Methode | fromCharCode-Methode | indexOf-Methode | italics-Methode | lastIndexOf-Methode | link-Methode | match-Methode | replace-Methode | search-Methode | slice-Methode | small-Methode | split-Methode | strike-Methode | sub-Methode | substr-Methode | substring-Methode | sup-Methode | toLowerCase-Methode | toString-Methode | toUpperCase-Methode | valueOf-Methode

Anforderungen

Version 1

new-Operator


VBArray-Objekt

Bietet Zugriff auf sichere Visual Basic-Arrays.

Variablenname = new VBArray(safeArray)

Argumente

Variablenname
Erforderlich. Der Variablenname, dem das VBArray-Objekt zugewiesen wird.
safeArray
Erforderlich. Ein VBArray-Wert.

Hinweise

VBArray-Objekte sind schreibgeschützt und können nicht direkt erstellt werden. Das Argument safeArray muss einen VBArray-Wert haben, bevor es an den VBArray-Constructor übergeben werden kann. Dies ist nur möglich, indem der Wert von einem vorhandenen ActiveX-Objekt oder einem anderen Objekt abgerufen wird.

VBArray-Objekte können mehrere Dimensionen haben. Die Indizes der einzelnen Dimensionen können unterschiedlich sein. Die dimensions-Methode ruft die Zahl der Dimensionen im Array ab. Die Methoden lbound und ubound rufen den von jeder Methode verwendeten Indexbereich ab.

Beispiel

Das folgende Beispiel besteht aus drei Teilen. Der erste Teil ist VBScript-Code zum Erstellen eines sicheren Visual Basic safeArray-Objekts. Der zweite Teil ist JScript-Code, der das sichere Array-Objekt in ein JScript safeArray-Objekt konvertiert. Beide Teile gehören in den <HEAD>-Abschnitt einer HTML-Seite. Der dritte Teil ist JScript-Code, der in den <BODY>-Abschnitt gehört, damit die anderen beiden Teile ausgeführt werden.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function ErzeugeVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         document.writeln(k)
         k = k + 1
      Next
      document.writeln("vbCRLF")
   Next
   ErzeugeVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vbarray){
   var a = new VBArray(vbarray);
   var b = a.toArray();
   var i;
   for (i = 0; i < 9; i++)
   {
      document.write("b[i]");
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JScript">
<!--
   VBArrayTest(ErzeugeVBArray());
-->
</SCRIPT>
</BODY>

Eigenschaften

Das VBArray-Objekt verfügt über keinerlei Eigenschaften.

Methoden

dimensions-Methode | getItem-Methode | lbound-Methode | toArray-Methode | ubound-Methode

Anforderungen

Version 3

Array-Objekt


JScript-Operatoren

In der folgenden Tabelle sind JScript-Operatoren aufgeführt.

Beschreibung | Sprachelement
Addiert zwei Zahlen oder verkettet zwei Zeichenfolgen. | Additionsoperator (+)
Weist einer Variablen einen Wert zu. | Zuweisungsoperator (=)
Führt eine bitweise AND-Operation auf zwei Ausdrücken durch. | Bitweiser AND-Operator (&)
Verschiebt die Bits eines Ausdrucks nach links. | Bitweiser Linksschiebeoperator (<<)
Führt eine bitweise NOT-Operation (Negation) auf einem Ausdruck durch. | Bitweiser NOT-Operator (~)
Führt eine bitweise OR-Operation auf zwei Ausdrücken durch. | Bitweiser OR-Operator (|)
Verschiebt die Bits eines Ausdrucks unter Beibehaltung des Vorzeichens nach rechts. | Bitweiser Rechtsschiebeoperator (>>)
Führt eine bitweise Exklusiv-OR-Operation auf zwei Ausdrücken durch. | Bitweiser XOR-Operator (^)
Bewirkt das sequenzielle Ausführen zweier Ausdrücke. | Kommaoperator (,)
Gibt einen booleschen Wert zurück, der das Ergebnis des Vergleichs angibt. | Vergleichsoperatoren
Liste von Verbundzuweisungsoperatoren. | Verbundzuweisungsoperatoren
Führt in Abhängigkeit von einer Bedingung einen von zwei Ausdrücken aus. | Bedingter (ternärer) Operator (?:)
Dekrementiert eine Variable um eins. | Dekrementoperator ( — )
Löscht eine Eigenschaft aus einem Objekt oder entfernt ein Element aus einem Array. | delete-Operator
Dividiert zwei Zahlen und gibt ein numerisches Ergebnis zurück. | Divisionsoperator (/)
Vergleicht zwei Ausdrücke miteinander auf Gleichheit. | Gleichheitsoperator (==)
Vergleicht zwei Ausdrücke miteinander, um zu ermitteln, ob ein Wert größer ist. | Größer als-Operator (>)
Vergleicht zwei Ausdrücke miteinander, um zu ermitteln, ob ein Wert größer ist oder beide gleich sind. | Größer oder gleich-Operator (>=)
Vergleicht zwei Ausdrücke miteinander, um zu ermitteln, ob sie den gleichen Wert und Datentyp aufweisen. | Identitätsoperator (===)
Inkrementiert eine Variable um eins. | Inkrementoperator (++)
Vergleicht zwei Ausdrücke miteinander auf Ungleichheit. | Ungleichheitsoperator (!=)
Gibt einen booleschen Wert zurück, der angibt, ob ein Objekt eine Instanz einer bestimmten Klasse ist. | instanceof-Operator
Vergleicht zwei Ausdrücke miteinander, um zu ermitteln, ob ein Wert kleiner ist. | Kleiner als-Operator (<)
Vergleicht zwei Ausdrücke miteinander, um zu ermitteln, ob ein Wert kleiner ist oder beide Werte gleich sind. | Kleiner oder gleich-Operator (<=)
Führt eine logische Konjunktion auf zwei Ausdrücken durch. | Logischer AND-Operator (&&)
Führt eine logische Negation auf einem Ausdruck durch. | Logischer NOT-Operator (!)
Führt eine logische Disjunktion auf zwei Ausdrücken durch. | Logischer OR-Operator (||)
Dividiert zwei Zahlen und gibt den Rest zurück. | Modulo-Operator (%)
Multipliziert zwei Zahlen miteinander. | Multiplikationsoperator (*)
Erstellt ein neues Objekt. | new-Operator
Vergleicht zwei Ausdrücke miteinander, um zu ermitteln, ob sie einen unterschiedlichen Wert oder Datentyp aufweisen. | Nichtidentitätsoperator (!==)
Eine Liste mit Informationen zum Ausführungsvorrang von JScript-Operatoren. | Operatorvorrang
Führt eine Subtraktion von zwei Ausdrücken durch. | Subtraktionsoperator (-)
Gibt eine Zeichenfolge zurück, die den Datentyp eines Ausdrucks angibt. | typeof-Operator
Gibt den negativen Wert eines numerischen Ausdrucks an. | Unärer Negationsoperator (-)
Verschiebt die Bits eines Ausdrucks ohne Beibehaltung des Vorzeichens nach rechts. | Vorzeichenloser Rechtsschiebeoperator (>>>)
Verhindert bei einem Ausdruck die Rückgabe eines Wertes. | void-Operator


Additionszuweisungsoperator (+=)

Wird zum Inkrementieren einer Variablen um einen angegebenen Wert verwendet.

Ergebnis += Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung dieses Operators ist eine Kurzform der folgenden Zuweisung:

Ergebnis = Ergebnis + Ausdruck

Der den Ausdrücken zugrunde liegende Untertyp bestimmt das Verhalten des Additionszuweisungsoperators (+=) auf folgende Weise:

Bedingung | Verhalten
Beide Ausdrücke sind numerisch oder boolesch | Addition
Beide Ausdrücke sind Zeichenfolgen | Verkettung
Ein Ausdruck ist numerisch, der andere ist eine Zeichenfolge | Verkettung

Anforderungen

Version 1

Siehe auch

Additionsoperator (+) | Operatorvorrang | Operatoren: Zusammenfassung


Additionsoperator (+) (JScript)

JScript

Additionsoperator (+)

Addiert den Wert eines numerischen Ausdrucks zu einem anderen oder verkettet zwei Zeichenfolgen.

Ergebnis = Ausdruck1 + Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der den Ausdrücken zugrunde liegende Untertyp bestimmt das Verhalten des Additionsoperators (+) auf folgende Weise:

Bedingung | Verhalten
Beide Ausdrücke sind numerisch oder boolesch | Addition
Beide Ausdrücke sind Zeichenfolgen | Verkettung
Ein Ausdruck ist numerisch, der andere ist eine Zeichenfolge | Verkettung

Anforderungen

Version 1

Siehe auch

Additionszuweisungsoperator (+=) | Operatorvorrang | Operatoren: Zusammenfassung


Zuweisungsoperator (=) (JScript)

JScript

Zuweisungsoperator (=)

Weist einer Variablen einen Wert zu.

Ergebnis = Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger numerischer Ausdruck.

Hinweise

Da sich der Zuweisungsoprator (=) wie alle anderen Operatoren verhält, weisen Ausdrücke mit diesem Operator nicht nur Variablen Werte zu, sondern erhalten auch selber diesen Wert. Sie können also Zuweisungsoperatoren folgendermaßen verketten:

j = k = l = 0;

j, k und l erhalten in dieser Anweisung den Wert Null zugewiesen.

Anforderungen

Version 1

Operatorvorrang | Operatoren: Zusammenfassung


Bitweiser AND-Zuweisungsoperator (&=)

Führt eine bitweise AND-Operation auf dem Wert einer Variablen und auf dem Wert eines Ausdrucks durch und weist das Ergebnis einer Variablen zu.

Ergebnis &= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung dieses Operators ist eine Kurzform der folgenden Zuweisung:

Ergebnis = Ergebnis & Ausdruck

Der bitweise AND-Zuweisungsoperator (&=) liest die Binärdaten der Werte für Ergebnis und Ausdruck und führt eine bitweise AND-Operation durch. Diese Operation zeigt folgendes Verhalten:

0101    (Ergebnis)
1100    (Ausdruck)
----
0100    (Ausgabe)

Jedes Mal, wenn beide Ausdrücke eine 1 an einer Stelle aufweisen, hat auch das Ergebnis an dieser Stelle eine 1. Andernfalls enthält das Ergebnis eine 0 an dieser Stelle.

Anforderungen

Version 1

Siehe auch

Bitweiser AND-Operator (&) | Operatorvorrang | Operatoren: Zusammenfassung


Bitweiser AND-Operator (&)

Führt eine bitweise AND-Verknüpfung auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 & Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der bitweise AND-Operator (&) nimmt die Binärdaten zweier Ausdrücke und führt eine bitweise AND-Operation durch. Das Ergebnis dieser Operation sieht so aus:

0101   (Ausdruck1)
1100   (Ausdruck2)
----
0100   (Ergebnis)

Jedes Mal, wenn beide Ausdrücke eine 1 an einer Stelle aufweisen, hat auch das Ergebnis an dieser Stelle eine 1. Andernfalls enthält das Ergebnis eine 0 an dieser Stelle.

Anforderungen

Version 1

Siehe auch

Bitweiser AND-Zuweisungsoperator (&=) | Operatorvorrang | Operatoren: Zusammenfassung


Linksschiebeoperator (<<)

Schiebt die Bits eines Ausdrucks nach links.

Ergebnis = Ausdruck1 << Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der Linksschiebeoperator (<<) schiebt die Bits von Ausdruck1 um die Anzahl der Bits, die in Ausdruck2 angegeben sind, nach links. Ein Beispiel:

var temp
temp = 14 << 2

Die Variable temp hat einen Wert von 56, weil 14 (binär 00001110), um zwei Bits nach links verschoben, 56 ergibt (binär 00111000).

Anforderungen

Version 1

Siehe auch

Linksschiebezuweisungsoperator (<<=) | Rechtsschiebeoperator (>>) | Vorzeichenloser Rechtsschiebeoperator (>>>) | Operatorvorrang | Operatoren: Zusammenfassung


Bitweiser NOT-Operator (~)

Führt ein bitweises NOT (Negation) auf einem Ausdruck durch.

Ergebnis = ~ Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Alle unären Operatoren wie der bitweise NOT-Operator (~) werten Ausdrücke wie folgt aus:

  • Auf undefined- oder null-Ausdrücke angewendet, entsteht ein Laufzeitfehler.
  • Objekte werden in Zeichenfolgen umgewandelt.
  • Zeichenfolgen werden nach Möglichkeit in Zahlen konvertiert. Ist dies nicht möglich, so wird ein Laufzeitfehler erzeugt.
  • Boolesche Werte werden wie Zahlen behandelt (0=false, 1=true).

Der Operator wird auf die sich ergebende Zahl angewendet.

Der bitweise NOT-Operator (~) nimmt die Binärdaten des Ausdruckes und führt eine bitweise Negation durch. Das Ergebnis dieser Operation sieht so aus:

0101   (Ausdruck)
----
1010   (Ergebnis)

Jede Ziffer, die im Ausdruck eine 1 ist, wird im Ergebnis eine 0. Jede Ziffer, die im Ausdruck eine 0 ist, wird im Ergebnis eine 1.

Anforderungen

Version 1

Siehe auch

Logischer NOT-Operator (!) | Operatorvorrang | Operatoren: Zusammenfassung


Bitweiser OR-Zuweisungsoperator (|=)

Führt eine bitweise OR-Operation auf dem Wert einer Variablen und auf dem Wert eines Ausdrucks durch und weist das Ergebnis einer Variablen zu.

Ergebnis |= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung dieses Operators ist eine Kurzform der folgenden Zuweisung:

Ergebnis = Ergebnis | Ausdruck

Der bitweise OR-Zuweisungsoperator (|=) liest die Binärdaten der Werte für Ergebnis und Ausdruck und führt eine bitweise OR-Operation durch. Diese Operation zeigt folgendes Verhalten:

0101    (Ergebnis)
1100    (Ausdruck)
----
1101    (Ausgabe)

Jedes Mal, wenn einer der Ausdrücke eine 1 an einer Stelle aufweist, hat auch das Ergebnis an dieser Stelle eine 1. Andernfalls enthält das Ergebnis eine 0 an dieser Stelle.

Anforderungen

Version 1

Siehe auch

Bitweiser OR-Operator (|) | Operatorvorrang | Operatoren: Zusammenfassung


Bitweiser OR-Operator (|)

Führt eine bitweise OR-Operation auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 | Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der bitweise OR-Operator (|) nimmt die Binärdaten zweier Ausdrücke und führt eine bitweise OR-Verknüpfung mit diesen durch. Das Ergebnis dieser Operation sieht so aus:

0101   (Ausdruck1)
1100   (Ausdruck2)
----
1101   (Ergebnis)

Jedes Mal, wenn einer der Ausdrücke eine 1 an einer Stelle aufweist, hat auch das Ergebnis an dieser Stelle eine 1. Andernfalls enthält das Ergebnis eine 0 an dieser Stelle.

Anforderungen

Version 1

Siehe auch

Bitweiser OR-Zuweisungsoperator (|=) | Operatorvorrang | Operatoren: Zusammenfassung


Rechtsschiebeoperator (>>)

Schiebt die Bits eines Ausdrucks unter Beibehaltung der Vorzeichen nach rechts.

Ergebnis = Ausdruck1 >> Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der Rechtsschiebeoperator (>>) schiebt die Bits von Ausdruck1 um die Anzahl der Bits, die in Ausdruck2 angegeben sind, nach rechts. Das Vorzeichenbit von Ergebnis wird verwendet, um die Bits von links aufzufüllen. Nach rechts hinausgeschobene Bits entfallen. So hat beispielsweise nach der Auswertung des folgenden Codes temp den Wert -4: -14 (binär 11110010 ), um zwei Bits nach rechts verschoben, ergibt -4 (binär 11111100).

var temp
temp = -14 >> 2

Anforderungen

Version 1

Siehe auch

Linksschiebeoperator (<<) | Rechtsschiebezuweisungsoperator (>>=) | Vorzeichenloser Rechtsschiebeoperator (>>>) | Operatorvorrang | Operatoren: Zusammenfassung


Bitweiser XOR-Zuweisungsoperator (^=)

Führt eine bitweise Exklusiv-OR-Operation auf einer Variablen und auf einem Ausdruck durch und weist das Ergebnis einer Variablen zu.

Ergebnis ^= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung des bitweisen XOR-Zuweisungsoperators (^=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis ^ Ausdruck

Der bitweise XOR-Zuweisungsoperator (^=) nimmt die Binärdaten zweier Ausdrücke und führt eine bitweise exklusive OR-Verknüpfung durch. Das Ergebnis dieser Operation sieht so aus:

0101    (Ergebnis)
1100    (Ausdruck)
----
1001    (Ergebnis)

Wenn genau einer der Ausdrücke eine 1 an einer Stelle aufweist, hat auch das Ergebnis an dieser Stelle eine 1. Andernfalls enthält das Ergebnis eine 0 an dieser Stelle.

Anforderungen

Version 1

Siehe auch

Bitweiser XOR-Operator (^) | Operatorvorrang | Operatoren: Zusammenfassung |


Bitweiser XOR-Operator (^)

Führt eine bitweise Exklusiv-OR-Operation auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 ^ Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der bitweise XOR-Operator (^) nimmt die Binärdaten zweier Ausdrücke und führt eine bitweise exklusive OR-Operation durch. Das Ergebnis dieser Operation sieht so aus:

0101   (Ausdruck1)
1100   (Ausdruck2)
----
1001   (Ergebnis)

Wenn genau einer der Ausdrücke eine 1 an einer Stelle aufweist, hat auch das Ergebnis an dieser Stelle eine 1. Andernfalls enthält das Ergebnis eine 0 an dieser Stelle.

Anforderungen

Version 1

Siehe auch

Bitweiser XOR-Zuweisungsoperator (^=) | Operatorvorrang | Operatoren: Zusammenfassung |


Kommaoperator (,)

Bewirkt die sequenzielle Ausführung zweier Ausdrücke.

Ausdruck1, Ausdruck2

Argumente

Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der Kommaoperator (,) bewirkt, dass die Ausdrücke auf beiden Seiten von links nach rechts ausgeführt werden. Der Gesamtausdruck erhält den Wert des Ausdruckes rechts des Kommas. Die gebräuchlichste Anwendung für den Kommaoperator (,) ist im Inkrement-Ausdruck einer for-Schleife beinhaltet. Beispiel:

for (i = 0; i < 10; i++, j++)
{
   k = i + j;
}

Die for-Anweisung lässt nur die Ausführung eines einzigen Ausdruckes am Ende jedes Schleifendurchlaufs zu. Der Kommaoperator (,) wird eingesetzt, um zu ermöglichen, dass mehrere Ausdrücke als ein einziger behandelt werden und dadurch die Einschränkung umgangen werden kann.

Anforderungen

Version 1

Siehe auch

for-Anweisung | Operatorvorrang | Operatoren: Zusammenfassung


Vergleichsoperatoren (JScript)

JScript

Vergleichsoperatoren

Gibt einen booleschen Wert zurück, der das Ergebnis des Vergleichs angibt.

Ausdruck1 Vergleichsoperator Ausdruck2

Argumente

Ausdruck1
Beliebiger Ausdruck.
Vergleichsoperator
Beliebiger Vergleichsoperator.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Beim Zeichenfolgenvergleich verwendet JScript den Unicode-Zeichenwert des Zeichenfolgenausdrucks.

Im Folgenden wird beschrieben, wie die verschiedenen Gruppen von Operatoren sich abhängig von Typ und Wert der beiden Ausdrücke Ausdruck1 und Ausdruck2 verhalten:

Relationale Operatoren (<, >, <=, >=)

  • Es wird versucht, sowohl Ausdruck1 als auch Ausdruck2 in Zahlen zu konvertieren.
  • Wenn beide Ausdrücke Zeichenfolgen sind, wird ein lexikographischer Zeichenfolgevergleich durchgeführt.
  • Wenn beide Ausdrücke den Wert NaN haben, wird der Wert False zurückgegeben.
  • Die negative Null entspricht der positiven Null.
  • Die negative Unendlichkeit ist kleiner als jede Zahl, inklusive sich selbst.
  • Die positive Unendlichkeit ist größer als jede Zahl, inklusive sich selbst.

Gleichheit (==, !=)

  • Wenn die Datentypen der beiden Ausdrücke verschieden sind, wird versucht, diese in Zeichenfolgen, Zahlen oder boolesche Werte zu konvertieren.
  • NaN ist zu keiner Zahl gleich, außer zu sich selbst.
  • Die negative Null entspricht der positiven Null.
  • null ist sowohl gleich null als auch gleich undefined.
  • Werte werden als gleich angenommen, wenn es sich dabei um identische Zeichenfolgen, numerisch gleiche Zahlen, das gleiche Objekt oder identische boolesche Werte handelt, oder sie können, wenn es sich um verschiedene Datentypen handelt, zwangsweise in eine dieser Möglichkeiten konvertiert werden.
  • Bei jedem anderen Vergleich werden die Werte als ungleich angesehen.

Identität (===, !==)

Diese Operatoren verhalten sich wie Gleichheitsoperatoren, außer dass keine Typkonvertierung durchgeführt wird und die Typen identisch sein müssen, um als gleich betrachtet zu werden.

Anforderungen

Version 1

Operatorvorrang | Operatoren: Zusammenfassung


Verbundzuweisungsoperatoren

In der folgenden Tabelle sind JScript-Zuweisungsoperatoren aufgeführt.

Operator | Symbol
Addition | +=
Bitweises AND | &=
Bitweises OR | |=
Bitweises XOR | ^=
Division | /=
Linksschieben | <<=
Modulo | %=
Multiplikation | *=
Rechtsschieben | >>=
Subtraktion | -=
Vorzeichenloses Rechtsschieben | >>>=

Anforderungen

Versionsinformationen


Bedingter (ternärer) Operator (?:)

Führt in Abhängigkeit von einer Bedingung einen von zwei Ausdrücken aus.

Test ? Anweisung1 : Anweisung2

Argumente

Test
Beliebiger boolescher Ausdruck.
Anweisung1
Eine Anweisung, die ausgeführt wird, wenn Test den Wert True ergibt. Hierbei kann es sich auch um eine Verbundanweisung handeln.
Anweisung2
Eine Anweisung, die ausgeführt wird, wenn Test den Wert False ergibt. Hierbei kann es sich auch um eine Verbundanweisung handeln.

Hinweise

Der bedingte (ternäre) Operator (?:) ist eine Kurzform für eine if...else-Anweisung. Üblicherweise ist er Teil eines größeren Ausdruckes, der durch eine if...else-Anweisung noch unhandlicher würde. Ein Beispiel:

var jetzt = new Date();
var begruessung = "Guten" + ((jetzt.getHours() > 17) ? " Abend." : " Tag.");

Das Beispiel erstellt die Zeichenfolge "Guten Abend.", wenn es später als 18.00 Uhr ist. Der gleiche Code mit einer if...else-Anweisung:

var jetzt = new Date();
var begruessung = "Guten";
if (jetzt.getHours() > 17)
   begruessung += " Abend.";
else
   begruessung += " Tag.";

Anforderungen

Version 1

Siehe auch

if...else-Anweisung | Operatorvorrang | Operatoren: Zusammenfassung


delete-Operator

Löscht eine Eigenschaft aus einem Objekt, oder entfernt ein Element aus einem Array.

delete Ausdruck

Das Argument Ausdruck ist ein gültiger Ausdruck in JScript, der gewöhnlich einen Eigenschaftennamen oder ein Arrayelement ergibt.

Hinweise

Wenn das Ergebnis von Ausdruck ein Objekt ist, die in Ausdruck angegebene Eigenschaft existiert und das Objekt nicht erlaubt, diese zu löschen, wird false zurückgegeben.

In allen anderen Fällen wird true zurückgegeben.

Anforderungen

Version 3

Operatorvorrang | Operatoren: Zusammenfassung


Divisionszuweisungsoperator (/=)

Dividiert den Wert einer Variablen durch den Wert eines Ausdrucks und weist das Ergebnis einer Variablen zu.

Ergebnis /= Ausdruck

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck
Beliebiger numerischer Ausdruck.

Hinweise

Die Verwendung des Divisionszuweisungsoperators (/=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis / Ausdruck

Anforderungen

Version 1

Siehe auch

Divisionsoperator (/) | Operatorvorrang | Operatoren: Zusammenfassung |


Divisionsoperator (/) (JScript)

JScript

Divisionsoperator (/)

Dividiert den Wert zweier Ausdrücke.

Ergebnis = Zahl1 / Zahl2

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Anforderungen

Version 1

Siehe auch

Divisionszuweisungsoperator (/=) | Operatorvorrang | Operatoren: Zusammenfassung


in-Operator

Testet das Vorhandensein einer Eigenschaft in einem Objekt.

Ergebnis = Eigenschaft in Objekt

Argumente

Ergebnis
Erforderlich. Eine Variable.
Eigenschaft
Erforderlich. Ein Ausdruck, der als Ergebnis einen Zeichenfolgenausdruck haben kann.
Objekt
Erforderlich. Ein beliebiges Objekt.

Hinweise

Der in-Operator prüft, ob ein Objekt über eine Eigenschaft mit dem Namen "Eigenschaft" verfügt. Er prüft weiterhin den Prototypen des Objekts, um zu erkennen, ob die Eigenschaft Teil der Prototypenverkettung ist.

Anforderungen

Version 1

Operatorvorrang | Operatoren: Zusammenfassung


Inkrementoperator (++) und Dekrementoperator (--)

Inkrementiert oder dekrementiert den Wert einer Variablen um eins.

Syntax 1

Ergebnis = ++Variable
Ergebnis = --Variable
Ergebnis = Variable++
Ergebnis = Variable--

Syntax 2

++Variable
--Variable
Variable--
Variable--

Argumente

Ergebnis
Beliebige Variable.
Variable
Beliebige Variable

Hinweise

Inkrement- und Dekrementoperator werden als Kurzform verwendet, um den Wert einer Variablen zu ändern. Der Wert eines Ausdruckes, der einen dieser Operatoren enthält, ist abhängig davon, ob der Operator vor oder nach der Variablen angegeben wird:

var j, k;
k = 2;
j = ++k;

j wird der Wert 3 zugewiesen, weil das Inkrementieren vor dem Verarbeiten des Ausdruckes vorgenommen wird.

Vergleichen Sie dies mit:

var j, k;
k = 2;
j = k++;

Hier wird j der Wert 2 zugewiesen, weil das Inkrementieren nach dem Verarbeiten des Ausdruckes vorgenommen wird.

Anforderungen

Version 1

Operatorvorrang | Operatoren: Zusammenfassung


instanceof-Operator

Gibt einen booleschen Wert zurück, der angibt, ob ein Objekt eine Instanz einer bestimmten Klasse ist.

Ergebnis = Objekt instanceof Klasse

Argumente

Ergebnis
Erforderlich. Beliebige Variable.
Objekt
Erforderlich. Beliebiger Objektausdruck.
Klasse
Erforderlich. Beliebige definierte Objektklasse.

Hinweise

Der instanceof-Operator gibt true zurück, wenn Objekt eine Instanz von Klasse ist. Er gibt false zurück, wenn Objekt keine Instanz der angegebenen Klasse oder null ist.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des instanceof-Operators.

function objTest(obj){
   var i, t, s = "";   // Variablen erstellen.
   t = new Array();   // Array erstellen.
   t["Date"] = Date;   // Array füllen.
   t["Object"] = Object;
   t["Array"] = Array;
      for (i in t)
      {
         if (obj instanceof t[i])   // Objektklasse überprüfen.
         {
            s += "obj ist eine Instanz von " + i + "\n";
         }
         else
         {
            s += "obj ist keine Instanz von " + i + "\n";
         }
   }
   return(s);   // Zeichenfolge zurückgeben.
}

var obj = new Date();
document.write(objTest(obj));

Anforderungen

Version 5

Operatorvorrang | Zusammenfassung


Linksschiebezuweisungsoperator (<<=)

Schiebt den Wert einer Variablen um die Anzahl der Bits, die im Wert eines Ausdrucks angegeben sind, nach links und weist das Ergebnis einer Variablen zu.

Ergebnis <<= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung des Linksschiebezuweisungsoperator (<<=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis << Ausdruck

Der Linksschiebezuweisungsoperator (<<=) schiebt die Bits von Ergebnis um die Anzahl der Bits, die in Ausdruck angegeben sind, nach links. Ein Beispiel:

var temp
temp = 14
temp <<= 2

Die Variable temp hat einen Wert von 56, weil 14 (binär 00001110), um zwei Bits nach links verschoben, 56 ergibt (binär 00111000). Beim Verschieben werden von rechts Null-Bits nachgeschoben.

Anforderungen

Version 1

Siehe auch

Linksschiebeoperator (<<) | Rechtsschiebeoperator (>>) | Vorzeichenloser Rechtsschiebeoperator (>>>) | Operatorvorrang | Operatoren: Zusammenfassung


Logischer AND-Operator (&&)

Führt eine logische Verknüpfung zweier Ausdrücke durch.

Ergebnis = Ausdruck1 && Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Das Argument Ergebnis hat nur dann den Wert True, wenn beide Ausdrücke den Wert True haben. Sobald einer der beiden Ausdrücke den Wert False hat, hat das Ergebnis ebenfalls den Wert False.

JScript verwendet bei der Konvertierung von nicht-booleschen Werten in boolesche Werte die folgenden Regeln:

  • Alle Objekte werden als True angesehen.
  • Zeichenfolgen haben nur dann den Wert False, wenn sie leer sind.
  • null und undefined werden als False angesehen.
  • Zahlen sind nur dann False, wenn sie Null sind.

Anforderungen

Version 1

Operatorvorrang | Operatoren: Zusammenfassung


Logischer NOT-Operator (!)

Führt eine logische Negation auf einem Ausdruck durch.

Ergebnis = !Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die folgende Tabelle veranschaulicht, wie Ergebnis bestimmt wird.

Ausdruck | Ergebnis
True | False
False | True

Alle unären Operatoren wie der logische NOT-Operator (!) werten Ausdrücke wie folgt aus:

  • Auf undefined-Ausdrücke oder null-Ausdrücke angewendet, wird ein Laufzeitfehler hervorgerufen.
  • Objekte werden in Zeichenfolgen umgewandelt.
  • Zeichenfolgen werden nach Möglichkeit in Zahlen konvertiert. Ist dies nicht möglich, so wird ein Laufzeitfehler erzeugt.
  • Boolesche Werte werden wie Zahlen behandelt (0=False, 1=True).

Der Operator wird auf die sich ergebende Zahl angewendet.

Für den logischen NOT-Operator (!) gilt: Ist Ausdruck von Null verschieden, so ist Ergebnis gleich Null. Ist Ausdruck gleich Null, so ist Ergebnis gleich 1.

Anforderungen

Version 1

Siehe auch

Bitweiser NOT-Operator (~) | Operatorvorrang | Operatoren: Zusammenfassung |


Logischer OR-Operator (||)

Führt eine logische Disjunktion auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 || Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Ist einer der beiden Ausdrücke True, ist das Ergebnis ebenfalls True. Die folgende Tabelle veranschaulicht, wie Ergebnis bestimmt wird:

Ausdruck1 | Ausdruck2 | Ergebnis
True | True | True
True | False | True
False | True | True
False | False | False

JScript verwendet bei der Konvertierung von nicht-booleschen Werten in boolesche Werte die folgenden Regeln:

  • Alle Objekte werden als True angesehen.
  • Zeichenfolgen sind ausschließlich dann False, wenn sie leer sind.
  • null und undefined werden als False angesehen.
  • Zahlen sind ausschließlich dann False, wenn sie 0 sind.

Anforderungen

Version 1

Operatorvorrang | Operatoren: Zusammenfassung


Modulozuweisungsoperator (%=)

Dividiert den Wert einer Variablen durch den Wert eines Ausdrucks und weist das Ergebnis einer Variablen zu.

Ergebnis %= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger numerischer Ausdruck.

Hinweise

Die Verwendung des Modulozuweisungsoperators (%=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis % Ausdruck

Anforderungen

Version 1

Siehe auch

Modulo-Operator (%) | Operatorvorrang | Operatoren: Zusammenfassung |


Modulo-Operator (%)

Dividiert den Wert eines Ausdrucks durch den Wert eines anderen und gibt den Rest zurück.

Ergebnis = Zahl1 % Zahl2

Argumente

Ergebnis
Beliebige Variable.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Der Modulo-Operator (oder Restwert-Operator) dividiert Zahl1 durch Zahl2, rundet dabei Fließkommawerte in ganze Zahlen und gibt den Rest als Ergebnis zurück. Das Ergebnis des folgenden Ausdruckes (A) ist zum Beispiel 5.6.

A = 19 % 6.7

Anforderungen

Version 1

Siehe auch

Modulozuweisungsoperator (%=) | Operatorvorrang | Operatoren: Zusammenfassung


Multiplikationszuweisungsoperator (*=)

Multipliziert den Wert einer Variablen mit dem Wert eines Ausdrucks und weist das Ergebnis einer Variablen zu.

Ergebnis *= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung des Multiplikationszuweisungsoperators (*=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis * Ausdruck

Anforderungen

Version 1

Siehe auch

Multiplikationsoperator (*) | Operatorvorrang | Operatoren: Zusammenfassung |


Multiplikationsoperator (*) (JScript)

JScript

Multiplikationsoperator (*)

Multipliziert den Wert zweier Ausdrücke miteinander.

Ergebnis = Operand1*Operand2

Argumente

Ergebnis
Beliebige Variable.
Operand1
Beliebiger Ausdruck.
Operand2
Beliebiger Ausdruck.

Anforderungen

Version 1

Siehe auch

Multiplikationszuweisungsoperator (*=) | Operatorvorrang | Operatoren: Zusammenfassung


new-Operator

Erstellt ein neues Objekt.

new Konstruktor[(Argumente)]

Argumente

Konstruktor
Erforderlich. Konstruktor des Objekts. Die Klammern für den Funktionsaufruf können weggelassen werden, wenn der Konstruktor keine Argumente benötigt.
Argumente
Optional. Argumente, die an den neuen Konstruktor des Objekts übertragen werden.

Hinweise

Der new-Operator führt folgende Schritte aus:

  • Es wird ein Objekt ohne Elemente erstellt.
  • Der Konstruktor für dieses Objekt wird aufgerufen, und ein Zeiger auf das neu angelegte Objekt wird als this-Zeiger übergeben.
  • Das Objekt wird entsprechend den an den Konstruktor übergebenen Argumenten initialisiert.

Es folgen Beispiele gültiger Verwendungsweisen des new-Operators.

mein_obj = new Object;
mein_arr = new Array();
mein_dat = new Date("5 Jan 1996");

Anforderungen

Version 1

function-Anweisung


Rechtsschiebezuweisungsoperator (>>=)

Schiebt den Wert einer Variablen um die Anzahl der Bits, die im Wert eines Ausdrucks angegeben sind, unter Beibehaltung des Vorzeichens nach rechts und weist das Ergebnis zur Variablen zu.

Ergebnis >>= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung des Rechtsschiebezuweisungsoperators (>>=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis >> Ausdruck

Der Rechtsschiebezuweisungsoperator (>>=) schiebt die Bits von Ergebnis um die Anzahl der Bits, die in Ausdruck angegeben sind, nach rechts. Das Vorzeichenbit von Ergebnis wird verwendet, um die Bits von links aufzufüllen. Nach rechts hinausgeschobene Bits entfallen. So hat beispielsweise nach der Auswertung des folgenden Codes temp den Wert -4: -14 (binär 11110010 ), um zwei Bits nach rechts verschoben, ergibt -4 (binär 11111100).

var temp
temp = -14
temp >>= 2

Anforderungen

Version 1

Siehe auch

Linksschiebeoperator (<<) | Rechtsschiebeoperator (>>) | Vorzeichenloser Rechtsschiebeoperator (>>>) | Operatorvorrang | Operatoren: Zusammenfassung


Subtraktionszuweisungsoperator (-=)

Subtrahiert den Wert eines Ausdrucks vom Wert einer Variablen und weist das Ergebnis einer Variablen zu.

Ergebnis -= Ausdruck

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck
Beliebiger numerischer Ausdruck.

Hinweise

Die Verwendung des Subtraktionszuweisungsoperator (-=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis - Ausdruck

Anforderungen

Version 1

Siehe auch

Subtraktionsoperator | Operatorvorrang | Operatoren: Zusammenfassung


Minusoperator (-) (JScript)

JScript

Minusoperator (-)

Subtrahiert den Wert eines Ausdrucks von einem anderen oder bietet die unäre Negation eines einzelnen Ausdrucks.

Syntax 1

Ergebnis = Zahl1 - Zahl2

Syntax 2

-Zahl

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl
Beliebiger numerischer Ausdruck.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Bei Syntax 1 wird der Minusoperator zur Bestimmung der Differenz zweier Zahlen durch arithmetische Subtraktion verwendet. Bei Syntax 2 wird der Minusoperator als unärer Negationsoperator zur Anzeige des negativen Wertes eines Ausdrucks verwendet.

In Syntax 2 und allen anderen unären Operatoren werden Ausdrücke wie folgt ausgewertet:

  • Auf undefined- oder null-Ausdrücke angewendet, entsteht ein Laufzeitfehler.
  • Objekte werden in Zeichenfolgen umgewandelt.
  • Zeichenfolgen werden, wenn möglich, in Zahlen konvertiert. Andernfalls wird ein Laufzeitfehler erzeugt.
  • Boolesche Werte werden wie Zahlen behandelt (0=false, 1=true).

Der Operator wird auf die sich ergebende Zahl angewendet. Wenn in Syntax 2 die sich ergebende Zahl ungleich Null ist, ist Ergebnis gleich der sich ergebenden Zahl mit umgekehrtem Vorzeichen. Wenn die sich ergebende Zahl Null ist, ist Ergebnis gleich Null.

Anforderungen

Version 1

Siehe auch

Subtraktionszuweisungsoperator (-=) | Operatorvorrang | Operatoren: Zusammenfassung


typeof-Operator

Gibt eine Zeichenfolge zurück, die den Datentyp eines Ausdruckes angibt.

typeof[(]Ausdruck[)];

Das Argument Ausdruck ist ein beliebiger Ausdruck, zu dem Typinformationen benötigt werden.

Hinweise

Der typeof-Operator gibt die Typinformationen als Zeichenfolge zurück. Es gibt sechs mögliche Rückgabewerte für typeof: "number", "string", "boolean", "object", "function" und "undefined".

In der typeof-Syntax sind die Klammern optional.

Anforderungen

Version 1

Operatorvorrang | Zusammenfassung


Vorzeichenloser Rechtsschiebeoperator (>>>)

Verschiebt die Bits eines Ausdruckes nach rechts ohne Vorzeichen.

Ergebnis = Ausdruck1 >>> Ausdruck2

Argumente

Ergebnis
Beliebige Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Der vorzeichenlose Rechtsschiebeoperator (>>>) schiebt die Bits von Ausdruck1 um die Anzahl der Bits, die in Ausdruck2 angegeben sind, nach rechts. Von links wird mit Nullen aufgefüllt. Nach rechts hinausgeschobene Bits entfallen. Ein Beispiel:

var temp
temp = -14 >>> 2

Die Variable temp hat einen Wert von 1073741820, da -14 (binär 11111111 11111111 11111111 11110010) um zwei Bits verschoben 1073741820 (binär 00111111 11111111 11111111 11111100 ) ergibt.

Anforderungen

Version 1

Siehe auch

Vorzeichenloser Rechtsschiebezuweisungsoperator (>>>=) | Linksschiebeoperator (<<) | Rechtsschiebeoperator (>>) | Operatorvorrang | Operatoren: Zusammenfassung


Vorzeichenloser Rechtsschiebezuweisungsoperator (>>>=)

Schiebt den Wert einer Variablen um die Anzahl der Bits, die im Wert eines Ausdrucks angegeben sind, ohne das Vorzeichen beizubehalten nach rechts und weist das Ergebnis einer Variablen zu.

Ergebnis >>>= Ausdruck

Argumente

Ergebnis
Beliebige Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die Verwendung des vorzeichenlosen Rechtsschiebezuweisungsoperators (>>>=) entspricht genau der folgenden Eingabe:

Ergebnis = Ergebnis >>> Ausdruck

Der vorzeichenlose Rechtsschiebezuweisungsoperator (>>>=) schiebt die Bits von Ergebnis um die Anzahl der Bits, die in Ausdruck angegeben sind, nach rechts. Von links wird mit Nullen aufgefüllt. Nach rechts hinausgeschobene Bits entfallen. Ein Beispiel:

var temp
temp = -14
temp >>>= 2

Die Variable temp hat einen Wert von 1073741820, da -14 (binär 11111111 11111111 11111111 11110010) um zwei Bits verschoben 1073741820 (binär 00111111 11111111 11111111 11111100) ergibt.

Anforderungen

Version 1

Siehe auch

Vorzeichenloser Rechtsschiebeoperator (>>>) | Linksschiebeoperator (<<) | Rechtsschiebeoperator (>>) | Operatorvorrang | Operatoren: Zusammenfassung


void-Operator

Verhindert bei einem Ausdruck die Rückgabe eines Wertes.

void Ausdruck

Das Argument Ausdruck ist ein beliebiger gültiger JScript-Ausdruck.

Hinweise

Der void-Operator wertet seinen Ausdruck aus und gibt undefined zurück. Er wird meistens in Situationen verwendet, in denen ein Ausdruck ausgewertet werden, das Ergebnis aber für den Rest des Skriptes nicht sichtbar sein soll.

Anforderungen

Version 2

Operatorvorrang | Zusammenfassung


JScript-Eigenschaften

In der folgenden Tabelle sind JScript-Eigenschaften aufgeführt.

Beschreibung | Sprachelement
Gibt die neun zuletzt gespeicherten Teile zurück, die während des Mustervergleichs gefunden wurden. | $1...$9-Eigenschaften
Gibt ein Array zurück, das alle Argumente enthält, die an die derzeit ausgeführte Funktion übergeben wurden. | arguments-Eigenschaft
Gibt einen Verweis auf die Funktion zurück, die die aktuelle Funktion aufgerufen hat. | caller-Eigenschaft
Gibt die Funktion an, die ein Objekt erstellt. | constructor-Eigenschaft
Gibt die einem bestimmten Fehler zugehörige beschreibende Zeichenfolge zurück oder legt diese fest. | description-Eigenschaft
Gibt die Eulersche Konstante, die Basis des natürlichen Logarithmus, zurück. | E-Eigenschaft
Gibt die Zeichenposition zurück, an der die erste erfolgreiche Entsprechung in einer durchsuchten Zeichenfolge beginnt. | index-Eigenschaft
Gibt einen Startwert von Number.POSITIVE_INFINITY zurück. | Infinity-Eigenschaft
Gibt die Zeichenfolge zurück, die durchsucht wurde. | input-Eigenschaft
Gibt die Zeichenposition zurück, an der die letzte erfolgreiche Entsprechung in einer durchsuchten Zeichenfolge beginnt. | lastIndex-Eigenschaft
Gibt einen ganzzahligen Wert zurück, der um eins höher ist als der höchste Index der in einem Array definierten Elemente. | length-Eigenschaft (Array)
Gibt die Zahl der Argumente zurück, die für eine Funktion definiert sind. | length-Eigenschaft (Function)
Gibt die Länge eines String-Objekts zurück. | length-Eigenschaft (String)
Gibt den natürlichen Logarithmus von 2 zurück. | LN2-Eigenschaft
Gibt den natürlichen Logarithmus von 10 zurück. | LN10-Eigenschaft
Gibt den Logarithmus der Eulerschen Konstante e zur Basis 2 zurück. | LOG2E-Eigenschaft
Gibt den Logarithmus der Eulerschen Konstante e zur Basis 10 zurück. | LOG10E-Eigenschaft
Gibt die größte Zahl zurück, die in JScript dargestellt werden kann. | MAX_VALUE-Eigenschaft
Gibt die Null am nächsten kommende Zahl zurück, die in JScript dargestellt werden kann. | MIN_VALUE-Eigenschaft
Gibt den Sonderwert NaN zurück, der angibt, dass ein Ausdruck keine Zahl ist. | NaN-Eigenschaft (Global)
Gibt den Sonderwert NaN zurück, der angibt, dass ein Ausdruck keine Zahl ist. | NaN-Eigenschaft (Number)
Gibt einen kleineren Wert als die kleinste in JScript darstellbare negative Zahl (-Number.MAX_VALUE) zurück. | NEGATIVE_INFINITY-Eigenschaft
Gibt den einem bestimmten Fehler zugehörigen numerischen Wert zurück oder legt diesen fest. | number-Eigenschaft
Gibt das Verhältnis des Kreisumfangs zum Kreisdurchmesser zurück (ca. 3,141592653589793). | PI-Eigenschaft
Gibt einen größeren Wert als die größte in JScript darstellbare Zahl (Number.MAX_VALUE) zurück. | POSITIVE_INFINITY-Eigenschaft
Gibt einen Verweis auf den Prototyp einer Objektklasse zurück. | prototype-Eigenschaft
Gibt eine Kopie des Textes des Musters eines regulären Ausdrucks zurück. | source-Eigenschaft
Gibt die Quadratwurzel von 0,5 (oder 1 geteilt durch die Quadratwurzel von 2) zurück. | SQRT1_2-Eigenschaft
Gibt die Quadratwurzel von 2 zurück. | SQRT2-Eigenschaft


0...n-Eigenschaften

Gibt den tatsächlichen Wert einzelner Argumente aus einem arguments-Objekt zurück, das von der arguments-Eigenschaft einer ausgeführten Funktion zurückgegeben wird.

[Funktion.]arguments[[0|1|2|...|n]]

Argumente

Funktion
Optional. Der Name des derzeit ausgeführten Function-Objekts.
0, 1, 2, …, n
Erforderlich. Nicht negative Ganzzahl im Bereich 0 bis n, wobei 0 das erste Argument und n das letzte Argument darstellt. Der Wert des letzten Arguments n ist arguments.length-1.

Hinweise

Die Werte, die von den 0...n-Eigenschaften zurückgegeben werden, sind die tatsächlichen Werte, die an die ausgeführte Funktion übergeben werden. Obwohl es sich nicht wirklich um ein Array von Argumenten handelt, wird auf die einzelnen Argumente, aus denen das arguments-Objekt besteht, auf die gleiche Weise zugegriffen wie auf Arrayelemente.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der 0...n-Eigenschaften des arguments-Objekts. Übergeben Sie zum besseren Verständnis des Beispiels ein oder mehrere Argumente an die Funktion:

function ArgTest(){
   var s = "";
   s += "Die einzelnen Argumente sind: "
   for (n=0; n<= arguments.length; n++){
      s += ArgTest.arguments[n];
      s += " ";
   }
   return(s);
}
print(ArgTest(1, 2, "Hallo", new Date()));

Anforderungen

Version 5

Betrifft: arguments-Objekt | Function-Objekt


$1...$9-Eigenschaften

Gibt die neun zuletzt gespeicherten Teile zurück, die während des Mustervergleichs gefunden wurden. Schreibgeschützt.

RegA.$n

Argumente

RegA
Stets das globale RegExp-Objekt.

n

Eine Ganzzahl zwischen 1 und 9.

Hinweise

Der Wert der Eigenschaften $1...$9 wird immer dann geändert, wenn eine in Klammern gesetzte Entsprechung gefunden wurde. In einem Muster eines regulären Ausdruckes können beliebig viele in Klammern gesetzte untergeordnete Zeichenfolgen angegeben werden, jedoch werden nur die zuletzt gefundenen neu gespeichert.

Das folgende Beispiel veranschaulicht die Verwendung der $1...$9-Eigenschaften:

function MatchesDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "$1 enthält: " + RegExp.$1 + "\n";
   s += "$2 enthält: " + RegExp.$2 + "\n";
   s += "$3 enthält: " + RegExp.$3;
   return(s);
}

Anforderungen

Version 1

Siehe auch

RegExp-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


arguments-Eigenschaft

Gibt das arguments-Objekt zum aktuellen Ausführen des Function-Objekts zurück.

Funktion.arguments

Das Argument Funktion ist der Name der aktuell ausgeführten Funktion und kann weggelassen werden.

Hinweise

Die arguments-Eigenschaft ermöglicht der Funktion, eine variable Anzahl von Argumenten zu verarbeiten. Die length-Eigenschaft des arguments-Objekts enthält die Anzahl der an die Funktion übergebenen Argumente. Auf die einzelnen im arguments-Objekt enthaltenen Argumente kann auf dieselbe Weise zugegriffen werden, wie auf Arrayelemente.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der arguments-Eigenschaft:

function ArgTest(){
   var i, s, argZahl = ArgTest.arguments.length;
   s = argZahl;
   if (argZahl < 2)
      s += " Argument wurde an ArgTest übergeben. Es war ";
   else
      s += " Argumente wurden an ArgTest übergeben. Diese waren " ;
   for (i = 0; i < argZahl; i++)
      {
         s += arguments[i] + " ";
      }
   return(s);
}

Anforderungen

Version 2

Siehe auch

Arguments-Objekt | function-Anweisung

Betrifft: Function-Objekt


callee-Eigenschaft

Gibt das derzeit ausgeführte Function-Objekt zurück, d. h. den Textkörper des angegebenen Function-Objekts.

[Funktion.]arguments.callee

Das optionale Funktion-Argument ist der Name des derzeit ausgeführten Function-Objekts.

Hinweise

Die callee-Eigenschaft ist ein Mitglied des arguments-Objekts, das erst verfügbar wird, wenn die zugehörige Funktion ausgeführt wird.

Der Startwert der callee-Eigenschaft ist das derzeit ausgeführte Function-Objekt. Dies ermöglicht es anonymen Funktionen, rekursiv zu sein.

Beispiel

function Fakultaet(n){
  if (n <= 0)
  return 1;
     else
    return n * arguments.callee(n - 1)
}
print(Fakultaet(3));

Anforderungen

Version 5.5

Betrifft: arguments-Objekt | Function-Objekt


caller-Eigenschaft

Gibt einen Verweis auf die Funktion zurück, die die aktuelle Funktion aufgerufen hat.

Funktionsname.caller

Das Argument Funktionsname ist der Name einer ausführenden Funktion.

Hinweise

Die caller-Eigenschaft einer Funktion ist nur während ihrer Ausführung definiert. Falls die Funktion von der obersten Ebene eines JScript-Programms aufgerufen wird, enthält caller den Wert null.

Wird die caller-Eigenschaft als Zeichenfolge verwendet, so entspricht dies Funktionsname.toString, d. h., der dekompilierte Text der Funktion wird verwendet.

Das folgende Beispiel veranschaulicht die Verwendung der caller-Eigenschaft:

function AufrufEbene(){
   if (AufrufEbene.caller == null)
      return("AufrufEbene wurde von der obersten Ebene aufgerufen.");
   else
      return("AufrufEbene wurde von einer anderen Funktion aufgerufen.");
}

Anforderungen

Version 2

Siehe auch

function-Anweisung

Betrifft: Function-Objekt


constructor-Eigenschaft

Gibt die Funktion an, die ein Objekt erstellt.

Objekt.constructor

Das erforderliche Argument Objekt ist der Name eines Objekts oder einer Funktion.

Hinweise

Die constructor-Eigenschaft ist ein Element des Prototyps jedes Objekts, das einen Prototyp besitzt. Dies umfasst alle intrinsischen JScript-Objekte außer den Objekten Global und Math. Die constructor-Eigenschaft enthält einen Verweis auf die Funktion, die Instanzen dieses bestimmten Objekts erstellt.

Beispiele

x = new String("Hallo");
if (x.constructor == String)
   // Führt etwas aus (die Bedingung ist wahr).

oder

function EigeneFunk {
   // Rumpf der Funktion.
}

y = new EigeneFunk;
if (y.constructor == EigeneFunk)
   // Führt etwas aus (die Bedingung ist wahr).

Anforderungen

Version 2

Siehe auch

prototype-Eigenschaft

Betrifft: Array-Objekt | Boolean-Objekt | Date-Objekt | Function-Objekt | Math-Objekt | Number-Objekt | Object-Objekt | String-Objekt


description-Eigenschaft

Legt die einem bestimmten Fehler zugewiesene beschreibende Zeichenfolge fest oder gibt diese zurück.

Objekt.description [= Zeichenfolgenausdruck]

Argumente

Objekt
Erforderlich. Beliebige Instanz eines Error-Objekts.
Zeichenfolgenausdruck
Optional. Ein Zeichenfolgenausdruck mit einer Beschreibung des Fehlers.

Hinweise

Die description-Eigenschaft enthält eine Zeichenfolge mit der Fehlermeldung, die einem bestimmten Fehler zugeordnet ist. Verwenden Sie den in dieser Eigenschaft enthaltenen Wert, um einen Benutzer auf einen Fehler hinzuweisen, den Sie nicht beheben können oder möchten.

Das folgende Beispiel veranschaulicht die Verwendung der description-Eigenschaft:

try
   x = y   // Einen Fehler verursachen.
catch(var e){   // Lokale Variable e erstellen.
   document.write(e)   // Gibt "[object Error]" aus.
   document.write((e.number & 0xFFFF))   // Gibt 5009 aus.
   document.write(e.description)   // Gibt "'y' ist undefiniert." aus.
}

Anforderungen

Version 5

Siehe auch

number-Eigenschaft | message-Eigenschaft | name-Eigenschaft

Betrifft: Error-Objekt


E-Eigenschaft

Gibt die Eulersche Konstante (die Basis des natürlichen Logarithmus) zurück. Die E-Eigenschaft hat etwa den Wert 2,718.

numVar = Math.E

Anforderungen

Version 1

Siehe auch

exp-Methode | Math-Objekt Eigenschaften

Betrifft: Math-Objekt


global-Eigenschaft (JScript)

JScript

global-Eigenschaft

Gibt einen booleschen Wert zurück, der den Status des mit einem regulären Ausdruck verwendeten global-Flags (g) angibt. Der Standard ist false. Schreibgeschützt.

rgAusdr.global

Der erforderliche rgAusdr-Verweis ist eine Instanz eines Regular Expression-Objekts.

Hinweise

Die global-Eigenschaft gibt true zurück, wenn das global-Flag für einen regulären Ausdruck gesetzt ist, und false, wenn dies nicht der Fall ist.

Wenn es verwendet wird, gibt das global-Flag an, dass bei einer Suche alle Vorkommen des Musters in der zu durchsuchenden Zeichenfolge gesucht werden sollen, nicht nur das erste. Dies nennt man auch "globale Suche".

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der global-Eigenschaft. Wenn Sie "g" an die unten gezeigte Funktion übergeben, werden alle Instanzen des Wortes "der" durch das Wort "ein" ersetzt. Beachten Sie, dass "Der" am Anfang der Zeichenfolge nicht ersetzt wird. Der Grund hierfür ist, dass der Anfangsbuchstabe ein Großbuchstabe ist und daher nicht mit dem Kleinbuchstaben "d" in "der" übereinstimmt.

Diese Funktion gibt eine Zeichenfolge mit einer Tabelle zurück, die den Status der Eigenschaften anzeigt, die den zulässigen Flags für reguläre Ausdrücke, g, i und m, zugeordnet sind. Die Funktion gibt außerdem die Zeichenfolge mit allen Ersetzungen zurück.

function RegExpEigDemo(Flag){
   if (Flag.match(/[^gim]/))        //Flag auf Gültigkeit prüfen.
     return("Das angegebene Flag ist nicht gültig");
   var e, er, z                    //Deklariert Variablen.
   var sz = "Der Stürmer schoss den Ball auf das Tor,\n";
   sz += "aber der Torwart fing den Ball kurz vor der Linie.";
   er = new RegExp("der", Flag);    //Gibt das zu suchende Muster an.
   e = sz.replace(er, "ein");        //Ersetzt "der" durch "ein".
   z = "Werte der Eigenschaften des regulären Ausdruckes:\n\n"
   z += "global  ignoreCase  multiline\n"
   if (er.global)                  //global-Flag testen.
     z += " True     ";
      else_
     z += "False     ";
   if (er.ignoreCase)              //ignoreCase-Flag testen.
     z += " True  ";
      else_
     z += "False  ";
   if (er.multiline)               //multiline-Flag testen.
     z += "     True     ";
      else_
     z += "     False   ";
   z += "\n\nDie resultierende Zeichenfolge ist:\n\n" + e;
   return(z);                      //Gibt die Ersatzzeichenfolge zurück
}

Anforderungen

Version 5.5

Siehe auch

ignoreCase-Eigenschaft | multiline-Eigenschaft | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


hasOwnProperty-Methode

Gibt einen booleschen Wert zurück, der angibt, ob ein Objekt eine Eigenschaft mit dem angegebenen Namen besitzt.

Objekt.hasOwnProperty(EigName)

Argumente

Objekt
Erforderlich. Instanz eines Objekts.
EigName
Erforderlich. Zeichenfolgenwert eines Eigenschaftennamens.

Hinweise

Die hasOwnProperty-Methode gibt true zurück, wenn Objekt eine Eigenschaft mit dem angegebenen Namen besitzt, und false, wenn dies nicht der Fall ist. Diese Methode überprüft nicht, ob die Eigenschaft in der Prototypenkette des Objekts vorhanden ist; die Eigenschaft muss ein Mitglied des Objekts selbst sein.

Beispiel

Im folgenden Beispiel nutzen alle String-Objekte eine gemeinsame split-Methode. Der folgende Code druckt false und true.

var s = new String("JScript");
print(s.hasOwnProperty("split"));
print(String.prototype.hasOwnProperty("split"));

Anforderungen

Version 5.5

Siehe auch

in-Operator

Betrifft: Object-Objekt


ignoreCase-Eigenschaft

Gibt einen booleschen Wert zurück, der den Status des mit einem regulären Ausdruck verwendeten ignoreCase-Flags (i) angibt. Der Standard ist false. Schreibgeschützt.

rgAusdr.ignoreCase

Der erforderliche rgAusdr-Verweis ist eine Instanz des RegExp-Objekts.

Hinweise

Die ignoreCase-Eigenschaft gibt true zurück, wenn das ignoreCase-Flag für einen regulären Ausdruck gesetzt ist, und false, wenn dies nicht der Fall ist.

Wenn es verwendet wird, gibt das ignoreCase-Flag an, dass bei einer Suche nach dem Muster in der zu durchsuchenden Zeichenfolge die Groß-/Kleinschreibung nicht beachtet werden sollte.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der ignoreCase-Eigenschaft. Wenn Sie "i" an die unten gezeigte Funktion übergeben, werden alle Instanzen des Wortes "der" durch das Wort "ein" ersetzt, einschließlich des "Der" am Anfang. Der Grund hierfür ist, dass bei der Suche mit gesetztem ignoreCase-Flag die Groß-/Kleinschreibung ignoriert wird. Daher stimmt "D" bei der Suche mit "d" überein.

Diese Funktion gibt eine Zeichenfolge mit einer Tabelle zurück, die den Status der Eigenschaften anzeigt, die den zulässigen Flags für reguläre Ausdrücke, g, i und m, zugeordnet sind. Die Funktion gibt außerdem die Zeichenfolge mit allen Ersetzungen zurück.

function RegExpEigDemo(Flag){
   if (Flag.match(/[^gim]/))        //Flag auf Gültigkeit prüfen.
     return("Das angegebene Flag ist nicht gültig");
   var e, er, z                    //Variablen deklarieren.
   var sz = "Der Stürmer schoss den Ball auf das Tor,\n";
   sz += "aber der Torwart fing den Ball kurz vor der Linie.";
   er = new RegExp("der", Flag);    //Gibt das zu suchende Muster an.
   e = sz.replace(er, "ein");        //Ersetzt "der" durch "ein".
   z = "Werte der Eigenschaften des regulären Ausdruckes:\n\n"
   z += "global  ignoreCase  multiline\n"
   if (er.global)                  //global-Flag testen.
     z += " True     ";
      else_
     z += "False     ";
   if (er.ignoreCase)              //ignoreCase-Flag testen.
     z += " True  ";
      else_
     z += "False  ";
   if (er.multiline)               //multiline-Flag testen.
     z += "     True     ";
      else_
     z += "     False   ";
   z += "\n\nDie resultierende Zeichenfolge ist:\n\n" + e;
   return(z);                      //Gibt die Ersatzzeichenfolge zurück
}

Anforderungen

Version 5

Siehe auch

global-Eigenschaft | multiline-Eigenschaft | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


index-Eigenschaft

Gibt die Zeichenposition zurück, an der die erste erfolgreiche Entsprechung einer gesuchten Zeichenfolge beginnt. Schreibgeschützt.

RegExp.index

Das Objekt, das mit dieser Eigenschaft verknüpft ist, ist stets das globale RegExp-Objekt.

Hinweise

Die index-Eigenschaft ist nullbasiert. Der Anfangswert der index-Eigenschaft ist -1. Der Wert ändert sich immer dann, wenn eine erfolgreiche Entsprechung durchgeführt wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der index-Eigenschaft. Diese Funktion durchläuft eine Suchzeichenfolge und druckt die Werte index und lastIndex für jedes Wort in der Zeichenfolge.

function RegExpTest(){
  var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
  if (ver >= 5.5){
    var src = "The rain in Spain falls mainly in the plain.";
    var re = /\w+/g;
    var arr;
    while ((arr = re.exec(src)) != null)
       print(arr.index + "-" + arr.lastIndex + "\t" + arr);
  }
  else{
    alert("Es ist eine höhere Version von JScript erforderlich, damit dies funktioniert");
  }
}

Anforderungen

Version 3

Siehe auch

RegExp-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


Infinity-Eigenschaft

Gibt den Anfangswert von Number.POSITIVE_INFINITY zurück.

Infinity

Hinweise

Die Infinity-Eigenschaft ist ein Element des Global-Objekts. Sie steht erst nach Initialisierung des Skriptmoduls zur Verfügung.

Anforderungen

Version 3

Siehe auch

NEGATIVE_INFINITY-Eigenschaft | POSITIVE_INFINITY-Eigenschaft

Betrifft: Global-Objekt


input-Eigenschaft ($_)

Gibt die Zeichenfolge zurück, auf der mit einem regulären Ausdruck eine Suche durchgeführt wurde. Schreibgeschützt.

RegExp.input

Das Objekt, das mit dieser Eigenschaft verknüpft ist, ist stets das globale RegExp-Objekt.

Hinweise

Der Wert der input-Eigenschaft ändert sich jedesmal, wenn sich die zu durchsuchende Zeichenfolge ändert.

Das folgende Beispiel veranschaulicht die Verwendung der input-Eigenschaft:

function InputDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "Die Suche erfolgte in der folgenden Zeichenfolge: " + RegExp.input;
   return(s);
}

Anforderungen

Version 3

Siehe auch

RegExp-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


isPrototypeOf-Methode

Gibt einen booleschen Wert zurück, der angibt, ob ein Objekt in der Prototypenkette eines anderen Objekts vorhanden ist.

Objekt1.isPrototypeOf(Objekt2)

Argumente

Objekt1
Erforderlich. Instanz eines Objekts.
Objekt2
Erforderlich. Ein anderes Objekt, dessen Prototypenkette überprüft werden soll.

Hinweise

Die isPrototypeOf-Methode gibt true zurück, wenn sich Objekt1 in der Prototypenkette von Objekt2 befindet. Die Prototypenkette dient dazu, Funktionalität zwischen Instanzen des gleichen Objekttyps freizugeben. Die isPrototypeOf-Methode gibt false zurück, wenn Objekt2 kein Objekt ist oder wenn Objekt1 nicht in der Prototypenkette von Objekt2 enthalten ist.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der isPrototypeof-Methode.

function test(){
  var re = new RegExp();                        //Initialisiert eine Variable.
  return (RegExp.prototype.isPrototypeOf(re));  //Gibt 'true' zurück.
}

Anforderungen

Version 5.5

Betrifft: Object-Objekt


lastIndex-Eigenschaft

Gibt die Zeichenposition zurück, die auf die nächste Entsprechung in einer durchsuchten Zeichenfolge folgt.

RegExp.lastIndex

Das Objekt, das mit dieser Eigenschaft verknüpft ist, ist stets das globale RegExp-Objekt.

Hinweise

Die lastIndex-Eigenschaft ist nullbasiert, d. h., das erste Zeichen hat den Index 0. Ihr Anfangswert ist –1. Dieser Wert wird immer dann geändert, wenn erfolgreich eine Entsprechung gefunden wurde.

Der Wert der lastIndex-Eigenschaft wird von den Methoden exec und test des RegExp-Objekts und den Methoden match, replace und split des String-Objekts geändert.

Für die Werte von lastIndex gelten die folgenden Regeln:

  • Gibt es keine Entsprechung, wird lastIndex auf -1 gesetzt.
  • Ist lastIndex größer als die Länge der Zeichenfolge, schlagen test und exec fehl, und lastIndex wird auf -1 gesetzt.
  • Ist lastIndex gleich der Länge der Zeichenfolge, so gibt es eine Entsprechung für den regulären Ausdruck, wenn das Muster der leeren Zeichenfolge entspricht. Andernfalls schlägt die Entsprechung fehl und lastIndex wird auf -1 zurückgesetzt.
  • Ansonsten wird lastIndex auf die der letzten Entsprechung folgende Position gesetzt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der lastIndex-Eigenschaft. Diese Funktion durchläuft eine Suchzeichenfolge und druckt die Werte index und lastIndex für jedes Wort in der Zeichenfolge.

function RegExpTest(){
  var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
  if (ver >= 5.5){
    var src = "The rain in Spain falls mainly in the plain. ";
    var re = /\w+/g;
    var arr;
    while ((arr = re.exec(src)) != null)
       print(arr.index + "-" + arr.lastIndex + "\t" + arr);
  }
  else{
    alert("Es ist eine höhere Version von JScript erforderlich, damit dies funktioniert");
  }
}

Anforderungen

Version 3

Siehe auch

RegExp-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


leftContext-Eigenschaft ($`)

Gibt die Zeichen vom Anfang einer durchsuchten Zeichenfolge bis zur Position vor dem Beginn der letzten Übereinstimmung zurück. Schreibgeschützt.

RegExp.leftContext

Das dieser Eigenschaft zugeordnete Objekt ist immer das globale RegExp-Objekt.

Hinweise

Der Startwert der leftContext-Eigenschaft ist eine leere Zeichenfolge. Der Wert der leftContext-Eigenschaft ändert sich immer dann, wenn eine Übereinstimmung gefunden wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der leftContext-Eigenschaft:

function matchDemo(){
   var s;                                //Deklariert eine Variable.
   var re = new RegExp("d(b+)(d)","ig"); //Muster eines regulären Ausdruckes.
   var str = "cdbBdbsbdbdz";             //Zu durchsuchende Zeichenfolge.
   var arr = re.exec(str);               //Führt die Suche durch.
   s = "Rückgabewert von $1: " + RegExp.$1 + "\n";
   s += "Rückgabewert von $2: " + RegExp.$2 + "\n";
   s += "Rückgabewert von $3: " + RegExp.$3 + "\n";
   s += "Rückgabewert von input: " + RegExp.input + "\n";
   s += "Rückgabewert von lastMatch: " + RegExp.lastMatch + "\n";
   s += "Rückgabewert von leftContext: " + RegExp.leftContext + "\n";
   s += "Rückgabewert von rightContext: " + RegExp.rightContext + "\n";
   s += "Rückgabewert von lastParen: " + RegExp.lastParen + "\n";
   return(s);                            //Gibt die Ergebnisse zurück.
}
document.write(matchDemo());

Anforderungen

Version 5.5

Siehe auch

$1...$9-Eigenschaften | index-Eigenschaft | input-Eigenschaft | lastIndex-Eigenschaft | lastMatch-Eigenschaft | lastParen-Eigenschaft | rightContext-Eigenschaft

Betrifft: RegExp-Objekt


length-Eigenschaft (arguments)

Gibt die tatsächliche Anzahl der Argumente zurück, die von der aufrufenden Routine an eine Funktion übergeben wurden.

[Funktion.]arguments.length

Das optionale Funktion-Argument ist der Name des derzeit ausgeführten Function-Objekts.

Hinweise

Die length-Eigenschaft des arguments-Objekts wird vom Skriptmodul mit der tatsächlichen Anzahl von Argumenten, die an ein Function-Objekt übergeben wurden, zu Beginn der Ausführung dieser Funktion initialisiert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der length-Eigenschaft des arguments-Objekts. Übergeben Sie zum besseren Verständnis des Beispiels mehr als die 2 erwarteten Argumente an die Funktion:

function ArgTest(a, b){
   var i, s = "Die ArgTest-Funktion erwartete ";
   var AnzArgs = arguments.length;
   var erwArgs = ArgTest.length;
   if (erwArgs < 2)
      s += erwArgs + " Argument, "; ";
      else_
      s += erwArgs + " Argumente, "; ";
   if (AnzArgs < 2)
      s += AnzArgs + " wurde übergeben.";
      else_
      s += AnzArgs + " wurden übergeben.";
   return(s);
}

Anforderungen

Version 5.5

Siehe auch

arguments-Eigenschaft | length-Eigenschaft (Array) | length-Eigenschaft (String)

Betrifft: arguments-Objekt | Function-Objekt


length-Eigenschaft (Array)

Gibt einen ganzzahligen Wert zurück, der um eins höher ist als der höchste Index der in einem Array definierten Elemente.

NumVar = Array.length

Argumente

NumVar
Erforderlich. Eine numerische Variable.
Array
Erforderlich. Ein Array-Objekt.

Hinweise

Da die Elemente in einem Array nicht zusammenhängend sein müssen, stellt die length-Eigenschaft nicht unbedingt die Anzahl der Elemente in dem jeweiligen Array dar. So enthält beispielsweise in der folgenden Arraydefinition mein_Array.length den Wert 7 und nicht den Wert 2:

var mein_Array = new Array( );
mein_Array[0] = "Test";
mein_Array[6] = "Weiterer Test";

Wird ein Wert, der kleiner ist als der bestehende, der length-Eigenschaft zugewiesen, wird das Array abgeschnitten, und jedes Element mit einem Index, der größer oder gleich dem neuen Wert der length-Eigenschaft ist, geht verloren.

Wird der length-Eigenschaft ein höherer Wert als der bestehende zugewiesen, wird das Array erweitert, und jedes neu erzeugte Element hat den Wert undefined.

Das folgende Beispiel zeigt die Verwendung der length-Eigenschaft:

function LengthDemo(){
   var a;
   a = new Array(0,1,2,3,4);
   return(a.length);
}

Anforderungen

Version 2

Siehe auch

length-Eigenschaft (Function) | length-Eigenschaft (String)

Betrifft: Array-Objekt


lastMatch-Eigenschaft ($&)

Gibt die letzten übereinstimmenden Zeichen einer beliebigen Suche mit regulärem Ausdruck zurück. Schreibgeschützt.

RegExp.lastMatch

Das dieser Eigenschaft zugeordnete Objekt ist immer das globale RegExp-Objekt.

Hinweise

Der Startwert der lastMatch-Eigenschaft ist eine leere Zeichenfolge. Der Wert der lastMatch-Eigenschaft ändert sich immer dann, wenn eine Übereinstimmung gefunden wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der lastMatch-Eigenschaft:

function matchDemo(){
   var s;                                //Deklariert eine Variable.
   var re = new RegExp("d(b+)(d)","ig"); //Muster eines regulären Ausdruckes.
   var str = "cdbBdbsbdbdz";             //Zu durchsuchende Zeichenfolge.
   var arr = re.exec(str);               //Führt die Suche durch.
   s = "Rückgabewert von $1: " + RegExp.$1 + "\n";
   s += "Rückgabewert von $2: " + RegExp.$2 + "\n";
   s += "Rückgabewert von $3: " + RegExp.$3 + "\n";
   s += "Rückgabewert von input: " + RegExp.input + "\n";
   s += "Rückgabewert von lastMatch: " + RegExp.lastMatch + "\n";
   s += "Rückgabewert von leftContext: " + RegExp.leftContext + "\n";
   s += "Rückgabewert von rightContext: " + RegExp.rightContext + "\n";
   s += "Rückgabewert von lastParen: " + RegExp.lastParen + "\n";
   return(s);                            //Gibt die Ergebnisse zurück.
}
document.write(matchDemo());

Anforderungen

Version 5.5

Siehe auch

$1...$9-Eigenschaften | index-Eigenschaft | input-Eigenschaft | lastIndex-Eigenschaft | lastParen-Eigenschaft | leftContext-Eigenschaft | rightContext-Eigenschaft

Betrifft: RegExp-Objekt


lastParen-Eigenschaft ($+)

Gibt die letzte in Klammern gesetzte untergeordnete Übereinstimmung einer beliebigen Suche mit regulärem Ausdruck zurück, sofern vorhanden. Schreibgeschützt.

RegExp.lastParen

Das dieser Eigenschaft zugeordnete Objekt ist immer das globale RegExp-Objekt.

Hinweise

Der Startwert der lastParen-Eigenschaft ist eine leere Zeichenfolge. Der Wert der lastParen-Eigenschaft ändert sich immer dann, wenn eine Übereinstimmung gefunden wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der lastParen-Eigenschaft:

function matchDemo(){
   var s;                                //Deklariert eine Variable.
   var re = new RegExp("d(b+)(d)","ig"); //Muster eines regulären Ausdruckes.
   var str = "cdbBdbsbdbdz";             //Zu durchsuchende Zeichenfolge.
   var arr = re.exec(str);               //Führt die Suche durch.
   s = "Rückgabewert von $1: " + RegExp.$1 + "\n";
   s += "Rückgabewert von $2: " + RegExp.$2 + "\n";
   s += "Rückgabewert von $3: " + RegExp.$3 + "\n";
   s += "Rückgabewert von input: " + RegExp.input + "\n";
   s += "Rückgabewert von lastMatch: " + RegExp.lastMatch + "\n";
   s += "Rückgabewert von leftContext: " + RegExp.leftContext + "\n";
   s += "Rückgabewert von rightContext: " + RegExp.rightContext + "\n";
   s += "Rückgabewert von lastParen: " + RegExp.lastParen + "\n";
   return(s);                            //Gibt die Ergebnisse zurück.
}
document.write(matchDemo());

Anforderungen

Version 5.5

Siehe auch

$1...$9-Eigenschaften | index-Eigenschaft | input-Eigenschaft | lastIndex-Eigenschaft | lastMatch-Eigenschaft | leftContext-Eigenschaft | rightContext-Eigenschaft

Betrifft: RegExp-Objekt


length-Eigenschaft (Function)

Gibt die Anzahl der für eine Funktion definierten Argumente zurück.

Funktionsname.length

Das erforderliche Argument Funktionsname ist der Name der Funktion.

Hinweise

Wird eine Instanz der Funktion erstellt, so wird die length-Eigenschaft vom Skriptmodul mit der Anzahl der Argumente in der Definition der Funktion initialisiert.

Was passiert, wenn eine Funktion mit einer von length abweichenden Anzahl von Argumenten aufgerufen wird, hängt von der Funktion ab.

Das folgende Beispiel veranschaulicht die Verwendung der length-Eigenschaft:

function ArgTest(a, b){
   var i, s = "Die ArgTest-Funktion erwartete ";
   var argZahl = ArgTest.arguments.length;
   var erwArgs = ArgTest.length;
   if (erwArgs < 2)
      s += erwArgs + " Argument, ";
   else
      s += erwArgs + " Argumente, ";
   if (argZahl < 2)
      s += argZahl + " wurde übergeben.";
   else
      s += argZahl + " wurden übergeben.";
   return(s);
}

Anforderungen

Version 2

Siehe auch

arguments-Eigenschaft | length-Eigenschaft (Array) | length-Eigenschaft (String)

Betrifft: Function-Objekt


length-Eigenschaft (String)

Gibt die Länge eines String-Objekts zurück.

strVariable.length
"Zeichenfolgenliteral".length

Hinweise

Die length-Eigenschaft enthält eine Ganzzahl, welche die Anzahl der Zeichen im String-Objekt angibt. Das letzte Zeichen im String-Objekt hat den Index length - 1.

Anforderungen

Version 1

Siehe auch

length-Eigenschaft (Array) | length-Eigenschaft (Function) | Methoden des String-Objekts | Eigenschaften des String-Objekts

Betrifft: String-Objekt


LN10-Eigenschaft

Gibt den natürlichen Logarithmus von 10 zurück.

numVar = Math.LN10

Hinweis

Die LN10-Eigenschaft hat etwa den Wert 2,302.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften

Betrifft: Math-Objekt


LN2-Eigenschaft

Gibt den natürlichen Logarithmus von 2 zurück.

numVar = Math.LN2

Hinweis

Die LN2-Eigenschaft hat etwa den Wert 0,693.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften

Betrifft: Math-Objekt


LOG10E-Eigenschaft

Gibt den Logarithmus der Eulerschen Konstante e zur Basis 10 zurück.

varName = Math.LOG10E

Hinweis

Die LOG10E-Eigenschaft ist eine Konstante, die näherungsweise dem Wert 0,434 entspricht.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften

Betrifft: Math-Objekt


LOG2E-Eigenschaft

Gibt den Logarithmus der Eulerschen Konstante e zur Basis 2 zurück.

varName = Math.LOG2E

Hinweis

Die LOG2E-Eigenschaft ist eine Konstante, die näherungsweise dem Wert 1,442 entspricht.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften

Betrifft: Math-Objekt


MAX_VALUE-Eigenschaft

Gibt die größte in JScript darstellbare Zahl zurück. Entspricht näherungsweise 1.79E+308.

Zahl.MAX_VALUE

Das Argument Zahl ist das Number-Objekt.

Hinweise

Das Number-Objekt muss nicht zuvor erstellt werden, bevor auf die MAX_VALUE-Eigenschaft zugegriffen werden kann.

Anforderungen

Version 2

Siehe auch

MIN_VALUE-Eigenschaft | NaN-Eigenschaft (Number) | NEGATIVE_INFINITY-Eigenschaft | POSITIVE_INFINITY-Eigenschaft | toString-Methode

Betrifft: Number-Objekt


message-Eigenschaft

Gibt eine Zeichenfolge mit einer Fehlermeldung zurück.

ErrorObj.message

Argumente

ErrorObj
Erforderlich. Instanz eines Error-Objekts.

Hinweise

Die message-Eigenschaft ist eine Zeichenfolge mit einer Fehlermeldung, die Benutzern angezeigt wird. Sie enthält die gleichen Informationen wie die description-Eigenschaft.

Beispiel

Das folgende Beispiel bewirkt, dass eine TypeError-Ausnahme ausgelöst wird, und zeigt den Namen des Fehlers und die zugehörige Meldung an.

try {
  // 'null' ist kein gültiges Objekt
  null.tueEtwas();
}
catch(e){
  print(e.name + ": " + e.message);
  print(e.number + ": " + e.description);
}

Anforderungen

Version 5

Siehe auch

description-Eigenschaft | name-Eigenschaft

Betrifft: Error-Objekt


MIN_VALUE-Eigenschaft

Gibt die der Null am nächsten kommende Zahl zurück, die in JScript dargestellt werden kann. Entspricht näherungsweise 5.00E-324.

Zahl.MIN_VALUE

Das Argument Zahl ist das Number-Objekt.

Hinweise

Das Number-Objekt muss nicht zuvor erstellt werden, bevor auf die MIN_VALUE-Eigenschaft zugegriffen werden kann.

Anforderungen

Version 2

Siehe auch

MAX_VALUE-Eigenschaft | NaN-Eigenschaft (Number) | NEGATIVE_INFINITY-Eigenschaft | POSITIVE_INFINITY-Eigenschaft | toString-Methode

Betrifft: Number-Objekt


multiline-Eigenschaft

Gibt einen booleschen Wert zurück, der den Status des mit einem regulären Ausdruck verwendeten multiline-Flags (m) angibt. Der Standard ist false. Schreibgeschützt.

rgAusdr.multiline

Das erforderliche rgAusdr-Argument ist eine Instanz des RegExp-Objekts.

Hinweise

Die multiline-Eigenschaft gibt true zurück, wenn das multiline-Flag für einen regulären Ausdruck gesetzt ist, und false, wenn dies nicht der Fall ist. Die multiline-Eigenschaft ist true, wenn das Regular Expression-Objekt mit dem m-Flag erstellt wurde.

Wenn multiline den Wert false hat, stimmt "^" mit der Position am Anfang einer Zeichenfolge überein, und "$" stimmt mit der Position am Ende einer Zeichenfolge überein. Wenn multiline den Wert true hat, stimmt "^" sowohl mit der Position am Anfang einer Zeichenfolge als auch mit der Position nach einem "\n" oder "\r" überein, und "$" stimmt sowohl mit der Position am Ende einer Zeichenfolge als auch mit der Position vor einem "\n" oder "\r" überein.

Beispiel

Das folgende Beispiel veranschaulicht das Verhalten der multiline-Eigenschaft. Wenn Sie "m" an die unten gezeigte Funktion übergeben, wird das Wort "aber" durch das Wort "und" ersetzt. Der Grund hierfür ist, dass das multiline-Flag gesetzt ist und das Wort "aber" am Anfang der Zeile nach einem Zeilenumbruchzeichen auftritt. Das multiline-Flag ermöglicht es, die Suche für mehrzeilige Zeichenfolgen durchzuführen.

Diese Funktion gibt eine Zeichenfolge mit einer Tabelle zurück, die den Status der zulässigen Flags für reguläre Ausdrücke, g, i und m, anzeigt. Die Funktion gibt außerdem die Zeichenfolge mit allen Ersetzungen zurück.

function RegExpEigDemo(Flag){
   if (Flag.match(/[^gim]/))          //Flag auf Gültigkeit prüfen.
     return("Das angegebene Flag ist nicht gültig");
   var e, er, z                       //Deklariert Variablen.
   var sz = "Der Stürmer schoss den Ball auf das Tor,";
   sz += "\naber der Torwart fing den Ball kurz vor der Linie.";
   er = new RegExp("^aber", Flag);    //Gibt das zu suchende Muster an.
   e = sz.replace(er, "und");         //Ersetzt "aber" durch "und".
   z = "Werte der Eigenschaften des regulären Ausdruckes:\n\n"
   z += "global  ignoreCase  multiline\n"
   if (er.global)                     //global-Flag testen.
     z += " True     ";
      else_
     z += "False     ";
   if (er.ignoreCase)                 //ignoreCase-Flag testen.
     z += " True  ";
      else_
     z += "False  ";
   if (er.multiline)                  //multiline-Flag testen.
     z += "     True     ";
      else_
     z += "     False   ";
   z += "\n\nDie resultierende Zeichenfolge ist:\n\n" + e;
   return(z);                         //Gibt die Ersatzzeichenfolge zurück
}

Anforderungen

Version 5.5

Siehe auch

global-Eigenschaft | ignoreCase-Eigenschaft | Syntax regulärer Ausdrücke

Betrifft: RegExp-Objekt


name-Eigenschaft

Gibt den Namen eines Fehlers zurück.

ErrorObj.name

Argumente

ErrorObj
Erforderlich. Instanz eines Error-Objekts.

Hinweise

Die name-Eigenschaft gibt den Namen oder Ausnahmetyp eines Fehlers zurück. Wenn ein Laufzeitfehler auftritt, wird die name-Eigenschaft auf einen der folgenden systemeigenen Ausnahmetypen festgelegt:

Ausnahmetyp | Bedeutung
ConversionError | Dieser Fehler tritt immer dann auf, wenn versucht wird, ein Objekt in etwas zu konvertieren, in das es nicht konvertiert werden kann.
RangeError | Dieser Fehler tritt auf, wenn bei einer Funktion ein Argument angegeben wird, das den zulässigen Bereich überschritten hat. Beispielsweise tritt dieser Fehler auf, wenn Sie versuchen, ein Array-Objekt mit einer Länge zu erstellen, die keine gültige positive Ganzzahl ist.
ReferenceError | Dieser Fehler tritt auf, wenn ein ungültiger Verweis entdeckt wurde. Dieser Fehler tritt beispielsweise auf, wenn ein erwarteter Verweis null ist.
RegExpError | Dieser Fehler tritt auf, wenn bei einem regulären Ausdruck ein Kompilierungsfehler auftritt. Nachdem der reguläre Ausdruck kompiliert wurde, kann dieser Fehler jedoch nicht auftreten. Dieser Fehler tritt beispielsweise auf, wenn ein regulärer Ausdruck mit einem Muster deklariert wird, das eine ungültige Syntax aufweist, oder wenn er mit anderen Flags als i, g oder m deklariert wird oder das gleiche Flag mehr als einmal enthält.
SyntaxError | Dieser Fehler tritt auf, wenn Quelltext analysiert wird und dieser Quelltext nicht die richtige Syntax befolgt. Dieser Fehler tritt beispielsweise auf, wenn die eval-Funktion mit einem Argument aufgerufen wird, das kein gültiger Programmtext ist.
TypeError | Dieser Fehler tritt immer dann auf, wenn der tatsächliche Typ eines Operanden nicht mit dem erwarteten Typ übereinstimmt. Ein Beispiel für das Auftreten dieses Fehler ist ein Funktionsaufruf für etwas, das kein Objekt ist oder den Aufruf nicht unterstützt.
URIError | Dieser Fehler tritt auf, wenn ein ungültiger Uniform Resource Indicator (URI) entdeckt wird. Beispielsweise tritt dieser Fehler auf, wenn in einer zu verschlüsselnden oder zu entschlüsselnden Zeichenfolge ein ungültiges Zeichen gefunden wird.

Beispiel

Das folgende Beispiel bewirkt, dass eine TypeError-Ausnahme ausgelöst wird, und zeigt den Namen des Fehlers und die zugehörige Meldung an.

try {
  // 'null' ist kein gültiges Objekt
  null.tueEtwas();
}
catch(e){
  print(e.name + ": " + e.message);
  print(e.number + ": " + e.description);
}

Anforderungen

Version 5.5

Siehe auch

description-Eigenschaft | message-Eigenschaft | number-Eigenschaft

Betrifft: Error-Objekt


NaN-Eigenschaft (Number)

Ein spezieller Wert, der angibt, dass ein arithmetischer Ausdruck einen Wert zurückgegeben hat, der keine Zahl ist.

Zahl.NaN

Das Argument Zahl ist das Number-Objekt.

Hinweise

Das Number-Objekt muss nicht zuvor erstellt werden, bevor auf die NaN-Eigenschaft zugegriffen werden kann.

Bei einem Vergleich ist NaN zu keinem Wert gleich, auch nicht zu sich selbst. Um zu testen, ob ein Wert äquivalent mit NaN ist, verwenden Sie die isNaN-Funktion.

Anforderungen

Version 2

Siehe auch

isNaN-Methode | MAX_VALUE-Eigenschaft | MIN_VALUE-Eigenschaft | NEGATIVE_INFINITY-Eigenschaft | POSITIVE_INFINITY-Eigenschaft | toString-Methode

Betrifft: Number-Objekt


NaN-Eigenschaft (Global)

Gibt den Spezialwert NaN zurück, der angibt, dass ein Ausdruck keine Zahl ist.

NaN

Hinweise

Die NaN-Eigenschaft (Not a Number) ist ein Element des Global-Objekts. Sie steht erst nach Initialisierung des Skriptmoduls zur Verfügung.

Anforderungen

Version 3

Siehe auch

isNaN-Methode

Betrifft: Global-Objekt


NEGATIVE_INFINITY-Eigenschaft

Gibt einen negativeren Wert als die größte negative Zahl (-Number.MAX_VALUE) zurück, die in JScript darstellbar ist.

Zahl.NEGATIVE_INFINITY

Das Argument Zahl ist das Number-Objekt.

Hinweise

Das Number-Objekt muss nicht zuvor erstellt werden, bevor auf die NEGATIVE_INFINITY-Eigenschaft zugegriffen werden kann.

JScript zeigt NEGATIVE_INFINITY-Werte als "-Infinity" an. Dieser Wert verhält sich mathematisch als unendlich.

Anforderungen

Version 2

Siehe auch

MAX_VALUE-Eigenschaft | MIN_VALUE-Eigenschaft | NaN-Eigenschaft (Number) | POSITIVE_INFINITY-Eigenschaft | toString-Methode

Betrifft: Number-Objekt


number-Eigenschaft

Legt den einem bestimmten Fehler zugewiesenen numerischen Wert fest oder gibt diesen zurück. number ist die Standardeigenschaft des Error-Objekts.

Objekt.number [= Fehlernummer]

Argumente

Objekt
Beliebige Instanz des Error-Objekts.
Fehlernummer
Eine Ganzzahl, die einen Fehler darstellt.

Hinweise

Eine Fehlernummer ist ein 32-Bit-Wert. Das obere 16-Bit-Wort ist der Teildienstcode, das untere Wort stellt den eigentlichen Fehlercode dar.

Das folgende Beispiel veranschaulicht die Verwendung der number-Eigenschaft:

try
   x = y   // Einen Fehler generieren.
catch(var e){   // Lokale Variable e erstellen.
   document.write(e)   // Gibt "[object Error]" aus.
   document.write(e.number>>16 & 0x1FFF)   // Gibt 10, den Teildienstcode, aus.
   document.write(e.number & 0xFFFF)   // Gibt 5009, den Fehlercode, aus.
   document.write(e.description)   // Gibt "'y' ist undefiniert" aus.
}

Anforderungen

Version 5

Siehe auch

description-Eigenschaft | message-Eigenschaft | name-Eigenschaft

Betrifft: Error-Objekt


PI-Eigenschaft

Gibt das Verhältnis eines Kreisumfangs zum Kreisdurchmesser zurück, etwa 3,141592653589793.

numVar = Math.PI

Hinweis

Die PI-Eigenschaft ist eine Konstante, die näherungsweise dem Wert 3,14159 entspricht.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften

Betrifft: Math-Objekt


POSITIVE_INFINITY-Eigenschaft

Gibt einen größeren Wert als die größte Zahl (Number.MAX_VALUE) zurück, die in JScript darstellbar ist.

Zahl.POSITIVE_INFINITY

Das Argument Zahl ist das Number-Objekt.

Hinweise

Das Number-Objekt muss nicht zuvor erstellt werden, bevor auf die POSITIVE_INFINITY-Eigenschaft zugegriffen werden kann.

JScript zeigt POSITIVE_INFINITY-Werte als "Infinity" an. Dieser Wert verhält sich mathematisch als unendlich.

Anforderungen

Version 2

Siehe auch

MAX_VALUE-Eigenschaft | MIN_VALUE-Eigenschaft | NaN-Eigenschaft (Number) | NEGATIVE_INFINITY-Eigenschaft | toString-Methode

Betrifft: Number-Objekt


propertyIsEnumerable-Eigenschaft

Gibt einen booleschen Wert zurück, der angibt, ob eine angegebene Eigenschaft Teil eines Objekts ist und ob sie aufzählbar ist.

Objekt.propertyIsEnumerable(EigName)

Argumente

Objekt
Erforderlich. Instanz eines Objekts.
EigName
Erforderlich. Zeichenfolgenwert eines Eigenschaftennamens.

Hinweise

Die propertyIsEnumerable-Eigenschaft gibt true zurück, wenn EigName in Objekt vorhanden ist und mithilfe einer For…In-Schleife aufgezählt werden kann. Die propertyIsEnumerable-Eigenschaft gibt false zurück, wenn Objekt keine Eigenschaft mit dem angegebenen Namen besitzt oder wenn die angegebene Eigenschaft nicht aufzählbar ist. Normalerweise sind vorgegebene Eigenschaften nicht aufzählbar, während benutzerdefinierte Eigenschaften immer aufzählbar sind.

Die propertyIsEnumerable-Eigenschaft berücksichtigt keine Objekte in der Prototypenkette.

Beispiel

function testIstAufzaehlbar(){
  var a = new Array("Apfel", "Banane", "Kaktus");
  return(a.propertyIsEnumerable(1));
}

Anforderungen

Version 5.5

Betrifft: Object-Objekt


prototype-Eigenschaft

Gibt einen Verweis auf den Prototyp einer Objektklasse zurück.

Objektname.prototype

Das Argument Objektname ist der Name eines Objekts.

Hinweise

Mit der prototype-Eigenschaft können Sie einer Objektklasse eine Basismenge an Funktionalität bereitstellen. Neue Instanzen eines Objekts "erben" das Verhalten des Prototyps, der diesem Objekt zugewiesen ist.

Sie möchten z. B. dem Array-Objekt eine Methode hinzufügen, die den Wert des größten Elements des Arrays zurückgibt. Deklarieren Sie dazu die Funktion, fügen Sie sie zu Array.prototype hinzu, und verwenden Sie sie anschließend.

function array_max( ){
   var i, max = this[0];
   for (i = 1; i < this.length; i++)
   {
   if (max < this[i])
   max = this[i];
   }
   return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max( );

Nach Ausführen dieses Codes enthält y den größten Wert im Array x oder 6.

Alle intrinsischen JScript-Objekte besitzen eine prototype-Eigenschaft, die schreibgeschützt ist. Dem Prototyp kann Funktionalität hinzugefügt werden, doch lässt sich das Objekt keinem anderen Prototyp zuweisen. Benutzerdefinierten Objekten kann jedoch ein neuer Prototyp zugewiesen werden.

In den Methoden- und Eigenschaftenlisten für jedes intrinsische Objekt in diesem Sprachverzeichnis wird angegeben, welche Bestandteil des Objektprototyps sind und welche nicht.

Anforderungen

Version 2

Siehe auch

constructor-Eigenschaft

Betrifft: Array-Objekt | Boolean-Objekt | Date-Objekt | Function-Objekt | Number-Objekt | Object-Objekt | String-Objekt


rightContext-Eigenschaft ($')

Gibt die Zeichen von der Position nach der letzten Übereinstimmung bis zum Ende der durchsuchten Zeichenfolge zurück. Schreibgeschützt.

RegExp.rightContext

Das dieser Eigenschaft zugeordnete Objekt ist immer das globale RegExp-Objekt.

Hinweise

Der Startwert der rightContext-Eigenschaft ist eine leere Zeichenfolge. Der Wert der rightContext-Eigenschaft ändert sich immer dann, wenn eine Übereinstimmung gefunden wurde.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der rightContext-Eigenschaft:

function matchDemo(){
   var s;                                //Deklariert eine Variable.
   var re = new RegExp("d(b+)(d)","ig"); //Muster eines regulären Ausdruckes.
   var str = "cdbBdbsbdbdz";             //Zu durchsuchende Zeichenfolge.
   var arr = re.exec(str);               //Führt die Suche durch.
   s = "Rückgabewert von $1: " + RegExp.$1 + "\n";
   s += "Rückgabewert von $2: " + RegExp.$2 + "\n";
   s += "Rückgabewert von $3: " + RegExp.$3 + "\n";
   s += "Rückgabewert von input: " + RegExp.input + "\n";
   s += "Rückgabewert von lastMatch: " + RegExp.lastMatch + "\n";
   s += "Rückgabewert von leftContext: " + RegExp.leftContext + "\n";
   s += "Rückgabewert von rightContext: " + RegExp.rightContext + "\n";
   s += "Rückgabewert von lastParen: " + RegExp.lastParen + "\n";
   return(s);                            //Gibt die Ergebnisse zurück.
}
document.write(matchDemo());

Anforderungen

Version 5.5

Siehe auch

$1...$9-Eigenschaften | index-Eigenschaft | input-Eigenschaft | lastIndex-Eigenschaft | lastMatch-Eigenschaft | lastParen-Eigenschaft | leftContext-Eigenschaft

Betrifft: RegExp-Objekt


source-Eigenschaft (JScript)

JScript

source-Eigenschaft

Gibt eine Kopie des Textes des Musters des regulären Ausdruckes zurück. Schreibgeschützt.

RegA.source

Das Argument RegA ist ein Regular Expression-Objekt. Es kann ein Variablenname oder ein Literal sein.

Das folgende Beispiel veranschaulicht die Verwendung der source-Eigenschaft:

function SourceDemo(re, s){
   var s1;
   // Testen der Zeichenfolge auf Vorkommen des regulären Ausdruckes.
   if (re.test(s))
      s1 = " enthält ";
   else
      s1 = " enthält nicht ";
   // Ausgeben des Textes des regulären Ausdruckes selbst.
   return(s + s1 + re.source);
}

Anforderungen

Version 3

Siehe auch

Regular Expression-Objekt Methoden | Regular Expression-Objekt Eigenschaften | Syntax regulärer Ausdrücke

Betrifft: Regular Expression-Objekt


SQRT1_2-Eigenschaft

Die Quadratwurzel von 0,5 (oder 1 geteilt durch die Quadratwurzel von 2).

numVar = Math.SQRT1_2

Hinweis

Die SQRT1_2-Eigenschaft ist eine Konstante, die näherungsweise dem Wert 0,707 entspricht.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften | sqrt-Methode | SQRT2-Eigenschaft

Betrifft: Math-Objekt


SQRT2-Eigenschaft

Gibt die Quadratwurzel von 2 zurück.

numVar = Math.SQRT2

Hinweis

Die SQRT2-Eigenschaft ist eine Konstante, die näherungsweise dem Wert 1,414 entspricht.

Anforderungen

Version 1

Siehe auch

Math-Objekt Eigenschaften | sqrt-Methode | SQRT1_2-Eigenschaft

Betrifft: Math-Objekt


undefined-Eigenschaft

Gibt einen Startwert von undefined zurück.

undefined

Hinweise

Die undefined-Eigenschaft ist ein Mitglied des Global-Objekts und wird verfügbar, wenn das Skriptmodul initialisiert wird. Wenn eine Variable deklariert, aber nicht initialisiert wurde, ist ihr Wert undefined.

Wenn eine Variable nicht deklariert wurde, können Sie sie nicht mit undefined vergleichen, aber Sie können den Typ der Variablen mit der Zeichenfolge "undefined" vergleichen.

Die undefined-Eigenschaft ist hilfreich, wenn eine Variable ausdrücklich getestet oder auf undefined festgelegt werden soll.

Beispiel

var deklariert;                         //Deklariert eine Variable.
if (deklariert == undefined)            //Test der Variablen.
  document.write("deklariert wurde kein Wert zugewiesen.");

if (typeOf(nichtDeklariert) == "undefined")
  document.write("nichtDeklariert wurde nicht definiert.");

Anforderungen

Version 5.5

Betrifft: Global-Objekt


JScript-Anweisungen

In der folgenden Tabelle sind JScript-Anweisungen aufgeführt.

Beschreibung | Sprachelement
Beendet die aktuelle Schleife oder in Verbindung mit einer Marke die zugehörige Anweisung. | break-Anweisung
Enthält Anweisungen, die beim Auftreten von Fehlern im Code innerhalb des try-Blockes ausgeführt werden. | catch-Anweisung
Aktiviert die Unterstützung der bedingten Kompilierung. | @cc_on-Anweisung
Veranlasst den JScript-Parser, einzeilige Kommentare zu ignorieren. | // (Einzeilige Kommentaranweisung)
Veranlasst den JScript-Parser, mehrzeilige Kommentare zu ignorieren. | /*..*/ (Mehrzeilige Kommentaranweisung)
Hält die aktuelle Iteration einer Schleife an und beginnt eine neue Iteration. | continue-Anweisung
Führt einen Anweisungsblock einmal aus und wiederholt dann die Ausführung der Schleife, bis ein bedingter Ausdruck mit false ausgewertet wird. | do...while-Anweisung
Führt einen Anweisungsblock aus, solange die angegebene Bedingung true ist. | for-Anweisung
Führt eine oder mehrere Anweisungen für die einzelnen Elemente eines Objekts oder Arrays aus. | for...in-Anweisung
Deklariert eine neue Funktion. | function-Anweisung
Wertet einen Ausdruck aus und führt in Abhängigkeit vom Ergebnis eine Reihe von Anweisungen aus. | @if-Anweisung
Wertet einen Ausdruck aus und führt in Abhängigkeit vom Ergebnis eine Reihe von Anweisungen aus. | if...else-Anweisung
Stellt einen Bezeichner für eine Anweisung bereit. | Labeled-Anweisung
Beendet die aktuelle Funktion und gibt einen Wert dieser Funktion zurück. | return-Anweisung
Erstellt Variablen, die in bedingten Kompilierungsanweisungen verwendet werden. | @set-Anweisung
Aktiviert die Ausführung einer Anweisung oder mehrerer Anweisungen, wenn der Wert eines angegebenen Ausdrucks einer Marke entspricht. | switch-Anweisung
Verweist auf das aktuelle Objekt. | this-Anweisung
Erzeugt eine Fehlerbedingung, die von einer try...catch-Anweisung behandelt werden kann. | throw-Anweisung
Implementiert die Fehlerbehandlung für JScript. | try-Anweisung
Deklariert eine Variable. | var-Anweisung
Führt eine Anweisung aus, bis eine angegebene Bedingung false ist. | while-Anweisung
Legt das standardmäßig zu verwendende Objekt für eine Anweisung fest. | with-Anweisung


@cc_on-Anweisung

Aktiviert die Unterstützung der bedingten Kompilierung.

@cc_on

Hinweise

Die @cc_on-Anweisung aktiviert die Unterstützung der bedingten Kompilierung im Skriptmodul.

Es wird ausdrücklich empfohlen, die @cc_on-Anweisung in einem Kommentar zu verwenden, damit Browser, die die bedingte Kompilierung nicht unterstützen, Ihr Skript als gültige Syntax akzeptieren:

/*@cc_on*/
...
(Rest des Skriptes)

Alternativ können Sie mit den Anweisungen @if oder @set außerhalb von Kommentaren die bedingte Kompilierung ebenfalls aktivieren.

Anforderungen

Version 3

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung | @if-Anweisung | @set-Anweisung


@if-Anweisung

Wertet einen Ausdruck aus und führt in Abhängigkeit vom Ergebnis eine Reihe von Anweisungen aus.

@if (
   Bedingung1
)
   Text1
[@elif (
   Bedingung2
)
   Text2]
[@else
   Text3]
@end

Argumente

Bedingung1, Bedingung2
Optional. Ausdrücke, die in boolesche Ausdrücke umgewandelt werden können.
Text1
Optional. Der zu parsende Text, wenn Bedingung1 den Wert true hat.
Text2
Optional. Der zu parsende Text, wenn Bedingung1 den Wert false und Bedingung2 den Wert true hat.
Text3
Optional. Der zu parsende Text, wenn Bedingung1 und Bedingung2 den Wert false haben.

Hinweise

Beim Schreiben einer @if-Anweisung müssen Sie deren Klauseln nicht in getrennten Zeilen eingeben. Sie können mehrere @elif-Klauseln verwenden. Falls Sie so vorgehen, müssen diese alle vor einer @else-Klausel kommen.

In der Regel verwenden Sie die Anweisung @if, um zu bestimmen, welcher Text unter mehreren Optionen für die Textausgabe verwendet werden soll. Beispiel:

alert(@if (@_win32) "Für Windows NT oder Windows 95" @else "Für Windows 3.1" @end)

Anforderungen

Version 3

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung | @cc_on-Anweisung | @set-Anweisung


@set-Anweisung

Erstellt Variablen, die in bedingten Kompilierungsanweisungen verwendet werden.

@set @VarName [= Term]

Argumente

VarName
Erforderlich. Gültiger JScript-Variablenname. Das Zeichen "@" muss stets vorangehen.
Term
Erforderlich. Kein unärer Operator oder mehrere unäre Operatoren, auf die eine Konstante, bedingte Kompilierungsvariable oder ein in Klammern gesetzter Ausdruck folgt.

Hinweise

Numerische und boolesche Variablen werden für die bedingte Kompilierung unterstützt. Zeichenfolgen werden nicht unterstützt. Variablen, die unter Verwendung von @set erstellt wurden, werden hauptsächlich in Anweisungen bei bedingten Kompilierungen verwendet. Sie können aber auch anderweitig in JScript-Code verwendet werden.

Beispiele für Variablendeklarationen sehen wie folgt aus:

@set @myvar1 = 12

@set @myvar2 = (@myvar1 * 20)

@set @myvar3 = @_jscript_version

Die folgenden Operatoren werden von in Klammern gesetzten Ausdrücken unterstützt:

  • ! ~
  • * / %
  • + -
  • << >> >>>
  • < <= > >=
  • == != === !==
  • & ^ |
  • && | |

Wird eine Variable vor ihrer Definition verwendet, ist ihr Wert NaN. Das Vorhandensein von NaN kann mithilfe der @if-Anweisung ermittelt werden:

@if (@newVar != @newVar)
   ...

Dies funktioniert, weil NaN der einzige Wert ist, der ungleich sich selbst ist.

Anforderungen

Version 3

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung | @cc_on-Anweisung | @if-Anweisung


break-Anweisung

Beendet die aktuelle Schleife oder in Verbindung mit einer Marke die zugehörige Anweisung.

break [Marke];

Das optionale Argument Marke gibt die Marke der abzubrechenden Anweisung an.

Hinweise

Die break-Anweisung wird gewöhnlich innerhalb von switch-Anweisungen oder while-, for-, for...in- oder do...while-Schleifen verwendet. Meistens verwenden Sie das Argument Marke in switch-Anweisungen; es kann jedoch in beliebigen Anweisungen verwendet werden, unabhängig davon, ob es sich um einfache oder Verbundanweisungen handelt.

Das Verlassen der Schleife mithilfe der break-Anweisung setzt die Skriptausführung mit der ersten Anweisung unmittelbar nach der Schleife fort.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der break-Anweisung.

function BreakTest(endPunkt){
   var i = 0;
   while (i < 100)
   {
   if (i == endPunkt)
      break;
      i++;
   }
   return(i);
}

Anforderungen

Version 1

Siehe auch

Anweisung mit Marke | continue-Anweisung | do...while-Anweisung | for-Anweisung | for...in-Anweisung | while-Anweisung


Kommentaranweisungen

Veranlasst den JScript-Parser, Kommentare zu ignorieren.

Syntax 1

Einzeiliger Kommentar:
// Kommentar

Syntax 2

Mehrzeiliger Kommentar:
/*
Kommentar
*/

Das Argument Kommentar ist ein beliebiger Kommentartext, den Sie in das Skript aufnehmen möchten.

Syntax 3

//@BedAnweisung

Syntax 4

/*@
BedAnweisung
@*/

Bei dem Argument BedAnweisung handelt es sich um Code für die bedingte Kompilierung, der verwendet wird, wenn bedingte Kompilierung aktiviert ist. Wenn Syntax 3 verwendet wird, dürfen sich keine Leerzeichen zwischen den Zeichen "//" und "@" befinden.

Hinweise

Verwenden Sie Kommentare, um Skriptteile vom Lesevorgang des JScript-Parsers auszuschließen. Sie können Kommentare verwenden, um Erläuterungen zu einem Programm hinzuzufügen.

Wird Syntax 1 verwendet, berücksichtigt der Parser den Text zwischen den Kommentarzeichen und dem Zeilenende nicht. Wenn Sie Syntax 2 verwenden, wird der gesamte Text zwischen den Zeichen für Start und Ende nicht berücksichtigt.

Syntax 3 und 4 werden für die Unterstützung der bedingten Kompilierung verwendet, während die Kompatibilität mit Browsern gewahrt bleibt, die dieses Funktionsmerkmal nicht unterstützen. Diese Browser behandeln diese Form der Kommentierung entsprechend der Syntax 1 oder 2.

Beispiel

Das folgende Beispiel zeigt die gebräuchlichsten Verwendungen der Kommentaranweisung.

function MeineFunktion(arg1, arg2){
   /* Dies ist ein mehrzeiliger Kommentar,
      der über so viele Zeilen geht, wie nötig. */
   var r;
   // Dies ist ein einzeiliger Kommentar.
   r = arg1 + arg2; // Addiert die zwei Argumente.
   return(r);
}

Anforderungen

Version 1


continue-Anweisung

Beendet die aktuelle Iteration einer Schleife und beginnt eine neue Iteration.

continue [Marke];

Das optionale Argument Marke gibt die Anweisung an, auf die sich continue bezieht.

Hinweise

Sie können die continue-Anweisung nur innerhalb einer while-, do...while-, for- oder for...in-Schleife verwenden. Die Ausführung der continue-Anweisung beendet die laufende Iteration und fährt mit dem Programmablauf am Beginn der Schleife fort. Auf die verschiedenen Schleifenarten hat das folgende Auswirkungen:

  • while- und do...while-Schleifen überprüfen ihre Bedingung. Ist diese true, führen sie die Schleife erneut aus.
  • for-Schleifen erhöhen ihren Inkrementausdruck und führen die Schleife wieder aus, wenn die Abfrage true ergibt.
  • for...in-Schleifen springen zum nächsten Feld der angegebenen Variablen und führen die Schleife erneut aus.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der continue-Anweisung.

function ueberspringe5(){
   var s = "", i=0;
   while (i < 10)
   {
      i++;
      // 5 überspringen
      if (i==5)
      {
       continue;
      }
   s += i;
   }
   return(s);
}

Anforderungen

Version 1

Siehe auch

Anweisung mit Marke | break-Anweisung | do...while-Anweisung | for-Anweisung | for...in-Anweisung | while-Anweisung


do...while-Anweisung

Führt einen Anweisungsblock einmal aus und wiederholt dann die Ausführung der Schleife, bis ein bedingter Ausdruck mit false ausgewertet wird.

do
   Anweisung
while (Ausdruck) ;

Argumente

Anweisung
Optional. Die auszuführende Anweisung, wenn Ausdruck true ist. Hierbei kann es sich auch um eine Verbundanweisung handeln.
Ausdruck
Optional. Ein Ausdruck, der in die booleschen Werte true oder false umgewandelt werden kann. Ist Ausdruck true, wird die Schleife erneut ausgeführt. Ist Ausdruck false, wird die Schleife beendet.

Hinweise

Der Wert von Ausdruck wird erst nach dem ersten Durchlaufen der Schleife überprüft, um sicherzustellen, dass die Schleife mindestens einmal ausgeführt wird. Danach wird er nach jedem folgenden Durchlaufen der Schleife überprüft.

Beispiel

Das folgende Beispiel veranschaulicht die do...while-Anweisung, um die Drives-Auflistung zu durchlaufen.

function HoleLWListe(){
   var fso, s, n, e, x;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);
   s = "";
   do
   {
      x = e.item();
      s = s + x.DriveLetter;
      s += " - ";
      if (x.DriveType == 3)
         n = d.ShareName;
      else if (x.IsReady)
         n = x.VolumeName;
      else
         n = "[Laufwerk nicht bereit]";
         s +=  n + "<br>";
      e.moveNext();
   }
   while (!e.atEnd());
   return(s);
}

Anforderungen

Version 3

Siehe auch

Anweisung mit Marke | break-Anweisung | continue-Anweisung | for-Anweisung | for...in-Anweisung | while-Anweisung


for-Anweisung

Führt einen Anweisungsblock aus, solange eine Bedingung wahr ist.

for (Initialisierung; Test; Inkrement)
   Anweisungen

Argumente

Initialisierung
Erforderlich. Ein Ausdruck. Dieser Ausdruck wird nur einmal vor Ausführung der Schleife ausgeführt.
Test
Erforderlich. Ein boolescher Ausdruck. Ist Test true, dann wird die Anweisung ausgeführt. Ist Test vom Wert false, wird die Schleife beendet.
Inkrement
Erforderlich. Ein Ausdruck. Nach jedem Schleifendurchlauf wird der Inkrementausdruck ausgeführt.
Anweisungen
Optional. Eine oder mehrere auszuführende Anweisungen, wenn Test vom Wert true ist. Hierbei kann es sich auch um eine Verbundanweisung handeln.

Hinweise

for-Schleifen werden in der Regel verwendet, um die Anzahl der Durchläufe einer Schleife festzulegen.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung einer for-Schleife.

/* i wird zu Beginn auf 0 gesetzt und am Ende jedes
Schleifendurchlaufs um 1 erhöht. Die Schleife endet,
wenn i vor Beginn des nächsten Schleifendurchlaufs
nicht mehr kleiner als 10 ist. */
var meinArray = new Array();
for (i = 0; i < 10; i++){
   meinArray[i] = i;
}

Anforderungen

Version 1

for...in-Anweisung | while-Anweisung


for...in-Anweisung

Führt eine Anweisung oder mehrere Anweisungen für jede Eigenschaft eines Objekts oder für jedes Element eines Arrays aus.

for (Variable in [Objekt | Array])
   Anweisungen

Argumente

Variable
Erforderlich. Eine Variable, die jede Eigenschaft von Objekt oder eines Elements von Array sein kann.
Objekt, Array
Optional. Ein Objekt oder Array, das durchlaufen werden soll.
Anweisungen
Optional. Eine oder mehrere auszuführende Anweisungen für jede Eigenschaft von Objekt oder jedes Element von Array. Hierbei kann es sich auch um eine Verbundanweisung handeln.

Hinweise

Vor jeder Iteration einer Schleife wird Variable die neue Eigenschaft von Objekt oder das nächste Element von Array zugewiesen. Sie können sie anschließend für sämtliche Anweisungen innerhalb einer Schleife genauso verwenden wie die Eigenschaft von Objekt oder das Element von Array.

Bei der Iteration mit einem Objekt besteht keine Möglichkeit, die Reihenfolge zu bestimmen oder zu steuern, in der die Elemente des Objekts Variable zugeordnet werden. Die Iteration mit einem Array erfolgt in der Reihenfolge der Elemente, also 0, 1, 2, ...

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der for...in-Anweisung, wobei ein Objekt als assoziatives Array verwendet wird.

function ForInDemo(){
   // Erstellt mehrere Variablen.
   var a, schluessel, s = "";
   // Initialisiert das Objekt.
   a = {"a" : "Athen", "b" : "Belgrad", "c" : "Chicago"}
   // Durchläuft die Eigenschaften.
   for (schluessel in a)   {
      s += a[schluessel] + "<BR>";
   }
   return(s);
}
Anmerkung Verwenden Sie das enumerator-Objekt, um die Elemente einer Auflistung zu durchlaufen.

Anforderungen

Version 5

for-Anweisung | while-Anweisung


function-Anweisung

Deklariert eine neue Funktion.

function Funktionsname(([Argument1 [, Argument2 [,...[, ArgumentN]]]])
{
   Anweisungen
}

Argumente

Funktionsname
Erforderlich. Der Name der Funktion.
Argument1…ArgumentN
Optional. Eine optionale, durch Kommata getrennte Liste von Argumenten, welche die Funktion verarbeitet.
Anweisungen
Optional. Eine oder mehrere JScript-Anweisungen.

Hinweise

Verwenden Sie die function-Anweisung, um eine Funktion für den späteren Gebrauch zu deklarieren. Der in Anweisungen enthaltene Code wird erst dann ausgeführt, wenn die Funktion von anderer Stelle im Skript aus aufgerufen wird.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der function-Anweisung.

function MeineFunktion(arg1, arg2){
   var r;
   r = arg1 * arg2;
   return(r);
}
Anmerkung Stellen Sie beim Aufrufen einer Funktion stets sicher, dass Sie die Klammern sowie die notwendigen Argumente angeben. Das Aufrufen einer Funktion ohne Klammern führt dazu, dass der Text der Funktion, nicht jedoch das eigentliche Ergebnis des Funktionsaufrufes zurückgegeben wird.

Anforderungen

Version 1

new-Operator


if...else-Anweisung

Wertet einen Ausdruck aus und führt in Abhängigkeit vom Ergebnis eine Reihe von Anweisungen aus.

if (Bedingung)
   Anweisung1
[else
   Anweisung2]

Argumente

Bedingung
Erforderlich. Ein boolescher Ausdruck. Hat Bedingung den Wert null oder undefined, wird Bedingung wie false behandelt.
Anweisung1
Optional. Die auszuführende Anweisung, wenn Bedingung den Wert true hat. Hierbei kann es sich auch um eine Verbundanweisung handeln.
Anweisung2
Optional. Die auszuführende Anweisung, wenn Bedingung den Wert false hat. Kann auch eine Verbundanweisung sein.

Hinweise

Im Allgemeinen ist es sinnvoll, Anweisung1 und Anweisung2 zur besseren Übersicht und Vermeidung von unbeabsichtigten Fehlern in geschweifte Klammern ({}) zu setzen.

Beispiel

Im folgenden Beispiel sieht es so aus, als würde else mit der ersten if-Anweisung verwendet, tatsächlich bezieht es sich aber auf die zweite.

if (x == 5)
   if (y == 6)
      z = 17;
else
   z = 20;

Die folgende Änderung des Codes beseitigt alle Mehrdeutigkeiten:

if (x == 5)
   {
   if (y == 6)
      z = 17;
   }
else
   z = 20;

Wenn Sie später beabsichtigen, Anweisung1 eine Anweisung hinzuzufügen, und keine geschweiften Klammern verwendet werden, kann möglicherweise ein Fehler auftreten:

if (x == 5)
   z = 7;
   q = 42;
else
   z = 19;

In diesem Fall tritt ein Syntaxfehler auf, denn zwischen den Anweisungen if und else stehen mehrere Anweisungen. Die Anweisungen zwischen if und else müssen daher in geschweifte Klammern gesetzt werden.

Anforderungen

Version 1

Siehe auch

Bedingter (ternärer) Operator (?:)


Anweisung mit Marke

Stellt einen Bezeichner für eine Anweisung bereit.

Marke :
   Anweisungen

Argumente

Marke
Erforderlich. Ein eindeutiger Bezeichner, der beim Verweisen auf die Anweisung mit Marke verwendet wird.
Anweisungen
Optional. Eine oder mehrere mit Marke verknüpfte Anweisungen.

Hinweise

Marken werden von den Anweisungen break und continue verwendet, um die Anweisungen anzugeben, für die break und continue gelten sollen.

Beispiel

In der folgenden Anweisung verwendet die continue-Anweisung eine Anweisung mit Marke, um ein Array zu erstellen, in dem die dritte Spalte jeder Zeile einen undefinierten Wert enthält:

function MarkenDemo(){
   var a = new Array();
   var i, j, s = "", s1 = "";
   Aussen:
      for (i = 0; i < 5; i++)
      {
         Innen:
            for (j = 0; j < 5; j++)
            {
               if (j == 2)
                  continue Innen;
               else
                  a[i,j] = j + 1;
            }
      }
      for (i = 0; i < 5; i++)
      {
         s = "";
         for (j = 0; j < 5; j++)
         {
            s += a[i,j];
         }
         s1 += s + "\n";
      }
      return(s1)
}

Anforderungen

Version 3

break-Anweisung | continue-Anweisung


return-Anweisung

Beendet die aktuelle Funktion und gibt einen Wert von dieser Funktion zurück.

return[(][Ausdruck][)];

Das optionale Argument Ausdruck ist der von der Funktion zurückgegebene Wert. Ohne Angabe gibt die Funktion keinen Wert zurück.

Hinweise

Die return-Anweisung dient dazu, die Ausführung einer Funktion zu beenden und den Wert von Ausdruck zurückzugeben. Wird Ausdruck weggelassen oder wird keine return-Anweisung aus der Funktion heraus ausgeführt, wird dem die Funktion aufrufenden Ausdruck der Wert undefined zugewiesen.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der return-Anweisung.

function meineFunktion(arg1, arg2){
   var r;
   r = arg1 * arg2;
   return(r);
}

Anforderungen

Version 1

function-Anweisung


switch-Anweisung

Aktiviert die Ausführung einer oder mehrerer Anweisungen, wenn der Wert eines angegebenen Ausdruckes einer Marke entspricht.

switch (Ausdruck) {
   case Marke :
       Anweisungsliste
   case Marke :
       Anweisungsliste
   ...
   default :
       Anweisungsliste
}

Argumente

Ausdruck
Der auszuwertende Ausdruck.
Marke
Ein Bezeichner, der mit Ausdruck verglichen werden soll. Falls Marke === Ausdruck, beginnt die Ausführung mit der Anweisungsliste unmittelbar nach dem Doppelpunkt und wird fortgesetzt, bis sie entweder auf die optionale break-Anweisung oder auf das Ende der switch-Anweisung trifft.
Anweisungsliste
Eine oder mehrere auszuführende Anweisungen.

Hinweise

Verwenden Sie die default-Klausel, um eine Anweisung bereitzustellen, die ausgeführt werden soll, wenn keiner der Markenwerte mit Ausdruck übereinstimmt. Sie kann an einer beliebigen Stelle im switch-Codeblock stehen.

Es können keine oder mehrere Marke-Blöcke angegeben werden. Falls keine Marke dem Wert von Ausdruck entspricht und kein default-Fall angegeben ist, werden keine Anweisungen ausgeführt.

Die Ausführung einer switch-Anweisung verläuft wie folgt:

  • Auswertung von Ausdruck und Durchführung eines sequenziellen Vergleichs mit Marke, bis eine Entsprechung gefunden wird.
  • Wenn ein Marke-Wert einem Ausdruck entspricht, wird die begleitende Anweisungsliste ausgeführt.
    Fortsetzung der Ausführung, bis eine break-Anweisung gefunden wird oder die switch-Anweisung endet. Dies bedeutet, dass mehrere Marke-Blöcke ausgeführt werden, wenn keine break-Anweisung verwendet wird.
  • Wenn keine Marke dem Ausdruck entspricht, geht das Programm zum default-Fall. Ist dieser nicht vorhanden, geht es zum letzten Schritt über.
  • Fortsetzung der Ausführung mit der Anweisung, die auf das Ende des switch-Codeblocks folgt.

Beispiel

Das folgende Beispiel versucht, den Typ eines Objekts zu ermitteln.

function MeinObjekt() {
...}

switch (objekt.konstruktor){
   case Datum:
   ...
   case Zahl:
   ...
   case Zeichenfolge:
   ...
   case MeinObjekt:
   ...
   default:
   ...
}

Anforderungen

Version 3

break-Anweisung | if...else-Anweisung


this-Anweisung

Verweist auf das aktuelle Objekt.

this.Eigenschaft

Das erforderliche Argument Eigenschaft ist eine der aktuellen Eigenschaften des Objekts.

Hinweise

Das Schlüsselwort this wird normalerweise in Konstruktoren von Objekten verwendet, um auf das aktuelle Objekt zu verweisen.

Beispiel

Im folgenden Beispiel bezieht sich this auf das neu erstellte Objekt "Auto" und weist drei Eigenschaften Werte zu:

function Auto(farbe, marke, modell){
   this.farbe = farbe;
   this.marke = marke;
   this.modell = modell;
}

Bei Client-Versionen von JScript bezieht sich this auf das window-Objekt, wenn es außerhalb des Kontextes irgendeines anderen Objekts verwendet wird.

Anforderungen

Version 1

new-Operator


throw-Anweisung

Löst eine Fehlerbedingung aus, die von einer try...catch…finally-Anweisung behandelt werden kann.

throw Ausnahme

Das erforderliche Argument Ausnahme kann dabei ein beliebiger Ausdruck sein.

Hinweise

Das folgende Beispiel erzeugt einen vom übergebenen Wert abhängigen Fehler und zeigt, wie dieser Fehler in einer Hierarchie von try...catch…finally-Anweisungen behandelt wird:

function TryCatchDemo(x){
   try {
      try {
      if (x == 0)   // Argument auswerten.
         throw "x gleich null";   // Fehler auslösen.
      else
         throw "x ungleich null";   // Anderen Fehler auslösen.
      }
      catch(e) {   // Hier "x gleich null"-Fehler behandeln.
         if (e == "x gleich null")   // Überprüfen, ob der Fehler hier behandelt wird.
            return(e + " wird hier behandelt.");   // Fehlermeldung für das Objekt zurückgeben.
         else   // Fehler kann hier nicht behandelt werden.
            throw e;   // Fehler für nächste Fehlerbehandlung
      }   // neu auslösen.
   }
   catch(e) {   // Andere Fehler hier behandeln.
      return(e + " wird auf einer höheren Stufe behandelt.");   // Fehlermeldung zurückgeben.
   }
}
document.write(TryCatchDemo(0));
document.write(TryCatchDemo(1));

Anforderungen

Version 5

try...catch-Anweisung


try...catch...finally-Anweisung

Implementiert die Fehlerbehandlung für JScript.

try {
   tryAnweisungen}
catch(Ausnahme){
   catchAnweisungen}
finally {
   finallyAnweisungen}

Argumente

tryAnweisungen
Erforderlich. Anweisungen, in denen ein Fehler auftreten kann.
Ausnahme
Erforderlich. Ein beliebiger Variablenname. Der Anfangswert von Ausnahme ist der Wert des ausgelösten Fehlers.
catchAnweisungen
Optional. Anweisungen zur Behandlung von Fehlern, die in zugeordneten tryAnweisungen auftreten.
finallyAnweisungen
Optional. Anweisungungen, die bedinungslos ausgeführt werden können, nachdem die Behandlung aller Fehler abgeschlossen ist.

Hinweise

Die try...catch…finally-Anweisung bietet eine Möglichkeit, einige oder alle möglichen Fehler zu behandeln, die in einem bestimmten Codeblock auftreten können, während dieser Code noch ausgeführt wird. Treten vom Programmierer nicht behandelte Fehler auf, übernimmt JScript die Anzeige der herkömmlichen Fehlermeldung an den Benutzer, als wäre keine Fehlerbehandlung vorhanden.

Die tryAnweisungen enthalten Code mit Informationen, wo ein Fehler auftreten kann, wohingegen catchAnweisungen den Code zur entsprechenden Fehlerbehandlung enthalten, wenn Fehler auftreten. Tritt ein Fehler in den tryAnweisungen auf, wird die Programmsteuerung zur Behandlung an die catchAnweisungen übergeben. Der Anfangswert von Ausnahme ist der Wert des in den tryAnweisungen ausgelösten Fehlers. Wenn keine Fehler auftreten, werden catchAnweisungen niemals ausgeführt.

Kann der Fehler nicht in fehlerhaften tryAnweisungen zugewiesenen catchAnweisungen behandelt werden, verwenden Sie die throw-Anweisung, um den Fehler an eine Fehlerbehandlung auf höhere Ebene zu übergeben bzw. ihn erneut auszulösen ("rethrow").

Nachdem alle Anweisungen in tryAnweisungen durchgeführt wurden und alle Fehlerbehandlungen in catchAnweisungen abgeschlossen sind, werden die Anweisungen in finallyAnweisungen bedingungslos ausgeführt.

Beachten Sie, dass der Code innerhalb von finallyAnweisungen auch dann ausgeführt wird, wenn eine return-Anweisung innerhalb von try- oder catch-Blöcken auftritt oder wenn der catch-Block den Fehler erneut auszulöst. finallyAnweisungen werden garantiert ausgeführt, es sei denn, es tritt ein nicht behandelter Fehler auf (z. B. ein Fehler, der einen Laufzeitfehler in einem catch-Block auslöst).

Beispiel

Das folgende Beispiel zeigt, wie die JScript-Ausnahmebehandlung funktioniert.

try {
  print("Äußere try-Anweisung wird ausgeführt..");
  try {
    print("Geschachtelte try-Anweisung wird ausgeführt...");
    throw "einen Fehler";
  }
  catch(e) {
    print("Geschachtelte catch-Anweisung verursachte " + e);
    throw e + " erneut ausgelösten";
  }
  finally {
    print("Geschachtelte finally-Anweisung wird ausgeführt...");
  }
}
catch(e) {
  print("Äußere catch-Anweisung verursachte " + e);
}
finally {
  print("Äußere finally-Anweisung wird ausgeführt");
}
// Ändern Sie dies für Windows Script Host in WScript.Echo(s)
function print(s){
   document.write(s);
}

Dies erzeugt die folgende Ausgabe:

Äußere try-Anweisung wird ausgeführt..
Geschachtelte try-Anweisung wird ausgeführt...
Geschachtelte catch-Anweisung verursachte einen Fehler
Geschachtelte finally-Anweisung wird ausgeführt...
Äußere catch-Anweisung verursachte einen erneut ausgelösten Fehler
Äußere finally-Anweisung wird ausgeführt

Anforderungen

Version 5

throw-Anweisung


var-Anweisung

Deklariert eine Variable.

var Variable1 [ = Wert1 ] [, Variable2 [ = Wert2], ...]

Argumente

Variable1, Variable2
Die Namen der zu deklarierenden Variablen.
Wert1, Wert2
Die den Variablen zuzuweisenden Anfangswerte.

Hinweise

Verwenden Sie die var-Anweisung zum Deklarieren von Variablen. Diesen Variablen können sofort bei der Deklaration Werte zugewiesen werden oder erst später im Skript.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der var-Anweisung.

var index;
var name = "Albert Einstein";
var antwort = 42, zaehler, zahl = 10;

Anforderungen

Version 1

function-Anweisung | new-Operator


while-Anweisung

Führt eine Anweisung aus, bis eine angegebene Bedingung false ist.

while (Ausdruck)
   Anweisungen

Argumente

Ausdruck
Erforderlich. Ein boolescher Ausdruck, der vor jeder Schleifeniteration überprüft wird. Ist Ausdruck true, wird die Schleife ausgeführt. Ist Ausdruck false, wird die Schleife beendet.
Anweisungen
Optional. Eine oder mehrere auszuführende Anweisungen, wenn Ausdruck true ist

Hinweise

Die while-Anweisung überprüft Ausdruck vor der ersten Ausführung einer Schleife. Ist Ausdruck zu diesem Zeitpunkt bereits false, dann wird die Schleife nie ausgeführt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der while-Anweisung.

function BreakTest(endPunkt){
   var i = 0;
   while (i < 100)
   {
   if (i == endPunkt)
      break;
      i++;
   }
   return(i);
}

Anforderungen

Version 1

Siehe auch

break-Anweisung | continue-Anweisung | do...while-Anweisung | for-Anweisung | for...in-Anweisung


with-Anweisung (JScript)

JScript

with-Anweisung

Legt das standardmäßig zu verwendende Objekt für eine Anweisung fest.

with (Objekt)
   Anweisungen

Argumente

Objekt
Das neue Standardobjekt.
Anweisungen
Eine oder mehrere Anweisungen, für die Objekt das Standardobjekt sein soll.

Hinweise

Die with-Anweisung wird vielfach zur Verkürzung von Programmcode verwendet. Beachten Sie in dem folgenden Beispiel die wiederholte Verwendung von Math.

x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)
y = Math.tan(14 * Math.E)

Unter Verwendung der with-Anweisung wird der Code kürzer und leichter lesbar:

with (Math){
   x = cos(3 * PI) + sin (LN10)
   y = tan(14 * E)
}

Anforderungen

Version 1

this-Anweisung


VBScript

VBScipt-Benutzerhandbuch

VBScript-Sprachverzeichnis


VBScript-Benutzerhandbuch

Was ist VBScript?

Hinzufügen von VBScript-Code zu einer HTML-Seite

VBScript-Grundlagen

VBScript-Datentypen

VBScript-Variablen

Konstanten

VBScript-Operatoren

Verwenden von Bedingungsanweisungen

Durchlaufen von Codeschleifen

VBScript-Prozeduren

VBScript-Codekonventionen


Was ist VBScript?

Microsoft Visual Basic Scripting Edition ermöglicht das Erstellen aktiver Skripten für eine Vielzahl von Umgebungen, einschließlich Webclientscripting in Microsoft Internet Explorer und Webserverscripting in Microsoft Internet Information Service.

Leicht zu lernen und anzuwenden

Wenn Sie Visual Basic oder Visual Basic für Applikationen (VBA) bereits kennen, wird Ihnen VBScript bekannt vorkommen. Und wenn Sie Visual Basic nicht kennen und sich darin einarbeiten, erlernen Sie gleichzeitig alle Visual Basic-Programmiersprachen. Obwohl Sie VBScript mithilfe dieser wenigen Webseiten kennen lernen können, erlernen Sie hier nicht die Technik des Programmierens. Um das Programmieren zu erlernen, verwenden Sie die Schritt für Schritt-Bücher, die Sie bei Microsoft Press bestellen können.

Windows Script

VBScript verwendet Windows Script zur Kommunikation mit Hostanwendungen. Windows Script erspart Browsern und anderen Hostanwendungen die Implementierung von speziellem Integrationscode für jede Scriptingkomponente. Windows Script ermöglicht einem Host die Kompilierung von Skripten, das Anfordern und den Aufruf von Einsprungpunkten und die Verwaltung des Namensraumes, der dem Entwickler zur Verfügung steht. Mit Windows Script können Compilerhersteller Standardlaufzeitmodule der jeweiligen Sprache für Skripten erstellen. Microsoft wird Laufzeitunterstützung für VBScript anbieten. Microsoft arbeitet mit verschiedenen Internetgruppen an der Definition des Windows Script-Standards, um die Austauschbarkeit von Scriptingmodulen zu definieren. Windows Script wird in Microsoft® Internet Explorer und in Microsoft® Internet Information Service verwendet.

VBScript in anderen Anwendungen und Browsern

Als Programmentwickler ist es Ihnen gestattet, die VBScript-Quellen kostenlos in Ihren Produkten zu verwenden und weiterzugeben. Von Microsoft sind für die 32-Bit Windows® API, die 16-Bit-Windows API und den Macintosh® binäre Implementationen von VBScript erhältlich. VBScript ist Bestandteil von WWW-Browsern. VBScript und Windows Script kann auch in anderen Anwendungen als allgemeine Scripting-Programmiersprache verwendet werden.


Hinzufügen von VBScript-Code zu einer HTML-Seite

Sie können das SCRIPT-Element verwenden, um einer HTML-Seite VBScript-Code hinzuzufügen.

Das <SCRIPT>-Tag

VBScript-Code wird in einer HTML-Seite zwischen paarweisen <SCRIPT>-Tags abgelegt. Eine Prozedur zur Überprüfung eines Lieferdatums könnte beispielsweise folgendermaßen aussehen:

<SCRIPT LANGUAGE="VBScript">
<!--
   Function KannLiefern(Dt)
      KannLiefern = (CDate(Dt) - Now()) > 2
   End Function
-->
</SCRIPT>

Der Code ist zwischen Anfangs- und Ende-<SCRIPT>-Tags eingeschlossen. Sie können sehen, dass das LANGUAGE-Attribut die Skriptsprache angibt. Sie müssen die Sprache angeben, weil Browser auch andere Skriptsprachen verwenden können. Sie können außerdem sehen, dass die Funktion KannLiefern zwischen Kommentar-Tags (<!— und —>) eingeschlossen ist. Damit wird verhindert, dass Browser, die das <SCRIPT>-Tag nicht verarbeiten können, den Code anzeigen.

Weil die Beispielfunktion eine allgemeine Funktion darstellt - sie ist nicht an eine bestimmte Art von Formular gebunden - können Sie diese in den HEAD-Abschnitt der Seite aufnehmen:

<HTML>
<HEAD>
<TITLE>Geben Sie Ihre Bestellung auf</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
   Function KannLiefern(Dt)
      KannLiefern = (CDate(Dt) - Now()) > 2
   End Function
-->
</SCRIPT>
</HEAD>
<BODY>
...

Sie können SCRIPT-Blöcke überall auf einer HTML-Seite verwenden. Sie können sie sowohl im BODY-Abschnitt als auch im HEAD-Abschnitt unterbringen. Es ist jedoch sinnvoll, sämtlichen allgemeinen Scripting-Code im HEAD-Abschnitt unterzubringen, um den gesamten Code beisammen zu halten. Wenn Sie Ihren Code im HEAD-Abschnitt unterbringen, wird sichergestellt, dass der gesamte Code gelesen und dekodiert wird, bevor er im BODY-Abschnitt aufgerufen wird.

Eine wichtige Ausnahme von dieser Regel ist, wenn Sie in Formularen Scripting-Code einfügen, um auf Ereignisse von Objekten in Ihrem Formular zu reagieren. Sie können z. B. Scripting-Code einbetten, um auf Klicken auf eine Schaltfläche zu reagieren:

<HTML>
<HEAD>
<TITLE>Schaltflächen-Ereignisse testen</TITLE>
</HEAD>
<BODY>
<FORM NAME="Formular1">
   <INPUT TYPE="Button" NAME="Schaltflaeche1" VALUE="Klicken">
   <SCRIPT FOR="Schaltflaeche1" EVENT="onClick" LANGUAGE="VBScript">
      MsgBox "Schaltfläche geklickt!"
   </SCRIPT>
</FORM>
</BODY>
</HTML>

Der von Ihnen geschriebene Code steht meist entweder in Sub- oder in Function-Prozeduren und wird nur dann aufgerufen, wenn es durch Ihren Code angegeben wird. Aufruf durch von Ihnen geschriebenem Code ausgeführt. VBScript-Code kann innerhalb eines SCRIPT-Blockes aber auch außerhalb von Prozeduren stehen. Ein solcher Code wird nur einmalig beim Laden der HTML-Seite ausgeführt. Auf diese Weise können beim Laden der Webseite Daten initialisiert und das Erscheinungsbild der Seite dynamisch verändert werden.


Nicht in Visual Basic für Applikationen enthaltene VBScript-Features

In der folgenden Tabelle sind VBScript-Features aufgeführt, die nicht in Visual Basic für Applikationen enthalten sind.

Kategorie | Feature/Schlüsselwort
Deklarationen | Class
Objekte | RegExp
Skriptmodulidentifikation | ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion
Verschiedenes | Eval Execute


Nicht in VBScript enthaltene Visual Basic für Applikationen-Features

In der folgenden Tabelle sind Visual Basic für Applikationen-Features aufgeführt, die nicht in VBScript enthalten sind.

Kategorie | Nicht verfügbares Feature/Schlüsselwort
Ablaufsteuerung | DoEvents GoSub...Return, GoTo On Error GoTo On...GoSub, On...GoTo Zeilennummern, Zeilenmarken
Arraybehandlung | Option Base Deklarieren von Arrays mit Untergrenzen <> 0
Auflistung | Add, Count, Item, Remove Zugriff auf Auflistungen unter Verwendung des Ausrufungszeichens (!)
Bedingte Kompilierung | #Const #If...Then...#Else
Dateieingabe/-ausgabe | Alle in Basic üblichen Dateiein- und -ausgaben
Datentypen | Alle intrinsischen Datentypen außer Variant Type...End Type
Datums-/Zeitangaben | Date-Anweisung, Time-Anweisung
DDE | LinkExecute, LinkPoke, LinkRequest, LinkSend
Debuggen | Debug.Print End, Stop
Deklaration | Declare (zum Deklarieren von DLLs) Optional ParamArray Static
Fehlerbehandlung | Erl Error Resume, Resume Next
Finanzmathematik | Alle finanzmathematischen Funktionen
Konvertierung | CVar, CVDate Str, Val
Objektbearbeitung | TypeOf
Objekte | Clipboard Collection
Operatoren | Like
Optionen | Deftype Option Base Option Compare Option Private Module
Select Case | Ausdrücke, die das Is-Schlüsselwort oder einen oder mehrere Vergleichsoperatoren enthalten Ausdrücke, die einen Wertebereich unter Verwendung des To-Schlüsselworts enthalten.
Verwenden von Objekten | Zugriff auf Auflistungen unter Verwendung des Ausrufungszeichens (!)
Zeichenfolgen | Zeichenfolgen mit fester Länge LSet, RSet Mid-Anweisung StrConv


VBScript-Grundlagen

VBScript-Datentypen

VBScript-Variablen

VBScript-Konstanten

VBScript-Operatoren

Verwenden von Bedingungsanweisungen

Durchlaufen von Codeschleifen

VBScript-Prozeduren

VBScript-Codekonventionen


Eine einfache VBScript-Seite

Eine einfache Seite

Mit Microsoft® Internet Explorer können Sie die mit dem folgenden HTML-Code erstellte Seite anzeigen. Wenn Sie auf die Schaltfläche auf der Seite klicken, sehen Sie VBScript in Aktion.

<HTML>
<HEAD><TITLE>Eine einfache erste Seite</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Schaltfl1_OnClick
   MsgBox "Mirabile visu."
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>Eine einfache erste Seite</H3><HR>
<FORM><INPUT NAME="Schaltfl1" TYPE="BUTTON" VALUE="Hier klicken"></FORM>
</BODY>
</HTML>

Das Ergebnis ist nicht gerade überwältigend: Sie sehen ein Dialogfeld mit einem Satz (Lateinisch für "Wunderbar anzusehen"). Es passiert jedoch einiges.

Wenn Internet Explorer die Seite einliest, wird das <SCRIPT>-Tag gefunden, ein VBScript-Codeabschnitt erkannt und gespeichert. Wenn Sie dann auf die Schaltfläche klicken, stellt Internet Explorer die Verbindung zwischen der Schaltfläche und dem Code her und führt die Prozedur aus.

Die Sub-Prozedur innerhalb der <SCRIPT>-Tags wird auch als Ereignisprozedur bezeichnet. Sie sehen, dass der Prozedurname aus zwei Teilen besteht: dem Namen der Schaltfläche, Schaltfl1 (vom NAME-Attribut im <INPUT>-Tag), und dem Ereignisnamen OnClick. Die beiden Teile sind durch einen Unterstrich (_) miteinander verbunden. Jedes Mal, wenn auf die Schaltfläche geklickt wird, sucht Internet Explorer nach der zugehörigen Ereignisprozedur Schaltfl1_OnClick und führt sie aus.

Informationen zu Internet Explorer-Definitionen zu verfügbaren Ereignissen für Formular-Steuerelemente finden Sie in der Dokumentation des Internet Explorer Scripting-Objektmodells in der Website von Microsoft® (http://www.microsoft.com/germany).

Seiten können auch eine Kombination von Steuerelementen und Prozeduren enthalten. Die nächste Seite, VBScript und Formulare, demonstriert einige einfache Wechselbeziehungen zwischen Steuerelementen.

Andere Möglichkeiten, Code mit Ereignissen zu verknüpfen

Sie können VBScript-Code auf zwei andere Arten mit Ereignissen verknüpfen, obwohl die weiter oben vorgestellte Möglichkeit wahrscheinlich die allgemeinste und einfachste ist. Internet Explorer ermöglicht Ihnen, in das Tag, das ein Steuerelement definiert, kurze Abschnitte mit Inline-Code einzufügen. Das folgende <INPUT>-Tag führt genau dieselbe Aktion aus wie das weiter oben gezeigte Codebeispiel, wenn Sie auf die Schaltfläche klicken:

<INPUT NAME="Schaltfl1" TYPE="BUTTON"
   VALUE="Hier klicken" OnClick='MsgBox "Mirabile visu."'>

Beachten Sie, dass der Funktionsaufruf selbst in Hochkommas eingeschlossen ist, während die Zeichenfolge für die MsgBox-Funktion in Anführungszeichen eingeschlossen ist. Sie können mehrere Anweisungen durch Doppelpunkte (:) getrennt eingeben.

Sie können ein <SCRIPT>-Tag auch so schreiben, dass es nur ein bestimmtes Ereignis für ein bestimmtes Steuerelement:

<SCRIPT LANGUAGE="VBScript" EVENT="OnClick" FOR="Schaltfl1">

<!--
   MsgBox "Mirabile visu."
-->
</SCRIPT>

Da das <SCRIPT>-Tag bereits Ereignis und Steuerelement angibt, werden die Anweisungen Sub und End Sub nicht verwendet.


VBScript-Features

Die folgende Tabelle enthält eine Liste der VBScript-Features.

Kategorie | Schlüsselwörter
Ablaufsteuerung | Do...Loop For...Next For Each...Next If...Then...Else Select Case While...Wend With
Arraybehandlung | Array Dim, Private, Public, ReDim IsArray Erase LBound, UBound
Ausdrücke | Eval Execute RegExp Replace Test
Datums-/Zeitangaben | Date, Time DateAdd, DateDiff, DatePart DateSerial, DateValue Day, Month, MonthName Weekday, WeekdayName, Year Hour, Minute, Second Now TimeSerial, TimeValue
Deklarationen | Class Const Dim, Private, Public, ReDim Function, Sub Property Get, Property Let, Property Set
Eingabe/Ausgabe | InputBox LoadPicture MsgBox
Fehlerbehandlung | On Error Err
Formatieren von Zeichenfolgen | FormatCurrency FormatDateTime FormatNumber FormatPercent
Kommentare | Kommentare mit ' oder Rem
Konstanten/Literale | Empty Nothing Null True, False
Konvertierungen | Abs Asc, AscB, AscW Chr, ChrB, ChrW CBool, CByte CCur, CDate CDbl, CInt CLng, CSng, CStr DateSerial, DateValue Hex, Oct Fix, Int Sgn TimeSerial, TimeValue
Literale | Empty False Nothing Null True
Mathematik | Atn, Cos, Sin, Tan Exp, Log, Sqr Randomize, Rnd
Objekte | CreateObject Err-Objekt GetObject RegExp
Operatoren | Addition (+), Subtraktion (-) Exponenten (^) Modulo (Mod) Multiplikation (*), Division (/) Ganzzahldivision (\) Negation (-) Zeichenfolgenverkettung (&) Gleichheit (=), Ungleich (<>) Kleiner als (<), Kleiner oder gleich (<=) Größer als (>) Größer oder gleich (>=) Is And, Or, Xor Eqv, Imp
Optionen | Option Explicit
Prozeduren | Call Function, Sub Property Get, Property Let, Property Set
Runden | Abs Int, Fix, Round Sgn
Skriptmodul-ID | ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion
Variant-Werte | IsArray IsDate IsEmpty IsNull IsNumeric IsObject TypeName VarType
Verschiedenes | Eval-Funktion Execute-Anweisung RGB-Funktion
Zeichenfolgen | Asc, AscB, AscW Chr, ChrB, ChrW Filter, InStr, InStrB InStrRev Join Len, LenB LCase, UCase Left, LeftB Mid, MidB Right, RightB Replace Space Split StrComp String StrReverse LTrim, RTrim, Trim
Zuweisungen | Set


VBScript-Datentypen

VBScript kennt nur einen Datentyp namens Variant. Ein Variant ist eine besondere Art von Datentyp, der je nach Verwendung verschiedene Arten von Informationen aufnehmen kann. Weil Variant der einzige Datentyp in VBScript ist, geben alle Funktionen in VBScript diesen Datentyp zurück.

Im einfachsten Fall kann Variant numerische Werte oder Zeichenfolgen enthalten. Ein Variant verhält sich wie eine Zahl, wenn Sie ihn in einem numerischen Zusammenhang verwenden, und wie eine Zeichenfolge, wenn Sie ihn wie eine Zeichenfolge verwenden. Wenn Sie also mit Daten arbeiten, die wie Zahlen "aussehen", interpretiert VBScript diese als Zahlen und verfährt entsprechend. Wenn Sie mit Daten arbeiten, die nur als Zeichenfolgen interpretiert werden können, behandelt VBScript diese als Zeichenfolgen. Sie können immer dafür sorgen, dass sich Zahlen wie Zeichenfolgen verhalten, indem Sie diese in Anführungszeichen (" ") einschließen.

Untertypen des Datentyps "Variant"

Über die einfache Einteilung in numerische Werte und Zeichenfolgen hinaus kann bei Variant-Werten zwischen weiteren Arten von numerischen Informationen unterschieden werden. Numerische Informationen können beispielsweise ein Datum oder eine Uhrzeit darstellen. In Verbindung mit anderen Datums- oder Uhrzeitinformationen wird das Ergebnis immer als Datum oder Uhrzeit ausgedrückt. Es stehen auch viele verschiedene Arten numerischer Informationen zur Verfügung, angefangen von booleschen Werten bis hin zu großen Fließkommazahlen. Diese unterschiedlichen Informationskategorien, die ein Variant aufnehmen kann, werden als Untertypen bezeichnet. Meistens genügt es, einem Variant einfach die gewünschten Daten zuzuweisen, damit er sich entsprechend verhält.

Die folgende Tabelle zeigt verschiedene Untertypen von Daten, die ein Variant enthalten kann.

Untertyp | Beschreibung
Empty | Variant ist nicht initialisiert. Der Wert ist 0 bei numerischen Variablen und eine Nullzeichenfolge ("") bei Zeichenfolgenvariablen.
Null | Variant enthält absichtlich keine gültigen Daten.
Boolean | Enthält entweder True oder False.
Byte | Enthält eine Ganzzahl von 0 bis 255.
Integer | Enthält eine Ganzzahl von -32.768 bis 32.767.
Currency | -922.337.203.685.477,5808 bis 922.337.203.685.477,5807.
Long | Enthält eine Ganzzahl von -2.147.483.648 bis 2.147.483.647.
Single | Enthält eine Fließkommazahl einfacher Genauigkeit von -3,402823E38 bis -1,401298E-45 für negative Werte und von 1,401298E-45 bis 3,402823E38 für positive Werte.
Double | Enthält eine Fließkommazahl doppelter Genauigkeit von -1,79769313486232E308 bis -4,94065645841247E-324 für negative Werte und von 4,94065645841247E-324 bis 1.79769313486232E308 für positive Werte.
Date (Time) | Enthält eine Zahl, die ein Datum vom 1. Januar 100 bis zum 31. Dezember 9999 darstellt.
String | Enthält eine Zeichenfolge variabler Länge, die bis zu etwa 2 Milliarden Zeichen lang sein kann.
Object | Enthält ein Objekt.
Error | Enthält eine Fehlernummer.

Daten können mithilfe von Konvertierungsfunktionen von einem Untertyp in den anderen konvertiert werden. Zusätzlich gibt die Funktion VarType Informationen über die Art und Weise der Speicherung von Daten in einem Variant zurück.


VBScript-Variablen

Eine Variable ist ein praktischer Platzhalter, der auf eine Stelle im Speicher des Computers verweist, an der Sie Programmdaten, die sich während der Ausführung des Skriptes möglicherweise ändern, speichern können. Sie können beispielsweise eine Variable namens KlickZaehler einrichten, um zu speichern, wie oft ein Benutzer auf ein Objekt auf einer bestimmten Webseite klickt. Es ist unwichtig, wo sich die Variable im Computerspeicher befindet. Wichtig ist, dass Sie nur ihren Namen angeben müssen, um den Wert der Variablen abzurufen oder zu ändern. In VBScript haben Variablen immer den grundlegenden Datentyp Variant.

Deklarieren von Variablen

Sie deklarieren Variablen in Ihrem Skript explizit mit den Anweisungen Dim, Public und Private. Beispiel:

Dim GradCelsius

Sie deklarieren mehrere Variablen, indem Sie diese durch Kommas voneinander trennen. Beispiel:

Dim Oben, Unten, Links, Rechts

Sie können eine Variable auch implizit deklarieren, indem Sie einfach ihren Namen an einer beliebigen Stelle in Ihrem Skript verwenden. Dies gilt allgemein als schlechter Programmierstil, weil Sie den Variablennamen an der einen oder anderen Stelle falsch eingeben könnten, was bei der Ausführung des Skriptes zu unerwarteten Ergebnissen führt. Aus diesem Grund gibt es die Option Explicit-Anweisung, mit der Sie die explizite Deklaration aller Variablen erzwingen können. Die Option Explicit-Anweisung sollte die erste Anweisung innerhalb Ihres Skriptes sein.

Einschränkungen für Namen

Für Variablennamen gelten die Standardregeln zum Benennen von Sprachelementen in VBScript. Für Variablennamen gilt:

  • Sie müssen mit einem Zeichen des Alphabets beginnen.
  • Sie dürfen keinen Punkt enthalten.
  • Sie dürfen nicht länger als 255 Zeichen sein.
  • Sie müssen innerhalb des Gültigkeitsbereichs, für den sie deklariert werden, eindeutig sein.

Gültigkeitsbereich und Lebensdauer von Variablen

Der Gültigkeitsbereich einer Variablen hängt davon ab, wo sie deklariert wurde. Wenn Sie eine Variable in einer Prozedur deklarieren, kann normalerweise nur Code innerhalb dieser Prozedur auf den Variablenwert zugreifen oder ihn ändern. Sie hat somit einen lokalen Gültigkeitsbereich und ist eine Variable auf Prozedurebene. Wenn Sie eine Variable außerhalb einer Prozedur deklarieren, ist sie für alle Prozeduren in Ihrem Skript sichtbar. Es handelt sich somit um eine Variable auf Skriptebene mit der Skriptebene als Gültigkeitsbereich.

Die Lebensdauer einer Variable hängt von der Zeitspanne ab, in der eine Variable existiert. Die Lebensdauer einer Variablen auf Skriptebene reicht vom Zeitpunkt der Deklaration bis zur Beendigung des Skriptes. Eine Variable auf Prozedurebene existiert nur solange, wie die Prozedur aktiv ist. Bei Verlassen der Prozedur wird die Variable "vernichtet". Lokale Variablen eignen sich gut als temporärer Speicherplatz während der Ausführung einer Prozedur. Sie können lokale Variablen mit demselben Namen in mehreren Prozeduren verwenden, da jede nur von der Prozedur erkannt wird, in der sie deklariert wurde.

Zuweisen von Werten zu Variablen

Variablen werden Werte zugewiesen, indem ein Ausdruck in folgender Form erstellt wird: Die Variable steht auf der linken Seite des Ausdruckes, und der Wert, welcher der Variablen zugewiesen werden soll, steht auf der rechten Seite. Beispiel:

B = 200

Skalare Variablen und Arrayvariablen

Meistens weisen Sie einer deklarierten Variablen nur einen einzelnen Wert zu. Solche Variablen werden skalare Variablen genannt. In anderen Fällen ist es sinnvoll, einer Variablen mehrere zusammenhängende Werte zuzuweisen. In diesen Fällen können Sie eine Variable erstellen, die eine Folge von Werten enthalten kann. Solche Variablen werden Arrayvariablen genannt. Arrayvariablen werden fast genauso deklariert wie skalare Variablen. Der einzige Unterschied besteht darin, dass bei der Deklaration von Arrayvariablen auf den Namen Klammern folgen. Im folgenden Beispiel wird ein eindimensionales Array mit 11 Elementen deklariert:

Dim A(10)

Obwohl in Klammern die Zahl 10 angegeben wird, enthält dieses Array 11 Elemente, weil alle Arrays in VBScript nullbasiert sind, d. h. mit dem Index 0 beginnen. In einem nullbasierten Array ist die Anzahl der Elemente immer um Eins höher als der in Klammern angegebene Wert. Diese Art von Array nennt man Array fester Größe.

Zur Zuweisung von Daten an die Elemente des Arrays verwenden Sie einen Index im Array. Mit Indizes von 0 bis 10 können den Elementen eines Arrays auf folgende Weise Werte zugewiesen werden:

A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55

Auf ähnliche Weise (mit einem Index im Array) kann der Wert eines beliebigen Arrayelements wieder abgerufen werden. Beispiel:

. . .
EineVariable = A(8)
. . .

Arrays sind nicht auf eine einzige Dimension beschränkt. Sie können bis zu 60 Dimensionen angeben, obwohl sich die meisten Menschen nur drei oder vier Dimensionen vorstellen können. Sie können mehrere Dimensionen deklarieren, indem Sie die Arraygrößen zwischen den Klammern durch Kommas voneinander trennen. Im folgenden Beispiel ist die Variable MeineTabelle ein zweidimensionales Array mit 6 Zeilen und 11 Spalten:

Dim MeineTabelle(5, 10)

In einem zweidimensionalen Array gibt die erste Zahl immer die Anzahl der Zeilen und die zweite Zahl die Anzahl der Spalten an.

Sie können auch Arrays deklarieren, deren Größe sich während des Ablaufs Ihres Skriptes ändern kann. Solche Arrays werden als dynamische Arrays bezeichnet. Das Array wird in einer Prozedur anfänglich mit einer Dim-Anweisung (wie jedes andere Array auch) oder mit einer ReDim-Anweisung deklariert. Der Unterschied besteht darin, dass zwischen den Klammern keine Größe oder Anzahl von Dimensionen angegeben wird. Beispiel:

Dim MeinArray()
ReDim EinAnderesArray()

Um ein dynamisches Array verwenden zu können, müssen Sie anschließend die Zahl der Dimensionen und deren Größen mit ReDim bestimmen. Im folgenden Beispiel wird die anfängliche Größe des dynamischen Arrays mit ReDim auf 25 festgelegt. Eine darauf folgende ReDim-Anweisung ändert die Größe des Arrays auf 30. Mithilfe des Schlüsselwortes Preserve wird der Inhalt des Arrays vor der Größenänderung gesichert.

ReDim MeinArray(25)
. . .
ReDim Preserve MeinArray(30)

Die Größe eines dynamischen Arrays kann beliebig oft geändert werden. Beachten Sie jedoch, dass bei einer Verkleinerung des Arrays die Daten in den eliminierten Elementen verloren gehen.


VBScript-Konstanten

Eine Konstante ist ein aussagekräftiger Name, der anstelle einer Zahl oder einer Zeichenfolge verwendet wird und dessen Wert sich nie ändert. VBScript legt eine Anzahl integrierter Konstanten fest. Weitere Informationen zu diesen integrierten Konstanten finden Sie im VBScript-Sprachverzeichnis.

Erstellen von Konstanten

In VBScript können Sie benutzerdefinierte Konstanten mit der Const-Anweisung definieren. Die Const-Anweisung ermöglicht das Definieren von Zeichenfolgenkonstanten oder numerischen Konstanten mit aussagekräftigen Namen und das Zuweisen von Literalwerten. Beispiele:

Const MeineZf = "Dies ist eine Zeichenfolge."
Const MeinAlter = 49

Beachten Sie, dass das Zeichenfolgenliteral in Anführungszeichen (" ") eingeschlossen ist. Anführungszeichen eignen sich am besten, um Zeichenfolgenwerte von numerischen Werten zu unterscheiden. Datums-/Uhrzeitliterale werden in Nummernzeichen (#) eingeschlossen. Beispiele:

Const MeinDatum = #6-1-97#

Um Konstanten einfach von Variablen unterscheiden zu können, sollten Sie sich ein Namensschema vorgeben. Dadurch können Sie Versuche zur Neuzuweisung von Werten an Konstanten während der Ausführung des Skriptes vermeiden. So können Sie z. B. Konstantennamen mit einem Präfix "vb" oder "con" versehen. Auch das Benennen von Konstanten mit ausschließlich Großbuchstaben wäre eine Möglichkeit. Ein unterschiedliches Erscheinungsbild von Konstanten- und Variablennamen vermeidet Verwechslungen beim Entwickeln komplexer Skripte.


VBScript-Operatoren

VBScript verfügt über eine Vielzahl von Operatoren, u. a. für arithmetische, Vergleichs-, Verkettungs- und logische Operationen.

Operatorvorrang

Treten mehrere Operationen in einem Ausdruck auf, wird jeder Teil in einer vorbestimmten Reihenfolge ausgewertet und aufgelöst. Diese wird als Operatorvorrang bezeichnet. Sie können den Operatorvorrang mit Klammern übergehen und die Auswertung von Teilen eines Ausdruckes vor anderen Teilen erzwingen. Operationen innerhalb von Klammern werden immer vor Operationen außerhalb von Klammern ausgeführt. Innerhalb der Klammern gilt jedoch der normale Operatorvorrang.

Wenn Ausdrücke Operatoren aus verschiedenen Kategorien enthalten, werden zuerst arithmetische, dann Vergleichs- und schließlich logische Operatoren ausgewertet. Vergleichsoperatoren haben alle denselben Rang, d. h. sie werden von links nach rechts in der Reihenfolge ihres Erscheinens ausgewertet. Arithmetische und logische Operatoren werden in der folgenden Reihenfolge ausgewertet.

Arithmetisch

Beschreibung | Symbol
Potenzierung | ^
Unäre Negation | -
Multiplikation | *
Division | /
Ganzzahldivision | \
Modulo-Arithmetik | Mod
Addition | +
Subtraktion | -
Zeichenfolgenverkettung | &

Vergleich

Beschreibung | Symbol
Gleichheit | =
Ungleichheit | <>
Kleiner als | <
Größer als | >
Kleiner oder gleich | <=
Größer oder gleich | >=
Objektäquivalenz | Is

Logisch

Beschreibung | Symbol
Logische Negation | Not
Logische Konjunktion | And
Logische Disjunktion | Or
Logische Exklusion | Xor
Logische Äquivalenz | Eqv
Logische Implikation | Imp

Wenn in einem Ausdruck sowohl Multiplikationen als auch Divisionen ausgeführt werden, erfolgt die Berechnung in der Reihenfolge des Auftretens von links nach rechts. Desgleichen wird beim Auftreten von Addition und Subtraktion in einem Ausdruck jede Operation entsprechend ihres Auftretens von links nach rechts ausgewertet.

Der Operator für die Zeichenfolgenverkettung (&) ist zwar kein arithmetischer Operator, kommt aber in der Rangfolge nach den arithmetischen und vor den Vergleichsoperatoren. Der Operator Is ist ein Vergleichsoperator für Objektverweise. Er vergleicht weder Objekte noch deren Werte, sondern bestimmt lediglich, ob zwei Objektverweise auf dasselbe Objekt verweisen.


Verwenden von Bedingungsanweisungen

Steuern der Programmausführung

Sie können den Ablauf eines Skriptes mit Bedingungs- und Schleifenanweisungen steuern. Mithilfe von Bedingungsanweisungen können Sie VBScript-Code schreiben, mit dem Entscheidungen getroffen und Aktionen wiederholt werden können. Die folgenden Bedingungsanweisungen sind in VBScript verfügbar:

  • If...Then...Else-Anweisung
  • Select Case-Anweisung

Treffen von Entscheidungen mithilfe von If...Then...Else

Die If...Then...Else-Anweisung wird verwendet, um zu bestimmen, ob eine Bedingung True oder False ist, und um anzugeben, ob je nach Ergebnis eine oder mehrere Anweisungen ausgeführt werden. Im Allgemeinen ist die Bedingung ein Ausdruck, der einen Vergleichsoperator zum Vergleichen eines Wertes oder einer Variablen mit einem/r anderen verwendet. Informationen zu Vergleichsoperatoren finden Sie unter Vergleichsoperatoren. If...Then...Else-Anweisungen können nach Bedarf auf beliebig vielen Ebenen geschachtelt werden.

Ausführen von Anweisungen, wenn eine Bedingung True ist

Um nur eine Anweisung auszuführen, wenn eine Bedingung True ist, verwenden Sie die einzeilige Syntax für die If...Then...Else-Anweisung. Das folgende Beispiel zeigt die einzeilige Syntax. Beachten Sie, dass in diesem Beispiel das Schlüsselwort Else weggelassen wird.

Sub DatumSetzen()
   Dim meinDatum
   meinDatum = #2/13/95#
   If meinDatum < Now Then meinDatum = Now
End Sub

Zum Ausführen von mehr als einer Codezeile müssen Sie die mehrzeilige Syntax oder Blocksyntax verwenden. Diese Syntax enthält die End If-Anweisung ,wie im folgenden Beispiel gezeigt:

Sub BenutzerWarnen(wert)
   If wert = 0 Then
      AlertLabel.ForeColor = vbRed
      AlertLabel.Font.Bold = True
      AlertLabel.Font.Italic = True
   End If
End Sub

Ausführen bestimmter Anweisungen, wenn eine Bedingung True ist, und Ausführen anderer Anweisungen, wenn eine Bedingung False ist

Mit der If...Then...Else-Anweisung können Sie zwei Blöcke mit ausführbaren Anweisungen definieren: ein Block wird ausgeführt, wenn die Bedingung True ist, der andere wird ausgeführt, wenn die Bedingung False ist.

Sub BenutzerWarnen(wert)
   If wert = 0 Then
      AlertLabel.ForeColor = vbRed
      AlertLabel.Font.Bold = True
      AlertLabel.Font.Italic = True
   Else
      AlertLabel.Forecolor = vbBlack
      AlertLabel.Font.Bold = False
      AlertLabel.Font.Italic = False
   End If
End Sub

Entscheiden zwischen mehreren Alternativen

Mithilfe einer Variante der If...Then...Else-Anweisung können Sie aus mehreren Alternativen auswählen. Durch das Hinzufügen der ElseIf-Klausel können Sie die Funktionalität der If...Then...Else-Anweisung erweitern, so dass der Programmablauf auf mehreren Möglichkeiten basiert. Beispiele:

Sub WertAusgeben(wert)
   If wert = 0 Then
      MsgBox wert
   ElseIf wert = 1 Then
      MsgBox wert
   ElseIf wert = 2 then
      MsgBox wert
   Else
      Msgbox "Wert außerhalb des Bereichs!"
   End If

Sie können nach Bedarf beliebig viele ElseIf-Klauseln hinzufügen, um alternative Möglichkeiten bereitzustellen. Durch eine zu häufige Verwendung der ElseIf-Klausel wird der Code allerdings umständlich. Eine bessere Möglichkeit zum Auswählen aus mehreren Alternativen bietet die Select Case-Anweisung.

Treffen von Entscheidungen mit Select Case

Die Select Case-Struktur bietet eine Alternative zu If...Then...ElseIf, um gezielt einen Anweisungsblock aus mehreren Anweisungsblöcken auszuführen. Eine Select Case-Anweisung bietet dieselbe Funktionalität wie die If...Then...Else-Anweisung, macht den Code jedoch effizienter und leichter lesbar.

Eine Select Case-Struktur arbeitet mit einem einzelnen Testausdruck, der einmalig, auf der obersten Ebene der Struktur, ausgewertet wird. Das Ergebnis der Struktur wird dann mit den Werten für jedes Case in der Struktur verglichen. Gibt es eine Übereinstimmung, wird der mit diesem Case verknüpfte Anweisungsblock wie in dem folgenden Beispiel ausgeführt:

Select Case Document.Formular1.Kartentyp.Options(SelectedIndex).Text
   Case "MasterCard"
      MCLogoAnzeigen
      MCKontoPruefen
   Case "Visa"
      VisaLogoAnzeigen
      VisaKontoPruefen
   Case "American Express"
      AMEXCOLogoAnzeigen
      AMEXCOKontoPruefen
   Case Else
      UnbekanntBildAnzeigen
      ErneutAuffordern
End Select

Beachten Sie, dass die Select Case-Struktur einen Ausdruck einmalig am Anfang der Struktur auswertet. Im Gegensatz dazu kann eine If...Then...ElseIf-Struktur für jede ElseIf-Anweisung unterschiedliche Ausdrücke auswerten. Eine If...Then...ElseIf -Struktur kann nur dann durch eine Select Case-Struktur ersetzt werden, wenn in jeder ElseIf-Anweisung derselbe Ausdruck ausgewertet wird.


Durchlaufen von Codeschleifen

Das Durchlaufen von Schleifen ermöglicht Ihnen, eine Anweisungsgruppe wiederholt auszuführen. Einige Schleifen wiederholen Anweisungen, bis eine Bedingung falsch (False) ist, andere wiederholen Anweisungen, bis eine Bedingung wahr (True) ist. Es gibt auch Schleifen, die Anweisungen in einer bestimmten Anzahl wiederholen.

Die folgenden Schleifenanweisungen sind in VBScript verfügbar:

  • Do...Loop: Schleife durchlaufen, solange oder bis eine Bedingung True ist.
  • While...Wend: Schleife durchlaufen, solange eine Bedingung True ist.
  • For...Next: Verwendet einen Zähler, der angibt, wie häufig Anweisungen ausgeführt werden.
  • For Each...Next: Wiederholt eine Anweisungsgruppe für jedes Element in einer Auflistung oder jedes Element in einem Array.

Verwenden von Do-Schleifen

Sie können Do...Loop-Anweisungen verwenden, um einen Anweisungblock mehrmals auszuführen, ohne dass die Anzahl der Durchläufe festgelegt ist. Die Anweisungen werden entweder wiederholt, solange eine Bedingung True ist oder bis eine Bedingung True ist.

Wiederholung von Anweisungen, während eine Bedingung True ist

Verwenden Sie das Schlüsselwort While, um eine Bedingung in einer Do...Loop-Anweisung zu überprüfen. Sie können die Bedingung überprüfen, bevor die Schleife ausgeführt wird (wie im folgenden Beispiel WhileZuerst gezeigt), oder Sie können sie überprüfen, nachdem die Schleife mindestens einmal ausgeführt wurde (wie im Beispiel WhileDanach gezeigt). Wenn in der WhileZuerst-Prozedur meineZahl auf 9 anstatt auf 20 festgelegt wird, werden die Anweisungen in der Schleife niemals ausgeführt. In der WhileDanach-Prozedur werden die Anweisungen in der Schleife nur 1-mal ausgeführt, weil die Bedingung bereits False ist.

Sub WhileZuerst()
   Dim zaehler, meineZahl
   zaehler = 0
   meineZahl = 20
   Do While meineZahl > 10
      meineZahl = meineZahl - 1
      zaehler = zaehler + 1
   Loop
   MsgBox "Die Schleife wurde " & zaehler & " mal wiederholt."
End Sub

Sub WhileDanach()
   Dim zaehler, meineZahl
   zaehler = 0
   meineZahl = 9
   Do
      meineZahl = meineZahl - 1
      zaehler = zaehler + 1
   Loop While meineZahl > 10
   MsgBox "Die Schleife wurde " & zaehler & " mal wiederholt."
End Sub

Wiederholen einer Anweisung bis eine Bedingung True wird

Es gibt zwei Möglichkeiten, das Schlüsselwort Until zu verwenden, um eine Bedingung in einer Do...Loop-Anweisung zu überprüfen. Sie können die Bedingung überprüfen, bevor die Schleife ausgeführt wird (wie im folgenden Beispiel UntilZuerst gezeigt), oder Sie können sie überprüfen, nachdem die Schleife mindestens einmal ausgeführt wurde (wie im Beispiel UntilDanach gezeigt). Solange die Bedingung False ist, wird die Schleife durchlaufen.

Sub UntilZuerst()
   Dim zaehler, meineZahl
   zaehler = 0
   meineZahl = 20
   Do Until meineZahl = 10
      meineZahl = meineZahl - 1
      zaehler = zaehler + 1
   Loop
   MsgBox "Die Schleife wurde " & zaehler & "-mal wiederholt."
End Sub

Sub UntilDanach()
   Dim zaehler, meineZahl
   zaehler = 0
   meineZahl = 1
   Do
      meineZahl = meineZahl + 1
      zaehler = zaehler + 1
   Loop Until meineZahl = 10
   MsgBox "Die Schleife wurde " & zaehler & " mal wiederholt."
End Sub

Beenden einer Do...Loop-Anweisung aus der Schleife heraus

Sie können eine Do...Loop-Schleife beenden, indem Sie die Exit Do-Anweisung verwenden. Da die Schleifenausführung normalerweise nur in bestimmten Situationen beendet werden soll, z. B. um eine Endlosschleife zu vermeiden, müssen Sie die Exit Do-Anweisung im True-Anweisungsblock einer If...Then...Else-Anweisung verwenden. Wenn die Bedingung False ist, wird die Schleife normal ausgeführt.

Im folgenden Beispiel wird meineZahl ein Wert zugewiesen, der eine Endlosschleife verursacht. Die If...Then...Else-Anweisung überprüft, ob dieser Zustand eintritt, und verhindert die endlose Wiederholung.

Sub ExitBeispiel()
   Dim zaehler, meineZahl
      zaehler = 0
      meineZahl = 9
      Do Until meineZahl = 10
         meineZahl = meineZahl - 1
         zaehler = zaehler + 1
         If meineZahl < 10 Then Exit Do
      Loop
      MsgBox "Die Schleife wurde " & zaehler & " mal wiederholt."
End Sub

Verwenden von While...Wend

Die While...Wend-Anweisung wird in VBScript für Entwickler zur Verfügung gestellt, die mit ihrer Verwendung vertraut sind. Auf Grund der eingeschränkten Flexibilität von While...Wend wird jedoch empfohlen, stattdessen Do...Loop zu verwenden.

Verwenden von For...Next

Sie können For...Next-Anweisungen verwenden, um genau festzulegen, wie oft ein Anweisungblock ausgeführt werden soll. Für Schleifen verwenden Sie eine Zählervariable, deren Wert mit jeder Wiederholung der Schleife erhöht und verringert wird.

Das folgende Beispiel hat zur Folge, dass eine Prozedur mit dem Namen MeineProz 50-mal ausgeführt wird. Die For-Anweisung gibt als Zählervariable x an und legt den zugehörigen Start- und Endwert fest. Die Next-Anweisung zählt die Zählervariable jeweils um 1 hoch.

Sub MeineProz50Mal()
   Dim x
   For x = 1 To 50
      MeineProz
   Next
End Sub

Mit dem Schlüsselwort Step können Sie die Zählervariable um den darin angegebenen Wert vergrößern oder verkleinern. Im folgenden Beispiel wird die Zählervariable j bei jedem Schleifendurchlauf um 2 hochgezählt. Wenn die Schleife beendet ist, enthält ergebnis die Summe von 2, 4, 6, 8 und 10.

Sub ZweierSumme()
   Dim j, ergebnis
   For j = 2 To 10 Step 2
      ergebnis = ergebnis + j
   Next
   MsgBox "Die Summe ist " & ergebnis
End Sub

Zum Verkleinern der Zählervariable verwenden Sie einen negativen Wert für Step. Sie müssen einen Endwert angeben, der kleiner als der Startwert ist. Im folgenden Beispiel wird die Zählervariable meineZahl bei jedem Schleifendurchlauf um 2 verkleinert. Wenn die Schleife beendet ist, enthält ergebnis die Summe von 16, 14, 12, 10, 8, 6, 4 und 2.

Sub NeueSumme()
   Dim meineZahl, ergebnis
   For meineZahl = 16 To 2 Step -2
      ergebnis = ergebnis + meineZahl
   Next
   MsgBox "Die Summe ist " & ergebnis
End Sub

Sie können jede For...Next-Anweisung beenden, bevor der Zähler seinen Endwert erreicht, indem Sie die Exit For-Anweisung verwenden. Da die Schleifenausführung normalerweise nur in bestimmten Situationen beendet werden soll, z. B. wenn ein Fehler auftritt, müssen Sie die Exit For-Anweisung im True-Anweisungsblock einer If...Then...Else-Anweisung verwenden. Wenn die Bedingung False ist, wird die Schleife normal ausgeführt.

Verwenden von For Each...Next

Eine For Each...Next-Schleife ist einer For...Next -Schleife ähnlich. Anstatt die Anzahl der Schleifendurchläufe zum Wiederholen der Anweisungen anzugeben, wird in einer For Each...Next-Schleife eine Anweisungsgruppe für jedes Element in einer Auflistung von Objekten oder für jedes Element in einem Array ausgeführt. Dies ist besonders dann hilfreich, wenn nicht bekannt ist, wie viele Elemente in einer Gruppe enthalten sind.

Im folgenden HTML-Codebeispiel wird der Inhalt eines Dictionary-Objekts verwendet, um Text in mehrere Textfelder einzusetzen.

<HTML>
<HEAD><TITLE>Formulare und Elemente</TITLE></HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdAendern_OnClick
   Dim d   ' Erstellen einer Variablen
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "0", "Athen"   ' Einige Schlüssel und Elemente hinzufügen
   d.Add "1", "Belgrad"
   d.Add "2", "Kairo"
   For Each I in d
      Document.frmFormular.Elements(I).Value = D.Item(I)
   Next
End Sub
-->
</SCRIPT>
<BODY>
<CENTER>
<FORM NAME="frmFormular"

<Input Type = "Text"><p>
<Input Type = "Text"><p>
<Input Type = "Text"><p>
<Input Type = "Text"><p>
<Input Type = "Button" NAME="cmdAendern" VALUE="Hier klicken"><p>
</FORM>
</CENTER>
</BODY>
</HTML>


VBScript-Prozeduren

In VBScript gibt es zwei Arten von Prozeduren, die Sub-Prozedur und die Function-Prozedur.

Sub-Prozeduren

Eine Sub-Prozedur ist eine Folge von VBScript-Anweisungen (eingeschlossen zwischen den Anweisungen Sub und End Sub), die Aktionen ausführen, aber keine Werte zurückgeben. Eine Sub-Prozedur kann Argumente (Konstanten, Variablen oder Ausdrücke, die von einer aufrufenden Prozedur übergeben wurden) übernehmen. Wenn eine Sub-Prozedur keine Argumente hat, muss ihre Sub-Anweisung ein leeres Klammernpaar () enthalten.

Die folgende Sub-Prozedur verwendet zwei integrierte (oder eingebaute) VBScript-Funktionen,MsgBox und InputBox, um einen Benutzer zur Eingabe von Informationen aufzufordern. Dann zeigt sie das Ergebnis einer Berechnung an, die auf diesen Informationen basiert. Die Berechnung wird in einer mit VBScript erstellten Function-Prozedur ausgeführt. Diese wird in der Behandlung der nachfolgenden Function-Prozedur ebenfalls gezeigt.

Sub KonvertTemp()
   temp = InputBox("Geben Sie die Temperatur in Fahrenheit ein.", 1)
   MsgBox "Die Temperatur ist " & Celsius(temp) & " Grad Celsius."
End Sub

Function-Prozeduren

Eine Function-Prozedur ist eine Folge von VBScript-Anweisungen, die zwischen den Anweisungen Function und End Function eingeschlossen sind. Eine Function-Prozedur ist einer Sub-Prozedur ähnlich, kann aber auch einen Wert zurückgeben. Eine Function-Prozedur kann Argumente (Konstanten, Variablen oder Ausdrücke, die von einer aufrufenden Prozedur übergeben werden) übernehmen. Wenn eine Function-Prozedur keine Argumente hat, muss ihre Function-Anweisung ein leeres Klammernpaar enthalten. Eine Function-Prozedur gibt Werte zurück, indem ihrem Namen in einer oder mehreren Anweisung(en) der Prozedur ein Wert zugewiesen wird. Der Typ des Rückgabewertes einer Function-Prozedur ist immer ein Variant.

Die Funktion Celsius im folgenden Beispiel berechnet aus Temperaturangaben in Fahrenheit die entsprechenden Werte in Grad Celsius. Beim Aufruf der Funktion aus der Sub-Prozedur KonvertTemp wird eine Variable mit dem Argumentwert an die Funktion übergeben. Das Ergebnis der Berechnung wird an die aufrufende Prozedur zurückgegeben und in einem Meldungsfeld angezeigt.

Sub KonvertTemp()
   temp = InputBox("Geben Sie die Temperatur in Fahrenheit ein.", 1)
   MsgBox "Die Temperatur ist " & Celsius(temp) & " Grad Celsius."
End Sub

Function Celsius(GradF)
   Celsius = (GradF - 32) * 5 / 9
End Function

Übergeben von Daten an bzw. aus Prozeduren

Die Übergabe eines Datenelements an Prozeduren erfolgt über ein Argument. Argumente dienen als Platzhalter für die an die Prozedur zu übergebenden Daten. Als Bezeichner für Argumente können Sie jeden als Variablennamen gültigen Bezeichner verwenden. Wenn Sie eine Prozedur mit der Sub- oder der Function-Anweisung erstellen, müssen nach dem Namen der Prozedur Klammern eingefügt werden. Alle Argumente werden zwischen diesen Klammern angegeben und durch Kommas getrennt. In der folgenden Prozedur ist beispielsweise GradF ein Platzhalter für den Wert, der an die Funktion Celsius zur Konvertierung übergeben wird.

Function Celsius(GradF)
   Celsius = (GradF - 32) * 5 / 9
End Function

Um Daten von einer Prozedur als Rückgabe zu erhalten, müssen Sie eine Function-Prozedur definieren. Denken Sie daran, dass eine Function-Prozedur einen Wert zurückgeben kann, eine Sub-Prozedur dagegen nicht.

Verwenden von Sub- und Function-Prozeduren im Code

Um eine Function-Prozedur in Ihrem Code zu verwenden, müssen Sie diese auf der rechten Seite einer Variablenzuweisung oder in einem Ausdruck verwenden. Beispiele:

temperatur = Celsius(temp)

oder

MsgBox "Die Temperatur ist " & Celsius(temp) & " Grad Celsius."

Um eine Sub-Prozedur aus einer anderen Prozedur aufzurufen, geben Sie den Namen der Prozedur zusammen mit den erforderlichen Argumenten (durch Kommas getrennt) ein. Die Call-Anweisung ist nicht erforderlich. Wenn Sie sie jedoch verwenden, müssen Sie die Argumente in Klammern einschließen.

Das folgende Beispiel zeigt zwei Aufrufe der Prozedur MeineProz. In einem Fall wird die Call-Anweisung im Code verwendet, im anderen nicht. Beide Aufrufe haben genau dieselbe Wirkung.

Call MeineProz(erstesArg, zweitesArg)
MeineProz erstesArg, zweitesArg

Beachten Sie, dass bei Nichtverwendung der Call-Anweisung die Klammern weggelassen werden müssen.


VBScript-Codekonventionen

Codekonventionen sind Vorschläge, die dafür vorgesehen sind, Ihnen das Schreiben von Code mithilfe von Microsoft Visual Basic Scripting Edition zu erleichtern. Die Konventionen für die Programmierung umfassen unter anderem folgende Richtlinien:

  • Namenskonventionen für Objekte, Variablen und Prozeduren
  • Konventionen für Kommentare
  • Richtlinien für die Formatierung und das Einrücken von Text

Der wichtigste Grund für einheitliche Konventionen für die Programmierung ist die Standardisierung der Codestruktur und des Programmierstils für ein oder mehrere Skripten, damit der Code für Sie und andere leichter lesbar und verständlicher ist. Mit sinnvollen Konventionen für die Programmierung erhalten Sie eindeutige, präzisen und lesbaren Code, der den für andere Programmiersprachen verwendeten Konventionen entspricht und intuitiv ist.

Namenskonventionen für Konstanten

Frühere Versionen von VBScript besaßen keine Mechanismen für die Erstellung benutzerdefinierter Konstanten. Konstanten wurden, wenn notwendig, wie Variablen implementiert und von anderen Variablen dadurch unterschieden, dass nur Großbuchstaben verwendet wurden. Mehrere Wörter wurden durch den Unterstrich (_) getrennt. Beispiele:

BENUTZER_HIER_SPEICHERN
NEUE_ZEILE

Obwohl dies auch eine akzeptable Möglichkeit zum Benennen von Konstanten ist, sollten Sie eventuell ein anderes Namensschema verwenden, da Sie ja jetzt mit der Const-Anweisung echte Konstanten anlegen können. Diese Konvention verwendet ein Format mit gemischter Groß- und Kleinschreibung, in dem Konstanten das Präfix "con" vorangestellt wird. Beispiele:

conIhreEigeneKonstante

Namenskonventionen für Variablen

Um die Lesbarkeit und die Konsistenz zu verbessern, verwenden Sie in VBScript die in der folgenden Tabelle aufgeführten Präfixe zusammen mit aussagekräftigen Variablennamen.

Untertyp | Präfix | Beispiel
Boolean | bln | blnGefunden
Byte | byt | bytRasterDaten
Date (Time) | dtm | dtmStart
Double | dbl | dblToleranz
Error | err | errBestellNr
Integer | int | intAnzahl
Long | lng | lngEntfernung
Object | obj | objAktuell
Single | sng | sngDurchschnitt
String | str | strVorname

Gültigkeitsbereich von Variablen

Variablen sollten immer mit dem kleinstmöglichen Gültigkeitsbereich definiert werden. VBScript-Variablen können einen der folgenden Gültigkeitsbereiche haben.

Gültigkeitsbereich | Variablendeklaration in | Sichtbarkeit
Prozedurebene | Ereignis-, Function- oder Sub-Prozedur | Sichtbar in der Prozedur, in der sie deklariert wird.
Skriptebene | HEAD-Abschnitt einer HTML-Seite, außerhalb jeder Prozedur | Sichtbar in jeder Prozedur des Skriptes

Präfixe für den Gültigkeitsbereich von Variablen

Mit zunehmender Skriptgröße wird es immer wichtiger, die Gültigkeitsbereiche der Variablen schnell unterscheiden zu können. Dies wird durch einen Gültigkeitsbereichs-Präfix aus einem Buchstaben vor dem Typ-Präfix erreicht, ohne die Variablennamen übermäßig zu verlängern.

Gültigkeitsbereich | Präfix | Beispiel
Prozedurebene | kein | dblGeschwindigkeit
Skriptebene | s | sblnBerechnungInArbeit

Aussagekräftige Variablen- und Prozedurnamen

In einem Variablen- oder Prozedurnamen sollte Groß- und Kleinschreibung verwendet werden. Der Name sollte so ausführlich sein wie nötig, um den Zweck der Variablen zu beschreiben. Darüber hinaus sollten Prozedurnamen mit einem Verb beginnen, wie z. B. InitialisiereFeldName oder SchliesseDialogfeld.

Für häufig verwendete oder lange Ausdrücke sind Standardabkürzungen zu empfehlen, um die Namen kurz zu halten. Im Allgemeinen sind Variablennamen mit mehr als 32 Zeichen schwer lesbar. Stellen Sie sicher, dass die verwendeten Abkürzungen im gesamten Skript einheitlich sind. Der grundlose Wechsel zwischen Zaehler und Zhlr innerhalb eines oder mehrerer zusammenhängender Skripten kann Probleme bereiten.

Namenskonventionen für Objekte

Die folgende Tabelle führt die empfohlenen Konventionen für die verschiedenen Objekte auf, die beim Programmieren in VBScript verwendet werden.

Objekttyp | Präfix | Beispiel
3D-Grundfläche (3D Panel) | pnl | pnlGruppe
Animierte Schaltfläche | ani | aniMailBox
Befehlsschaltfläche (command button) | cmd | cmdBeenden
Bezeichnungsfeld (label) | lbl | lblHilfeMeldung
Bildlauffeld (slider) | sld | sldSkala
Drehfeld (spin) | spn | spnSeiten
Grafik (image) | img | imgSymbol
Horizontale Bildlaufleiste (horizontal scroll bar) | hsb | hsbLautstaerke
Kombinationsfeld (combo box), Dropdown-Listenfeld (drop-down list box) | cbo | cboDeutsch
Kontrollkästchen (check box) | chk | chkNurLesen
Linie (line) | lin | linVertikal
Listenfeld (list box) | lst | lstVersicherungsnummern
Rahmen (frame) | fra | fraSprache
Standarddialogfeld (common dialog) | dlg | dlgDateiOeffnen
Textfeld (text box) | txt | txtNachname
Vertikale Bildlaufleiste (vertical scroll bar) | vsb | vsbRate

Konventionen für Codekommentare

Jede Prozedur sollte mit einem kurzen Kommentar beginnen, der den Zweck der Prozedur beschreibt. Diese Beschreibung sollte nicht auf die Implementierungsdetails (wie die Operationen durchgeführt werden) eingehen, weil sich diese im Laufe der Zeit ändern können, was zu unnötigen Wartungsarbeiten bei den Kommentaren oder, noch schlimmer, zu falschen Kommentaren führen kann. Der Code selbst und ggf. nötige Kommentare im Code beschreiben die Implementierung.

Die an eine Prozedur übergebenen Argumente sollten beschrieben werden, wenn ihr Zweck nicht offensichtlich ist und wenn die Prozedur die Argumente in einem bestimmten Wertebereich erwartet. Rückgabewerte von Funktionen und andere Variablen, die von der Prozedur geändert werden, vor allem über Argumente, die als Referenz übergeben werden, sollten ebenfalls am Anfang jeder Prozedur beschrieben werden.

Die Kommentare im Prozedurkopf sollten folgende Abschnittsüberschriften enthalten. Beispiele finden Sie im nachfolgenden Abschnitt "Codeformatierung".

Abschnittsüberschrift | Kommentarinhalte
Zweck | Was die Prozedur tut (nicht, wie sie es tut).
Annahmen | Liste der Auswirkungen dieser Prozedur auf externe Variablen, Steuerelemente oder andere Elemente.
Auswirkungen | Liste der Auswirkungen dieser Prozedur auf externe Variablen, Steuerelemente oder andere Elemente.
Eingehende Werte | Erläuterung jedes Arguments, das nicht offensichtlich ist. Jedes Argument sollte in einer separaten Zeile mit Kommentaren im Code beschrieben werden.
Rückgabewerte | Erklärung des zurückgegebenen Wertes.

Berücksichtigen Sie folgende Punkte:

  • Die Deklaration jeder wichtigen Variablen sollte einen Kommentar im Code enthalten, der die Verwendung der deklarierten Variablen beschreibt.
  • Variablen, Steuerelemente und Prozeduren sollten klar benannt werden, um sicherzustellen, dass Kommentare im Code nur noch für komplexe Implementierungsdetails nötig sind.
  • Sie sollten am Anfang Ihres Skriptes eine Übersicht einfügen, die das Skript beschreibt und die Objekte, Prozeduren, Algorithmen, Dialogfelder und andere Systemabhängigkeiten auflistet. Manchmal kann ein Stück Pseudocode helfen, einen Algorithmus zu beschreiben.

Codeformatierung

Sie sollten mit dem Platz auf dem Bildschirm möglichst sparsam umgehen und trotzdem den Code so formatieren, dass die logische Struktur und Schachtelung deutlich wird. Hier sind einige Vorschläge:

  • Rücken Sie geschachtelte Blöcke um vier Leerzeichen ein.
  • Rücken Sie den Übersichtskommentar einer Prozedur um ein Leerzeichen ein.
  • Rücken Sie die Anweisungen auf höchster Ebene, die auf den Übersichtskommentar folgen, um vier Leerzeichen ein. Jeder geschachtelte Block sollte jeweils um weitere vier Leerzeichen eingerückt werden.

Der folgende Code ist gemäß den VBScript-Codekonventionen geschrieben.

'********************************************************************
' Zweck: Sucht das erste Vorkommen des angegebenen
'        Benutzers im Array BenutzerListe.
' Eingaben: strBenutzerListe(): Zu durchsuchende Benutzerliste.
'           strZielBenutzer: Name des zu suchenden Benutzers.
' Rückgabewerte: Index des ersten Vorkommens von
'                strZielBenutzer im Array strBenutzerListe.
'                Wenn der gesuchte Benutzer nicht gefunden wird: -1.
'********************************************************************
Function intSucheBenutzer(strBenutzerListe(), strZielBenutzer)
   Dim i   ' Schleifenzähler.
   Dim blnGefunden   ' "Ziel gefunden"-Kennung
   intSucheBenutzer = -1
   i = 0   ' Schleifenzähler initialisieren
   Do While i <= Ubound(strBenutzerListe) and Not blnGefunden
      If strBenutzerListe(i) = strZielBenutzer Then
         blnGefunden = True   ' Kennung auf True setzen
         intSucheBenutzer = i   ' Rückgabewert für Schleifenzähler setzen
      End If
      i = i + 1   ' Schleifenzähler erhöhen
   Loop
End Function


VBScript und Formulare

Einfache Gültigkeitsprüfung

Mit Visual Basic Scripting Edition können Sie einen großen Teil der normalerweise auf einem Server anfallenden Formularverarbeitung durchführen. Ihnen stehen sogar Funktionen zur Verfügung, die auf dem Server überhaupt nicht verfügbar sind.

Es folgt ein Beispiel für einfache Gültigkeitsprüfung auf Clientseite. Der HTML-Code realisiert ein Textfeld und eine Schaltfläche. Wenn Sie die mit dem folgenden Code erstellte Seite mit Microsoft® Internet Explorer anzeigen, sehen Sie ein kleines Textfeld mit einer Schaltfläche daneben.

<HTML>
<HEAD><TITLE>Einfache Gültigkeitsüberprüfung</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Validate
  Dim DasFormular
  Set DasFormular = Document.Formulare("GueltFormular")
  If IsNumeric(DasFormular.Text1.Value) Then    If DasFormular.Text1.Value < 1 Or DasFormular.Text1.Value > 10 Then
      MsgBox "Geben Sie bitte eine Zahl zwischen 1 und 10 ein."
    Else
      MsgBox "Vielen Dank."
    End If
  Else
    MsgBox "Geben Sie bitte einen numerischen Wert ein."
  End If
End Sub-->
</SCRIPT>
</HEAD>
<BODY>
<H3>Einfache Gültigkeitsüberprüfung</H3><HR>
<form id="GueltFormular" action="nothing.asp" onsubmit="Validate(); return false;" language="jscript">
Geben Sie einen Wert zwischen 1 und 10 ein:
<input name="Text1" TYPE="TEXT" SIZE="2">
<input name="Übermitteln" TYPE="Übermitteln" VALUE="Übermitteln">
</form>
</BODY>
</HTML>

Der einzige Unterschied zwischen diesem Beispiel und den Beispielen unter Eine einfache VBScript-Seite besteht darin, dass die Value-Eigenschaft des Textfeldes verwendet wird, um den eingegebenen Wert zu überprüfen. Um jedoch den Wert der Value-Eigenschaft zu erhalten, muss der Code den Verweis auf den Namen des Textfeldes explizit angeben.

Sie können immer den vollständigen Verweis, Document.GueltFormular.Text1, verwenden. Wenn Sie jedoch mehrere Verweise auf Formular-Steuerelemente haben, sollten Sie besser das hier verwendete Verfahren einsetzen. Zunächst deklarieren Sie eine Variable. Dann verwenden Sie die Set-Anweisung, um der Variablen DasFormular das Formular zuzuweisen. Eine reguläre Zuweisung, wie z. B. Dim, würde hier nicht funktionieren: Sie müssen Set verwenden, um den Verweis auf ein Objekt zu erhalten.

Verwenden numerischer Werte

Beachten Sie, dass in diesem Beispiel der Wert direkt mit einer Zahl geprüft wird. Mithilfe der IsNumeric-Funktion wird sichergestellt, dass die Zeichenfolge im Textfeld eine Zahl ist. Obwohl Zeichenfolgen und Zahlen automatisch von VBScript konvertiert werden, sollte bei einer guten Programmierung bei einem von einem Anwender eingegebenen Wert immer der Untertyp ermittelt und nötigenfalls Konvertierungsfunktionen verwendet werden. Vor dem Addieren von Textfeld-Werten müssen die Werte explizit konvertiert werden, da der Additionsoperator (+) sowohl eine Addition als auch eine Zeichenfolgenverkettung darstellen kann. Wenn z. B. Text1 eine "1" enthält und Text2 eine "2", sehen Sie folgende Ergebnisse:

A = Text1.Value + Text2.Value   ' A ist "12"
A = CDbl(Text1.Value) + Text2.Value   ' A ist 3

Gültigkeitsüberprüfung für Daten und Rückgabe von Daten an den Server

Das Beispiel für eine einfache Gültigkeitsprüfung enthält ein normales Schaltflächensteuerelement. Wenn im Beispiel ein Submit-Steuerelement verwenden würde, könnte es die Daten niemals auswerten, da alle Daten direkt an den Server gesendet würden. Wenn Sie das Submit-Steuerelement nicht einsetzen, können Sie die Daten prüfen, aber sie werden nicht an den Server übergeben. Dazu ist eine zusätzliche Codezeile notwendig:

<SCRIPT LANGUAGE="VBScript">
<!--
Sub Schaltfl1_OnClick
 Dim DasFormular
 Set DasFormular = Document.GueltFormular
 If IsNumeric(DasFormular.Text1.Value) Then
    If DasFormular.Text1.Value < 1 Or DasFormular.Text1.Value > 10 Then
      MsgBox "Geben Sie bitte eine Zahl zwischen 1 und 10 ein."
    Else
      MsgBox "Vielen Dank."
      DasFormular.Submit   ' Daten sind korrekt und werden an den Server übergeben.
    End If
 Else
    MsgBox "Geben Sie bitte einen numerischen Wert ein."
 End If
End Sub
-->
</SCRIPT>

Sind die Daten korrekt, ruft der Code zum Übertragen von Daten zum Server die Submit-Methode auf dem Formularobjekt auf. Anschließend werden die Daten wie gewohnt vom Server behandelt, mit der Ausnahme, dass die Daten korrekt sind, bevor sie übertragen werden. Weitere Informationen zur Submit-Methode sowie zu anderen Methoden finden Sie in der Dokumentation des Internet Explorer Scripting-Objektmodells in der Website von Microsoft® (http://www.microsoft.com/germany).

Bis jetzt haben Sie nur die Standard HTML-<FORM>-Objekte kennen gelernt. Mit Internet Explorer können Sie die volle Leistungsfähigkeit der ActiveX®-Steuerelemente (früher OLE-Steuerelemente genannt) und der Java-Objekte ausnutzen.


VBScript in Internet Explorer

Eine einfache VBScript-Seite

VBScript und Formulare

Verwenden von VBScript mit Objekten


Verwenden von VBScript mit Objekten

Verwenden von Objekten

Es ist nicht relevant, ob Sie ein ActiveX®-Steuerelement (in der Vergangenheit als OLE-Steuerelement bezeichnet) oder ein Java-Objekt verwenden, da diese von Microsoft Visual Basic Scripting Edition und Microsoft® Internet Explorer auf die gleiche Weise behandelt werden. Wenn Sie Internet Explorer einsetzen und das Label-Steuerelement installiert ist, können Sie die mit dem folgenden Code erstellte Seite anzeigen.

Sie fügen ein Objekt mithilfe der <OBJECT>-Tags ein und stellen dessen anfängliche Eigenschaften mithilfe von <PARAM>-Tags ein. Wenn Sie Visual Basic-Programmierer sind, werden Sie bemerken, dass die Verwendung der <PARAM>-Tags genau der Anfangseinstellung der Eigenschaften eines Steuerelements in einem Formular entspricht. Zum Beispiel fügt die folgende Gruppe von <OBJECT>- und <PARAM>-Tags einer Seite das ActiveX-Label-Steuerelement hinzu:

<OBJECT
   classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
   id=lblActiveLbl
   width=250
   height=250
   align=left
   hspace=20
   vspace=0
>
<PARAM NAME="Angle" VALUE="90">
<PARAM NAME="Alignment" VALUE="4">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="Caption" VALUE="Ein Bezeichner">
<PARAM NAME="FontName" VALUE="Verdana, Arial, Helvetica">
<PARAM NAME="FontSize" VALUE="20">
<PARAM NAME="FontBold" VALUE="1">
<PARAM NAME="FrColor" VALUE="0">
</OBJECT>

Genau wie bei anderen Formular-Steuerelementen können Sie Eigenschaften lesen und ändern sowie Methoden aufrufen. Zum Beispiel enthält der folgende Code <FORM>-Steuerelemente, die Sie zur Anpassung von zwei Eigenschaften des Label-Steuerelements verwenden können:

<FORM NAME="Steuerelemente">
<INPUT TYPE="TEXT" NAME="NeuerText" SIZE=25>
<INPUT TYPE="BUTTON" NAME="cmdAendern" VALUE="Bezeichnung ändern">
<INPUT TYPE="BUTTON" NAME="cmdDrehen" VALUE="Bezeichnung drehen">
</FORM>

In dem so definierten Formular ändert eine Ereignisprozedur für die Schaltfläche cmdAendern den Text des Bezeichners:

<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdAendern_OnClick
   Dim DasFormular
   Set DasFormular = Document.Steuerelemente
   lblActiveLbl.Caption = DasFormular.NeuerText.Value
End Sub
-->
</SCRIPT>

Der Code verweist auf Steuerelemente und Werte im Formular genau wie im Beispiel Einfache Gültigkeitsprüfung.

Für die Verwendung mit Internet Explorer stehen zahlreiche ActiveX-Steuerelemente zur Verfügung. Vollständige Informationen zu Eigenschaften, Methoden und Ereignissen sowie CLSID (class identifiers, Klassenbezeichner) für diese Steuerelemente finden Sie in der Website von Microsoft® (http://www.microsoft.com/germany). Weitere Informationen zu <OBJECT>-Tags finden Sie auf der Seite Internet Explorer 4.0 Author's Guide and HTML Reference.

Anmerkung Frühere Versionen von Internet Explorer benötigten um classid-Attribute Klammern ({}) und entsprachen nicht den W3C-Spezifikationen. Beim Verwenden von Klammern in der aktuellen Version wird eine Fehlermeldung angezeigt, dass diese Seite eine veraltete Version des <OBJECT>-Tags verwendet.


Einführung in reguläre Ausdrücke

Mit Hilfe der Informationen auf diesen Seiten soll eine allgemeine Einführung in reguläre Ausdrücke gegeben werden.

Obwohl jedes Thema weitgehend eigenständig konzipiert wurde, setzen viele der Informationen in diesen Themen zuvor eingeführte Features oder Konzepte voraus. Daher wird empfohlen, dass Sie diese Themen der Reihe nach lesen, um ein optimales Verständnis für das Material als Ganzes zu erlangen.

Die Einführung in reguläre Ausdrücke besteht aus den folgenden Einzelthemen:

Reguläre Ausdrücke

Die Anfänge

Verwendungsmöglichkeiten regulärer Ausdrücke

Syntax regulärer Ausdrücke

Erstellen eines regulären Ausdrucks

Rangfolge

Normale Zeichen

Sonderzeichen

Nicht druckbare Zeichen

Zeichenvergleich

Quantifizierer

Anker

Auswahl und Gruppierung

Rückverweise


Early Beginnings

Visual Basic Scripting Edition

Die Anfänge

Der Ursprung regulärer Ausdrücke liegt in der frühen Forschung über die Funktionsweise des menschlichen Nervensystems. Warren McCulloch und Walter Pitts, zwei Neurophysiologen, entwickelten eine mathematische Methode zum Beschreiben dieser Nervennetzwerke.

Im Jahre 1956 baute ein amerikanischer Mathematiker namens Stephen Kleene auf dem früheren Werk von McCulloch und Pitts auf und veröffentlichte einen Aufsatz mit dem Titel Representation of Events in Nerve Nets (dt.: "Darstellung von Ereignissen in Nervennetzen"). In diesem Aufsatz wurde das Konzept der regulären Ausdrücke eingeführt. Reguläre Ausdrücke waren Ausdrücke zur Beschreibung dessen, was er "die Algebra regulärer Mengen" nannte - daher der Begriff "regulärer Ausdruck".

Später fand sein Werk Eingang in einige frühe Versuche mit Computersuchalgorithmen von Ken Thompson, dem Haupterfinder von Unix. Die erste praktische Anwendung regulärer Ausdrücke erfolgte im Unix-Editor qed.

Und der Rest ist sozusagen Geschichte. Seither sind reguläre Ausdrücke stets ein wichtiger Bestandteil von textbasierten Editoren und Suchtools gewesen.


Verwendungsmöglichkeiten regulärer Ausdrücke

Bei einem normalen Suchen-und-Ersetzen-Vorgang müssen Sie den exakten Text angeben, nach dem Sie suchen möchten. Diese Technik mag für einfache Suchen-und-Ersetzen-Aufgaben in statischem Text ausreichend sein, aber sie ist nicht flexibel genug und macht die Suche in dynamischem Text schwierig, wenn nicht sogar unmöglich.

Mit regulären Ausdrücken können Sie Folgendes durchführen:

  • Testen auf ein Muster innerhalb einer Zeichenfolge. Sie können beispielsweise eine Eingabezeichenfolge testen, um festzustellen, ob ein Telefonnummernmuster oder das Muster einer Kreditkartennummer in der Zeichenfolge auftritt. Dies nennt man "Gültigkeitsprüfung".
  • Ersetzen von Text. Mit einem regulären Ausdruck können Sie einen bestimmten Text in einem Dokument identifizieren und ihn entweder vollständig entfernen oder durch einen anderen Text ersetzen.
  • Extrahieren einer Unterzeichenfolge aus einer Zeichenfolge auf der Basis eines Mustervergleichs. Sie können nach einem bestimmten Text in einem Dokument oder Eingabefeld suchen.

Wenn Sie beispielsweise eine ganze Website durchsuchen möchten, um veraltetes Material zu entfernen und einige HTML-Formatierungstags zu ersetzen, können Sie alle Dateien mit Hilfe eines regulären Ausdrucks darauf testen, ob das gesuchte Material oder die gesuchten HTML-Formatierungstags in der Datei vorhanden sind. Auf diese Weise können Sie die betroffenen Dateien auf nur diejenigen reduzieren, die das zu entfernende oder zu ändernde Material enthalten. Anschließend können Sie mit Hilfe eines regulären Ausdrucks das veraltete Material entfernen und zuletzt ebenfalls mit Hilfe regulärer Ausdrücke die zu ersetzenden Tags suchen und ersetzen.

Ein weiteres Beispiel für die Nützlichkeit regulärer Ausdrücke findet sich in einer Sprache, die nicht gerade für ihre Fähigkeiten der Zeichenfolgenbehandlung bekannt ist. VBScript, eine Untermenge von Visual Basic, verfügt über zahlreiche Funktionen zur Zeichenfolgenbehandlung. Bei JScript, wie bei C, ist dies nicht der Fall. Reguläre Ausdrücke stellen eine entscheidende Verbesserung bei der Zeichenfolgenbehandlung in JScript dar. Reguläre Ausdrücke können jedoch auch in VBScript eine größere Effizienz bewirken, indem sie Ihnen das Durchführen mehrerer Zeichenfolgenbearbeitungen in einem einzigen Ausdruck gestatten.


Syntax regulärer Ausdrücke

Ein regulärer Ausdruck ist ein Textmuster, das aus normalen Zeichen (beispielsweise den Buchstaben a bis z) und Sonderzeichen, so genannten Metazeichen, besteht. Das Muster beschreibt eine oder mehrere Zeichenfolgen, zu denen beim Durchsuchen eines Textkörpers eine Entsprechung gefunden werden soll. Der reguläre Ausdruck dient als Vorlage für die Suche nach einer Entsprechung eines Zeichenmusters in der durchsuchten Zeichenfolge.

Im Folgenden finden Sie einige Beispiele für reguläre Ausdrücke:

JScript | VBScript | Entsprechung
/^\[ \t]*$/ | "^\[ \t]*$" | Entspricht einer Leerzeile.
/\d{2}-\d{5}/ | "\d{2}-\d{5}" | Überprüft die Gültigkeit einer ID-Nummer, die aus 2 Ziffern, einem Bindestrich und 5 weiteren Ziffern besteht.
/<(.*)>.*<\/\1>/ | "<(.*)>.*<\/\1>" | Entspricht einem HTML-Tag.

Die folgende Tabelle enthält eine vollständige Liste der Metazeichen und ihres Verhaltens im Kontext regulärer Ausdrücke:

Zeichen | Beschreibung
\ | Markiert das nächste Zeichen entweder als Sonderzeichen, als Literal, als Rückverweis oder als oktalen Escapewert. Beispielsweise entspricht 'n' dem Zeichen "n". '\n' entspricht einem Zeilenumbruchzeichen. Die Sequenz '\\' entspricht "\", und '\(' entspricht "(".
^ | Entspricht der Position am Anfang der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht ^ auch der Position nach "\n" oder "\r".
$ | Entspricht der Position am Ende der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r".
* | Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Beispielsweise entspricht 'Zo*' sowohl "Z" als auch "Zoo". * ist äquivalent zu '{0,}'.
+ | Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Beispielsweise entspricht 'Zo+' sowohl "Zo" als auch "Zoo", aber nicht "Z". + ist äquivalent zu '{1,}'.
? | Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal. Beispielsweise entspricht 'habe(n)?' dem "habe" in "habe" oder "haben". ? ist äquivalent zu '{0,1}'.
{n} | n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht 'o{2}' nicht dem "o" in "Robert", jedoch den beiden "o" in "Boot".
{n,} | n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Beispielsweise entspricht 'o{2,}' nicht dem "o" in "Robert", aber allen "o" in "Boooot". 'o{1,}' ist äquivalent zu 'o+'. 'o{0,}' ist äquivalent zu 'o*'.
{n,m} | m und n sind nicht negative Ganzzahlen, wobei n <= m. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht 'o{1,3}' den ersten drei "o" in "Booooot". 'o{0,1}' ist äquivalent zu 'o?'. Beachten Sie, dass zwischen dem Komma und den Zahlen kein Leerzeichen stehen darf.
? | Wenn dieses Zeichen unmittelbar auf einen der anderen Quantifizierer folgt (*, +, ?, {n}, {n,}, {n,m}), so ist die Musterentsprechung nicht umfassend, also von kürzestmöglicher Übereinstimmung. Ein nicht umfassendes Muster entspricht möglichst wenig der durchsuchten Zeichenfolge, während das umfassende Standardmuster möglichst viel der durchsuchten Zeichenfolge entspricht. In der Zeichenfolge "oooo" entspricht beispielsweise 'o+?' einem einzigen "o", während 'o+' allen "o" entspricht.
. | Entspricht allen einzelnen Zeichen außer "\n". Um nach einer Entsprechung für alle einzelnen Zeichen einschließlich des "\n" zu suchen, verwenden Sie beispielsweise das Muster '[.\n]'.
(Muster) | Entspricht Muster und speichert die Entsprechung. Die gespeicherte Entsprechung kann aus der resultierenden Matches-Auflistung unter Verwendung der SubMatches-Auflistung in VBScript oder der $0…$9-Eigenschaften in JScript abgerufen werden. Um nach einer Entsprechung für Klammerzeichen ( ) zu suchen, verwenden Sie '\(' oder '\)'.
(?:Muster) | Entspricht Muster, speichert die Entsprechung jedoch nicht, d. h., es handelt sich um eine nicht speichernde Entsprechung, die nicht für eine mögliche spätere Verwendung gespeichert wird. Dies ist von Nutzen, wenn Teile eines Musters mit dem "oder"-Zeichen (|) kombiniert werden sollen. So ist beispielsweise 'telefonier(?:t|en)' ein kürzerer Ausdruck als 'telefoniert|telefonieren'.
(?=Muster) | Die positive Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?=95|98|NT|2000)' dem Wort "Windows" in "Windows 2000", jedoch nicht dem Wort "Windows" in "Windows 3.1". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
(?!Muster) | Die komplementäre Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster nicht entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?!95|98|NT|2000)' dem Wort "Windows" in "Windows 3.1", jedoch nicht dem Wort "Windows" in "Windows 2000". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
x|y | Entspricht entweder x oder y. Beispielsweise entspricht 'sch|blau' entweder "sch" oder "blau". '(sch|b)lau' entspricht "schlau" oder "blau".
[xyz] | Eine Menge von Zeichen. Entspricht allen enthaltenen Zeichen. Beispielsweise entspricht '[abc]' dem "a" in "fallen".
[^xyz] | Eine Komplementmenge von Zeichen. Entspricht allen nicht enthaltenen Zeichen. Beispielsweise entspricht '[^abc]' dem "f" in "fallen".
[a-z] | Ein Zeichenbereich. Entspricht allen Zeichen im angegebenen Bereich. Beispielsweise entspricht '[a-z]' allen Kleinbuchstaben im Bereich von "a" bis "z".
[^a-z] | Ein Komplementbereich von Zeichen. Entspricht allen Zeichen, die im angegebenen Bereich nicht enthalten sind. Beispielsweise entspricht '[^a-z]' allen Zeichen, die nicht im Bereich von "a" bis "z" enthalten sind.
\b | Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen. Beispielsweise entspricht 'er\b' dem "er" in "neuer", jedoch nicht dem "er" in "Verb".
\B | Entspricht einer Nichtwortgrenze. 'er\B' entspricht dem "er" in "Verb", jedoch nicht dem "er" in "neuer".
\cx | Entspricht dem Steuerzeichen, das durch x angegeben wird. Beispielsweise entspricht '\cM' einem STRG-M oder Wagenrücklauf-Zeichen. Der Wert von x muss im Bereich von A-Z oder a-z liegen. Ist dies nicht der Fall, wird c als "c"-Zeichenliteral interpretiert.
\d | Entspricht einer Ziffer. Äquivalent zu '[0-9]'.
\D | Entspricht einer Nichtziffer. Äquivalent zu '[^0-9]'.
\f | Entspricht einem Seitenvorschubzeichen. Äquivalent zu '\x0c' und '\cL'.
\n | Entspricht einem Zeilenumbruchzeichen. Äquivalent zu '\x0a' und '\cJ'.
\r | Entspricht einem Wagenrücklauf-Zeichen. Äquivalent zu '\x0d' und '\cM'.
\s | Entspricht beliebigen Leerräumen wie Leerzeichen, Tabstopp, Seitenvorschub usw. Äquivalent zu '[ \f\n\r\t\v]'.
\S | Entspricht beliebigen Nichtleerräumen. Äquivalent zu '[^ \f\n\r\t\v]'.
\t | Entspricht einem Tabstoppzeichen. Äquivalent zu '\x09' und '\cI'.
\v | Entspricht einem vertikalen Tabstoppzeichen. Äquivalent zu '\x0b' und '\cK'.
\w | Entspricht allen Wortzeichen einschließlich Unterstrich. Äquivalent zu '[A-Za-z0-9_]'.
\W | Entspricht allen Nichtwortzeichen. Äquivalent zu '[^A-Za-z0-9_]'.
\xn | Entspricht n, wobei n ein hexadezimaler Escapewert ist. Hexadezimale Escapewerte müssen genau zwei Stellen aufweisen. '\x41' entspricht beispielsweise "A". '\x041' ist äquivalent zu "\x04" & "1". Ermöglicht die Verwendung von ASCII-Codes in regulären Ausdrücken.
\num | Entspricht num, wobei num eine positive Ganzzahl ist. Ein Rückverweis auf gespeicherte Entsprechungen. Beispielsweise entspricht '(.)\1' zwei aufeinander folgenden identischen Zeichen.
\n | Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \n mindestens n gespeicherte Unterausdrücke vorausgehen, handelt es sich bei n um einen Rückverweis. Anderenfalls ist n ein oktaler Escapewert, wenn n eine Oktalziffer (0-7) ist.
\nm | Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \nm mindestens nm gespeicherte Unterausdrücke vorausgehen, handelt es sich bei nm um einen Rückverweis. Wenn \nm mindestens n gespeicherte Ausdrücke vorausgehen, ist n ein Rückverweis, dem das Literal m folgt. Wenn keine der vorhergehenden Bedingungen zutrifft, entspricht \nm dem oktalen Escapewert nm, wenn n und m Oktalziffern (0-7) sind.
\nml | Entspricht dem oktalen Escapewert nml, wenn n eine Oktalziffer (0-3) ist und m und l Oktalziffern (0-7) sind.
\un | Entspricht n, wobei n ein Unicodezeichen ist, das mit vier Hexadezimalziffern ausgedrückt wird. Beispielsweise entspricht '\u00A9' dem Copyrightsymbol (©).


Sonderzeichen (Regular Expressions)

JScript und VBScript: Reguläre Ausdrücke

Sonderzeichen

Es gibt eine Reihe von Metazeichen, die eine besondere Verfahrensweise erfordern, wenn nach einer Entsprechung für sie gesucht werden soll. Um nach einer Entsprechung für diese Sonderzeichen zu suchen, müssen Sie diese Zeichen zuerst mit einem Escapezeichen versehen, d. h., ihnen einen umgekehrten Schrägstrich (\) voranstellen. Die folgende Tabelle zeigt diese Sonderzeichen und ihre Bedeutungen:

Sonderzeichen | Kommentar
$ | Entspricht der Position am Ende einer Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r". Um nach einer Entsprechung für das Dollarzeichen ($) selbst zu suchen, verwenden Sie '\$'.
( ) | Markiert Anfang und Ende eines Unterausdrucks. Unterausdrücke können für eine spätere Verwendung gespeichert werden. Um nach einer Entsprechung für diese Zeichen zu suchen, verwenden Sie '\(' und '\)'.
* | Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Um nach einer Entsprechung für das Sternchen zu suchen, verwenden Sie '\*'.
+ | Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Um nach einer Entsprechung für das Pluszeichen zu suchen, verwenden Sie '\+'.
. | Entspricht allen einzelnen Zeichen außer dem Zeilenumbruchzeichen "\n". Um nach einer Entsprechung für den Punkt zu suchen, verwenden Sie '\.'.
[ | Markiert den Anfang eines Ausdrucks mit eckigen Klammern. Um nach einer Entsprechung für die eckige Klammer rechts zu suchen, verwenden Sie '\['.
? | Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal bzw. gibt einen nicht umfassenden Quantifizierer an. Um nach einer Entsprechung für das Fragezeichen zu suchen, verwenden Sie '\?'.
\ | Markiert das nächste Zeichen entweder als Sonderzeichen, als Literal, als Rückverweis oder als oktalen Escapewert. Beispielsweise entspricht 'n' dem Zeichen "n". '\n' entspricht einem Zeilenumbruchzeichen. Die Sequenz '\\' entspricht "\", und '\(' entspricht "(".
^ | Entspricht der Position am Anfang einer Eingabezeichenfolge, außer bei Verwendung in einem Ausdruck mit eckigen Klammern, wo es die Menge von Zeichen negiert. Um nach einer Entsprechung für das Zirkumflexzeichen (^) selbst zu suchen, verwenden Sie '\^'.
{ | Markiert den Anfang eines Quantifiziererausdrucks. Um nach einer Entsprechung für die geschweifte Klammer links zu suchen, verwenden Sie '\{'.
| | Gibt eine Auswahl zwischen zwei Elementen an. Um nach einer Entsprechung für den senkrechten Strich zu suchen, verwenden Sie '\|'.


Nicht druckbare Zeichen

Es gibt eine Reihe nützlicher nicht druckbarer Zeichen, die gelegentlich verwendet werden müssen. Die folgende Tabelle zeigt die Escapesequenzen, die zur Darstellung dieser nicht druckbaren Zeichen verwendet werden:

Zeichen | Bedeutung
\cx | Entspricht dem Steuerzeichen, das durch x angegeben wird. Beispielsweise entspricht '\cM' einem STRG-M oder Wagenrücklauf-Zeichen. Der Wert von x muss im Bereich von A-Z oder a-z liegen. Ist dies nicht der Fall, wird c als "c"-Zeichenliteral interpretiert.
\f | Entspricht einem Seitenvorschubzeichen. Äquivalent zu '\x0c' und '\cL'.
\n | Entspricht einem Zeilenumbruchzeichen. Äquivalent zu '\x0a' und '\cJ'.
\r | Entspricht einem Wagenrücklauf-Zeichen. Äquivalent zu '\x0d' und '\cM'.
\s | Entspricht beliebigen Leerräumen wie Leerzeichen, Tabstopp, Seitenvorschub usw. Äquivalent zu '[ \f\n\r\t\v]'.
\S | Entspricht beliebigen Nichtleerräumen. Äquivalent zu '[^ \f\n\r\t\v]'.
\t | Entspricht einem Tabstoppzeichen. Äquivalent zu '\x09' und '\cI'.
\v | Entspricht einem vertikalen Tabstoppzeichen. Äquivalent zu '\x0b' und '\cK'.


Zeichenvergleich

Der Punkt (.) entspricht einem beliebigen einzelnen druckbaren oder nicht druckbaren Zeichen in einer Zeichenfolge, außer einem Zeilenumbruchzeichen (\n). Der folgende reguläre Ausdruck in JScript entspricht "aac", "abc", "acc", "adc" usw. sowie "a1c", "a2c", "a-c" und "a#c":

/a.c/

Der entsprechende reguläre Ausdruck in VBScript lautet:

"a.c"

Wenn Sie eine Entsprechung für eine Zeichenfolge suchen möchten, die einen Dateinamen enthält und bei der ein Punkt (.) in der Eingabezeichenfolge enthalten ist, müssen Sie dem Punkt im regulären Ausdruck einen umgekehrten Schrägstrich (\) voranstellen. Zur Veranschaulichung: Der folgende reguläre Ausdruck in JScript entspricht "Dateiname.Erw":

/Dateiname\.Erw/

In VBScript wird der entsprechende Ausdruck wie folgt angezeigt:

"Dateiname\.Erw"

Diese Ausdrücke sind nach wie vor recht beschränkt. Mit ihnen können Sie nur nach einer Entsprechung eines beliebigen einzelnen Zeichens suchen. Oftmals ist es jedoch von Nutzen, nach Entsprechungen für angegebene Zeichen aus einer Liste zu suchen. Wenn Sie beispielsweise einen Eingabetext haben, der numerisch ausgedrückte Kapitelüberschriften (Kapitel 1, Kapitel 2 usw.) enthält, möchten Sie möglicherweise nach diesen Kapitelüberschriften suchen.

Ausdrücke mit eckigen Klammern

Sie können eine Liste von Zeichenentsprechungen erstellen, indem Sie ein oder mehrere einzelne Zeichen in eckige Klammern ([ und ]) platzieren. Wenn Zeichen in eckige Klammern eingeschlossen werden, nennt man diese Liste einen Ausdruck mit eckigen Klammern. Innerhalb von eckigen Klammern (wie an anderer Stelle auch) stellen normale Zeichen sich selbst dar, d. h., sie entsprechen einem Auftreten ihrer selbst im Eingabetext. Die meisten Sonderzeichen verlieren hingegen ihre Bedeutung, wenn sie innerhalb eines Ausdrucks mit eckigen Klammern auftreten. Hiervon gibt es jedoch einige Ausnahmen:

  • Die eckige Klammer rechts (]) beendet eine Liste, wenn sie nicht das erste Element derselben ist. Um nach einer Entsprechung für die eckige Klammer rechts in einer Liste zu suchen, platzieren Sie sie an den Anfang unmittelbar hinter die öffnende eckige Klammer.
  • Der umgekehrte Schrägstrich (\) ist auch weiterhin das Escapezeichen. Um nach einer Entsprechung für den umgekehrten Schrägstrich zu suchen, verwenden Sie '\\'.

Zeichen, die in einen Ausdruck mit eckigen Klammern eingeschlossen sind, entsprechen nur einem einzelnen Zeichen an der Position im regulären Ausdruck, an der der Ausdruck mit eckigen Klammern angezeigt wird. Der folgende reguläre Ausdruck in JScript entspricht "Kapitel 1", "Kapitel 2", "Kapitel 3", "Kapitel 4" und "Kapitel 5":

/Kapitel [12345]/

Um in VBScript nach einer Entsprechung für die gleichen Kapitelüberschriften zu suchen, verwenden Sie den folgenden Ausdruck:

"Kapitel [12345]"

Beachten Sie, dass sich das Wort "Kapitel" und das nachfolgende Leerzeichen an einer festen Position in Bezug auf die Zeichen innerhalb der eckigen Klammern befinden. Der Ausdruck mit eckigen Klammern wird also nur verwendet, um den Zeichensatz anzugeben, der der Einzelzeichenposition unmittelbar nach dem Wort "Kapitel" und einem Leerzeichen entspricht. Dabei handelt es sich um die neunte Zeichenposition.

Wenn Sie die Zeichenentsprechungen unter Verwendung eines Bereichs statt der Zeichen selbst ausdrücken möchten, können Sie das Anfangs- und das Endezeichen des Bereichs mit Hilfe des Bindestrichs (-) voneinander trennen. Der Zeichenwert der einzelnen Zeichen bestimmt ihre relative Reihenfolge innerhalb eines Bereichs. Der folgende reguläre Ausdruck in JScript enthält einen Bereichsausdruck, der äquivalent zu der oben gezeigten Liste in eckigen Klammern ist.

/Kapitel [1-5]/

Der gleiche Ausdruck wird in VBScript wie folgt angezeigt:

"Kapitel [1-5]"

Wenn ein Bereich auf diese Weise angegeben wird, sind sowohl der Start- als auch der Endwert im Bereich enthalten. Wichtig ist hierbei, dass der Startwert dem Endwert in der Unicode-Sortierreihenfolge vorausgehen muss.

Wenn Sie den Bindestrich in den Ausdruck mit eckigen Klammern einschließen möchten, müssen Sie eine der folgenden Vorgehensweisen anwenden:

  • Verwenden Sie einen umgekehrten Schrägstrich als Escapezeichen:
    [\-]
  • Setzen Sie den Bindestrich an den Anfang oder an das Ende der Liste in eckigen Klammern. Die folgenden Ausdrücke entsprechen allen Kleinbuchstaben und dem Bindestrich:
    [-a-z]
[a-z-]
  • Erstellen Sie einen Bereich, in dem der Anfangszeichenwert kleiner als der Bindestrich und der Endzeichenwert größer oder gleich dem Bindestrich ist. Beide folgenden regulären Ausdrücke erfüllen diese Anforderung:
    [!--]
[!-~]

Sie können auch nach allen Zeichen suchen, die nicht in der Liste oder im Bereich enthalten sind, indem Sie das Zirkumflexzeichen (^) an den Anfang der Liste platzieren. Wenn das Zirkumflexzeichen an einer anderen Position in der Liste angezeigt wird, entspricht es sich selbst, d. h., es besitzt keine besondere Bedeutung. Der folgende reguläre Ausdruck in JScript entspricht Kapitelüberschriften, deren Nummer größer als 5 ist:

/Kapitel [^12345]/

Verwenden Sie in VBScript den folgenden Ausdruck:

"Kapitel [^12345]"

In den oben gezeigten Beispielen entspricht der Ausdruck einer beliebigen Ziffer an der neunten Position außer 1, 2, 3, 4 und 5. Daher ist beispielsweise "Kapitel 7" ebenso eine Entsprechung wie "Kapitel 9".

Die gleichen Ausdrücke können auch unter Verwendung des Bindestrichs dargestellt werden. In JScript sieht dies wie folgt aus:

/Kapitel [^1-5]/

Der entsprechende Ausdruck in VBScript lautet:

"Kapitel [^1-5]"

Eine typische Verwendung für einen Ausdruck mit eckigen Klammern ist die Angabe von Entsprechungen für Groß- oder Kleinbuchstaben oder für Ziffern. Der folgende Ausdruck in JScript gibt eine solche Entsprechung an:

/[A-Za-z0-9]/

Der entsprechende Ausdruck in VBScript lautet:

"[A-Za-z0-9]"


Quantifizierer

Manchmal wissen Sie nicht, für wie viele Zeichen eine Entsprechung gesucht werden muss. Um diese Unsicherheit auszuräumen, unterstützen reguläre Ausdrücke das Konzept der Quantifizierer. Mit deren Hilfe können Sie angeben, wie oft eine bestimmte Komponente des regulären Ausdrucks auftreten muss, damit eine erfolgreiche Entsprechung gefunden wird.

Die folgende Tabelle veranschaulicht die verschiedenen Quantifizierer und ihre Bedeutungen:

Zeichen | Beschreibung
* | Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Beispielsweise entspricht 'Zo*' sowohl "Z" als auch "Zoo". * ist äquivalent zu '{0,}'.
+ | Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. Beispielsweise entspricht 'Zo+' sowohl "Zo" als auch "Zoo", aber nicht "Z". + ist äquivalent zu '{1,}'.
? | Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal. Beispielsweise entspricht 'habe(n)?' dem "habe" in "habe" oder "haben". ? ist äquivalent zu '{0,1}'.
{n} | n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht 'o{2}' nicht dem "o" in "Robert", jedoch den beiden "o" in "Boot".
{n,} | n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Beispielsweise entspricht 'o{2,}' nicht dem "o" in "Robert", aber allen "o" in "Boooot". 'o{1,}' ist äquivalent zu 'o+'. 'o{0,}' ist äquivalent zu 'o*'.
{n,m} | m und n sind nicht negative Ganzzahlen, wobei n <= m. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht 'o{1,3}' den ersten drei "o" in "Booooot". 'o{0,1}' ist äquivalent zu 'o?'. Beachten Sie, dass zwischen dem Komma und den Zahlen kein Leerzeichen stehen darf.

Bei einem großen Eingabedokument können die Kapitelnummern ohne weiteres Neun überschreiten. Daher benötigen Sie eine Methode zur Behandlung von zwei- oder dreistelligen Kapitelnummern. Quantifizierer bieten Ihnen diese Möglichkeit. Der folgende reguläre Ausdruck in JScript entspricht Kapitelüberschriften mit beliebiger Stellenzahl:

/Kapitel [1-9][0-9]*/

Der folgende reguläre Ausdruck in VBScript hat das gleiche Ergebnis:

"Kapitel [1-9][0-9]*"

Beachten Sie, dass der Quantifizierer nach dem Bereichsausdruck angezeigt wird. Daher gilt er für den gesamten Bereichsausdruck, der in diesem Fall nur Ziffern zwischen 0 und 9 (einschließlich) angibt.

Der Pluszeichenquantifizierer (+) wird hier nicht verwendet, da sich nicht zwangsläufig eine Ziffer an der zweiten Position oder den folgenden Positionen befinden muss. Das Fragezeichen wird hier ebenfalls nicht verwendet, da hierbei die Kapitelnummern auf nur zwei Stellen beschränkt sind. Es soll eine Entsprechung für mindestens eine Ziffer gefunden werden, die auf "Kapitel" und ein Leerzeichen folgt.

Wenn Sie wissen, dass die Kapitelnummern auf nur 99 Kapitel beschränkt sind, können Sie den folgenden Ausdruck in JScript verwenden, um mindestens eine, jedoch nicht mehr als 2 Ziffern anzugeben.

/Kapitel [0-9]{1,2}/

Verwenden Sie in VBScript den folgenden regulären Ausdruck:

"Kapitel [0-9]{1,2}"

Der Nachteil gegenüber dem weiter oben gezeigten Ausdruck liegt darin, dass er bei einer Kapitelnummer, die größer als 99 ist, dennoch nur den ersten beiden Ziffern entspricht. Ein weiterer Nachteil besteht darin, dass man ein Kapitel 0 erstellen könnte und dieses eine Entsprechung darstellen würde. Die folgenden Ausdrücke in JScript sind besser geeignet, eine Entsprechung für nur zwei Ziffern zu suchen:

/Kapitel [1-9][0-9]?/

-oder-

/Kapitel [1-9][0-9]{0,1}/

In VBScript lauten die entsprechenden Ausdrücke wie folgt:

"Kapitel [1-9][0-9]?"

-oder-

"Kapitel [1-9][0-9]{0,1}"

Die Quantifizierer '*', '+' und '?' werden alle als umfassend bezeichnet, d. h., sie entsprechen so viel Text wie möglich. Dieses Verhalten ist jedoch manchmal gänzlich unerwünscht. Bisweilen soll nur eine minimale Entsprechung gesucht werden.

Angenommen, Sie durchsuchen beispielsweise ein HTML-Dokument nach dem Auftreten eines Kapiteltitels, der in ein H1-Tag eingeschlossen ist. Dieser Text wird im Dokument wie folgt angezeigt:

<H1>Kapitel 1 – Einführung in reguläre Ausdrücke</H1>

Der folgende Ausdruck entspricht dem gesamten Text von dem öffnenden Kleiner-als-Zeichen (<) bis zum Größer-als-Zeichen am Ende des schließenden H1-Tags.

/<.*>/

Der reguläre Ausdruck in VBScript lautet wie folgt:

"<.*>"

Falls Sie jedoch lediglich nach einer Entsprechung für das öffnende H1-Tag suchen wollten, so entspricht der folgende nicht umfassende Ausdruck nur "<H1>".

/<.*?>/

-oder-

"<.*?>"

Indem das Fragezeichen hinter einen der Quantifizierer '*', '+' oder '?' platziert wird, wird der Ausdruck von einer umfassenden in eine nicht umfassende (minimale) Entsprechung transformiert.


Anker

Bisher dienten die gezeigten Beispiele nur dazu, Kapitelüberschriften an beliebiger Stelle im Text zu finden. Jedes Auftreten der Zeichenfolge "Kapitel", gefolgt von einem Leerzeichen und einer Zahl, könnte eine tatsächliche Kapitelüberschrift darstellen. Es könnte sich jedoch auch um einen Querverweis zu einem anderen Kapitel handeln. Da echte Kapitelüberschriften stets am Anfang einer Zeile angezeigt werden, müsste es einen Weg geben, nur die Überschriften und nicht die Querverweise zu finden.

Anker bieten Ihnen diese Möglichkeit. Anker gestatten es Ihnen, einen regulären Ausdruck entweder am Anfang oder am Ende einer Zeile zu fixieren. Außerdem ermöglichen sie Ihnen die Erstellung von regulären Ausdrücken, die entweder innerhalb eines Wortes oder am Anfang oder Ende eines Wortes auftreten. Die folgende Tabelle enthält die Liste der Anker regulärer Ausdrücke und ihre Bedeutungen:

Zeichen | Beschreibung
^ | Entspricht der Position am Anfang der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht ^ auch der Position nach "\n" oder "\r".
$ | Entspricht der Position am Ende der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r".
\b | Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen.
\B | Entspricht einer Nichtwortgrenze.

Sie können keinen Quantifizierer zusammen mit einem Anker verwenden. Da es unmittelbar vor oder nach einem Zeilenumbruch oder einer Wortgrenze nur eine Position geben kann, sind Ausdrücke wie '^*' nicht zulässig.

Um nach einer Entsprechung für einen Text am Anfang einer Textzeile zu suchen, verwenden Sie das Zirkumflexzeichen (^) am Anfang des regulären Ausdrucks. Verwechseln Sie diese Verwendung des Zirkumflexzeichens nicht mit seiner Verwendung innerhalb eines Ausdrucks mit eckigen Klammern. Es handelt sich hierbei um zwei vollkommen verschiedene Dinge.

Um nach einer Entsprechung für einen Text am Ende einer Textzeile zu suchen, verwenden Sie das Dollarzeichen ($) am Ende des regulären Ausdrucks.

Der folgende reguläre Ausdruck in JScript verwendet Anker bei der Suche nach Kapitelüberschriften und entspricht einer Kapitelüberschrift mit bis zu zwei nachfolgenden Ziffern, die am Anfang einer Zeile auftritt:

/^Kapitel [1-9][0-9]{0,1}/

In VBScript wird der gleiche reguläre Ausdruck wie folgt angezeigt:

"^Kapitel [1-9][0-9]{0,1}"

Eine echte Kapitelüberschrift kommt nicht nur am Anfang einer Zeile vor, sondern ist auch das einzige Element in dieser Zeile. Daher muss sie auch am Ende der Zeile auftreten. Der folgende Ausdruck stellt sicher, dass die angegebene Entsprechung nur Kapiteln und keinen Querverweisen entspricht. Dies wird durch das Erstellen eines regulären Ausdrucks erreicht, der nur am Anfang und am Ende einer Textzeile nach einer Entsprechung sucht.

/^Kapitel [1-9][0-9]{0,1}$/

Verwenden Sie in VBScript den folgenden Ausdruck:

"^Kapitel [1-9][0-9]{0,1}$"

Die Suche nach Entsprechungen für Wortgrenzen wird etwas anders durchgeführt. Sie fügt jedoch eine wichtige Fähigkeit zu regulären Ausdrücken hinzu. Bei einer Wortgrenze handelt es sich um die Position zwischen einem Wort und einem Leerzeichen. Alle anderen Positionen sind Nichtwortgrenzen. Der folgende Ausdruck in JScript entspricht den ersten drei Zeichen des Wortes "Kapitel", da sie nach einer Wortgrenze angezeigt werden:

/\bKap/

Der entsprechende Ausdruck in VBScript lautet:

"\bKap"

Die Position des '\b'-Operators ist hierbei von entscheidender Bedeutung. Wenn er an den Anfang einer Zeichenfolge positioniert wird, für die eine Entsprechung gesucht werden soll, wird am Anfang des Wortes nach der Entsprechung gesucht; wenn er an das Ende der Zeichenfolge positioniert wird, wird am Ende des Wortes nach der Entsprechung gesucht. Beispielsweise entsprechen die folgenden Ausdrücke "tel" im Wort "Kapitel", da diese Zeichenfolge vor einer Wortgrenze angezeigt wird:

/tel\b/

und

"tel\b"

Die folgenden Ausdrücke entsprechen dem "pit" in "Kapitel", aber nicht dem "pit" in "pittoresk":

/\Bpit/

und

"\Bpit"

Der Grund hierfür liegt darin, dass "pit" im Wort "Kapitel" an einer Nichtwortgrenze auftritt, im Wort "pittoresk" dagegen an einer Wortgrenze. Für den Nichtwortgrenzen-Operator ist die Position unwichtig, da die Entsprechung nicht relativ zum Anfang oder Ende eines Wortes gesucht wird.


Auswahl und Gruppierung

Bei einer Auswahl können Sie den senkrechten Strich (|) verwenden, um eine Wahl zwischen zwei oder mehr Alternativen zu gestatten. So ist eine Ausweitung des regulären Ausdrucks für Kapitelüberschriften möglich, damit er mehr als nur Kapitelüberschriften abdeckt. Dies ist jedoch nicht so einfach durchzuführen, wie es Ihnen erscheinen mag. Bei der Verwendung von Auswahlen wird nach einer Entsprechung für den größtmöglichen Ausdruck auf beiden Seiten des senkrechten Striches gesucht. Vielleicht denken Sie, dass die folgenden Ausdrücke in JScript und VBScript entweder "Kapitel" oder "Abschnitt", gefolgt von ein oder zwei Ziffern, am Anfang und Ende einer Zeile entsprechen:

/^Kapitel|Abschnitt [1-9][0-9]{0,1}$/
"^Kapitel|Abschnitt [1-9][0-9]{0,1}$"

Leider entsprechen die oben gezeigten regulären Ausdrücke in Wirklichkeit entweder dem Wort "Kapitel" am Anfang einer Zeile oder aber dem Wort "Abschnitt" und beliebigen darauf folgenden Zahlen am Ende einer Zeile. Wenn die Eingabezeichenfolge "Kapitel 22" lautet, entspricht der oben gezeigte Ausdruck nur dem Wort "Kapitel". Wenn die Eingabezeichenfolge "Abschnitt 22" lautet, entspricht der Ausdruck "Abschnitt 22". Dies ist jedoch nicht beabsichtigt. Daher muss es einen Weg geben, um diesen regulären Ausdruck Ihren Wünschen besser anzupassen. Diesen Weg gibt es tatsächlich.

Sie können Klammern verwenden, um den Gültigkeitsbereich der Auswahl zu beschränken, d. h. sicherzustellen, dass sie nur für die beiden Wörter "Kapitel" und "Abschnitt" gilt. Klammern haben jedoch ebenfalls ihre Tücken, da sie auch zum Erstellen von Unterausdrücken verwendet werden. Dies wird später im Abschnitt über Unterausdrücke behandelt. Indem Sie an den passenden Stellen Klammern zu den oben gezeigten regulären Ausdrücken hinzufügen, können Sie diese Ausdrücke dahingehend ändern, dass sie entweder "Kapitel 1" oder "Abschnitt 3" entsprechen.

In den folgenden regulären Ausdrücken werden Klammern zum Gruppieren von 'Kapitel' und 'Abschnitt' verwendet, damit der Ausdruck ordnungsgemäß funktioniert. In JScript sieht dies wie folgt aus:

/^(Kapitel|Abschnitt) [1-9][0-9]{0,1}$/

Der entsprechende Ausdruck in VBScript lautet:

"^(Kapitel|Abschnitt) [1-9][0-9]{0,1}$"

Diese Ausdrücke funktionieren ordnungsgemäß, bis auf ein interessantes Nebenprodukt. Das Platzieren von Klammern um 'Kapitel|Abschnitt' stellt zwar die korrekte Gruppierung her, es bewirkt jedoch auch, dass eine der Wortentsprechungen für eine spätere Verwendung gespeichert wird. Da der oben gezeigte Ausdruck nur ein Klammernpaar enthält, wird nur eine Unterentsprechung gespeichert. Auf diese Unterentsprechung kann mit Hilfe der Submatches-Auflistung in VBScript oder der $1-$9-Eigenschaften des RegExp-Objekts in JScript verwiesen werden.

Manchmal ist das Speichern einer Unterentsprechung erwünscht. In den oben gezeigten Beispielen sollen die Klammern eigentlich nur dazu dienen, eine Auswahl zwischen den Wörtern 'Kapitel' oder 'Abschnitt' zu gruppieren. Auf die Entsprechung soll später nicht unbedingt verwiesen werden. Sie sollten Unterentsprechungen sogar nur dann verwenden, wenn Sie sie wirklich speichern müssen. Die regulären Ausdrücke werden effizienter, da nun weder Zeit noch Arbeitsspeicher zum Speichern dieser Unterentsprechungen benötigt wird.

Sie können '?:' vor dem Muster des regulären Ausdrucks in den Klammern verwenden, um zu verhindern, dass die Entsprechung für eine mögliche spätere Verwendung gespeichert wird. Die folgende Änderung der oben gezeigten regulären Ausdrücke bietet die gleichen Fähigkeiten, ohne dass die Unterentsprechung gespeichert wird. In JScript sieht dies wie folgt aus:

/^(?:Kapitel|Abschnitt) [1-9][0-9]{0,1}$/

Der entsprechende Ausdruck in VBScript lautet:

"^(?:Kapitel|Abschnitt) [1-9][0-9]{0,1}$"

Zusätzlich zu den Metazeichen '?:' gibt es zwei weitere nicht speichernde Metazeichen, die für so genannte Vorausschau-Entsprechungen verwendet werden. Eine positive Vorausschau, die unter Verwendung von '?=' angegeben wird, entspricht der Suchzeichenfolge an allen Stellen, an denen eine Entsprechung für ein Muster eines regulären Ausdrucks in Klammern beginnt. Eine komplementäre Vorausschau, die unter Verwendung von '?!' angegeben wird, entspricht der Suchzeichenfolge an allen Stellen, an denen eine dem Muster des regulären Ausdrucks nicht entsprechende Zeichenfolge beginnt.

Angenommen, es liegt beispielsweise ein Dokument vor, das Verweise auf Windows 3.1, Windows 95, Windows 98 und Windows NT enthält. Nehmen wir weiter an, dass Sie das Dokument aktualisieren möchten, indem Sie nach allen Verweisen auf Windows 95, Windows 98 und Windows NT suchen und diese Verweise in "Windows 2000" ändern. Sie können den folgenden regulären Ausdruck in JScript, ein Beispiel für eine positive Vorausschau, dazu verwenden, nach Entsprechungen für 'Windows 95', 'Windows 98' und 'Windows NT' zu suchen:

/Windows(?=95 |98 |NT )/

Um die gleichen Entsprechungen in VBScript zu finden, verwenden Sie den folgenden Ausdruck:

"Windows(?=95 |98 |NT )"

Nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der Textentsprechung, die Zeichen in der Vorausschau nicht eingeschlossen. Wenn die oben gezeigten Ausdrücke beispielsweise "Windows 98" entsprachen, wird die Suche nach "Windows" fortgesetzt, nicht nach "98".


Rückverweise

Eines der wichtigsten Features von regulären Ausdrücken ist die Fähigkeit, einen Teil einer Musterentsprechung für eine spätere Wiederverwendung zu speichern. Wie Sie sich erinnern werden, bewirkt das Platzieren von Klammern um das Muster eines regulären Ausdrucks oder um einen Teil dieses Musters, dass der entsprechende Teil des Ausdrucks in einem temporären Puffer gespeichert wird. Sie können das Speichern dieses Teils des regulären Ausdrucks außer Kraft setzen, indem Sie die nicht speichernden Metazeichen '?:', '?=' oder '?!' verwenden.

Jede gespeicherte Unterentsprechung wird so gespeichert, wie sie von links nach rechts im Muster eines regulären Ausdrucks angetroffen wird. Die Nummern der Puffer, in denen die Unterentsprechungen gespeichert werden, beginnen bei 1 und werden bis zu maximal 99 Unterausdrücken fortgesetzt. Auf jeden einzelnen Puffer kann mit Hilfe von '\n' zugegriffen werden, wobei n für ein oder zwei Dezimalziffern steht, die einen bestimmten Puffer bezeichnen.

Eine der einfachsten und nützlichsten Anwendungen für Rückverweise stellt Ihnen die Fähigkeit zur Verfügung, das Auftreten von zwei identischen Wörtern hintereinander in einem Text ausfindig zu machen. Betrachten Sie den folgenden Satz:

Wird wird das Benzin Benzin immer teurer teurer?

In dieser Version ist der oben gezeigte Satz offensichtlich nicht korrekt, da mehrere Wörter doppelt in ihm auftreten. Nun wäre es praktisch, wenn es einen Weg gäbe, diesen Satz zu korrigieren, ohne nach Duplikaten jedes einzelnen Wortes suchen zu müssen. Der folgende reguläre Ausdruck in JScript verwendet hierzu einen einzigen Unterausdruck.

/\b([a-z]+) \1\b/gi

Der entsprechende Ausdruck in VBScript lautet:

"\b([a-z]+) \1\b"

Der Unterausdruck besteht in diesem Fall aus allen Zeichen, die in runden Klammern stehen. Dieser gespeicherte Ausdruck schließt ein oder mehrere Buchstaben ein, wie durch '[a-z]+' angegeben. Der zweite Teil des regulären Ausdrucks besteht aus dem Verweis auf die zuvor gespeicherte Unterentsprechung, d. h., das zweite Auftreten des Wortes, für das gerade mit Hilfe des Ausdrucks in Klammern eine Entsprechung gefunden wurde. Mit '\1' wird die erste Unterentsprechung angegeben. Die Metazeichen für die Wortgrenzen stellen sicher, dass nur ganze Wörter erkannt werden. Wenn dies nicht der Fall wäre, würden fälschlicherweise auch Phrasen wie "ein eindeutiges" oder "Grund und" von diesem Ausdruck identifiziert werden.

Im JScript-Ausdruck zeigt das global-Flag ('g') nach dem regulären Ausdruck an, dass der Ausdruck auf so viele Entsprechungen angewendet wird, wie in der Eingabezeichenfolge gefunden werden können. Das ignoreCase-Flag ('i') am Ende des Ausdrucks gibt an, dass die Groß-/Kleinschreibung nicht beachtet werden soll. Das multiline-Flag gibt an, dass potenzielle Entsprechungen auf beiden Seiten eines Zeilenumbruchzeichens auftreten können. In VBScript können die verschiedenen Flags nicht im Ausdruck gesetzt werden, sondern müssen explizit unter Verwendung der entsprechenden Eigenschaften des RegExp-Objekts gesetzt werden.

Unter Verwendung des oben gezeigten regulären Ausdrucks kann der folgende JScript-Code die Informationen über Unterentsprechungen verwenden, um ein Auftreten von zwei aufeinander folgenden identischen Wörtern in einer Textzeichenfolge durch ein einziges Auftreten des gleichen Wortes zu ersetzen:

var sz = "Wird wird das Benzin Benzin immer teurer teurer?.\n";
var ra = /\b([a-z]+) \1\b/gim;       //Erstellt das Muster des regulaeren Ausdrucks.
var ev = sz.replace(ra,"$1");   //Ersetzt zwei Vorkommen durch eines.

Der diesem Code am ehesten entsprechende VBScript-Code wird wie folgt angezeigt:

Dim sz, ra, ev
sz = "Wird wird das Benzin Benzin immer teurer teurer?." & vbNewLine
Set ra = New RegExp
ra.Pattern = "\b([a-z]+) \1\b"
ra.Global = True
ra.IgnoreCase = True
ra.MultiLine = True
ev = ra.Replace(sz,"$1")

Beachten Sie, dass im VBScript-Code die global-, ignoreCase- und multiline-Flags unter Verwendung der entsprechend benannten Eigenschaften des RegExp-Objekts gesetzt werden.

Die Verwendung von $1 innerhalb der replace-Methode verweist auf die erste gespeicherte Unterentsprechung. Wenn mehr als eine Unterentsprechung vorhanden wäre, könnten Sie auf diese der Reihe nach mit $2, $3 usw. verweisen.

Eine andere Anwendungsmöglichkeit für Rückverweise ist das Aufteilen eines URIs (Universal Resource Indicator) in seine Komponenten. Angenommen, Sie möchten den folgenden URI in das Protokoll (ftp, http usw.), die Domänenadresse und die Seite/den Pfad aufteilen:

http://www.microsoft.com/germany/scripting

Die folgenden regulären Ausdrücke bieten Ihnen diese Funktionalität. In JScript sieht dies wie folgt aus:

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

Der entsprechende Ausdruck in VBScript lautet:

"(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)"

Der erste Unterausdruck in Klammern wurde dazu entwickelt, den Protokollanteil der Webadresse zu speichern. Dieser Unterausdruck entspricht allen Wörtern, die einem Doppelpunkt und zwei Schrägstrichen vorausgehen. Der zweite Unterausdruck in Klammern speichert den Domänenadressanteil der Adresse. Dieser Unterausdruck entspricht allen Zeichensequenzen, die nicht die Zeichen "^", "/" oder ":" enthalten. Der dritte Unterausdruck in Klammern speichert eine Anschlussnummer der Website, falls eine solche angegeben ist. Dieser Unterausdruck entspricht null oder mehr Ziffern, die auf einen Doppelpunkt folgen. Der vierte Unterausdruck in Klammern speichert schließlich die Pfad- und/oder Seiteninformationen, die von der Webadresse angegeben werden. Dieser Unterausdruck entspricht einem oder mehreren Zeichen außer "#" und dem Leerzeichen.

Wenn der reguläre Ausdruck auf den oben gezeigten URI angewendet wird, enthalten die Unterentsprechungen Folgendes:

RegExp.$1 enthält "http".

RegExp.$2 enthält "www.microsoft.com/germany".

RegExp.$3 enthält "/germany".

RegExp.$4 enthält "/scripting".


VBScript-Sprachverzeichnis

Anweisungen

Eigenschaften

Ereignisse

Fehler

Funktionen

Konstanten

Methoden

Objekte und Auflistungen

Operatoren

Verschiedenes


Versionsinformationen (VBScript)

Visual Basic Scripting Edition

Versionsinformationen

Die folgende Tabelle zeigt die Version von Microsoft Visual Basic Scripting Edition, die in einzelnen Hostanwendungen implementiert ist.

Hostanwendung | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 5.5 | 5.6
Microsoft Internet Explorer 3.0 | x |  |  |  |  |  |
Microsoft Internet Information Server 3.0 |  | x |  |  |  |  |
Microsoft Internet Explorer 4.0 |  |  | x |  |  |  |
Microsoft Internet Information Server 4.0 |  |  | x |  |  |  |
Microsoft Windows Scripting Host 1.0 |  |  | x |  |  |  |
Microsoft Outlook 98 |  |  | x |  |  |  |
Microsoft Visual Studio 6.0 |  |  |  | x |  |  |
Microsoft Internet Explorer 5.0 |  |  |  |  | x |  |
Microsoft Internet-Informationsdienste 5.0 |  |  |  |  | x |  |
Microsoft Internet Explorer 5.5 |  |  |  |  |  | x |
Microsoft Visual Studio.NET |  |  |  |  |  |  | x

Die folgende Tabelle führt Features der VBScript-Sprache und die Version auf, in der sie eingeführt wurden.

Sprachelement | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 5.5 | 5.6
Abs-Funktion | x |  |  |  |  |  |
Additionsoperator (+) | x |  |  |  |  |  |
And-Operator | x |  |  |  |  |  |
Array-Funktion |  | x |  |  |  |  |
Asc-Funktion | x |  |  |  |  |  |
Atn-Funktion | x |  |  |  |  |  |
Call-Anweisung | x |  |  |  |  |  |
CBool-Funktion | x |  |  |  |  |  |
CByte-Funktion | x |  |  |  |  |  |
CCur-Funktion | x |  |  |  |  |  |
CDate-Funktion | x |  |  |  |  |  |
CDbl-Funktion | x |  |  |  |  |  |
Chr-Funktion | x |  |  |  |  |  |
CInt-Funktion | x |  |  |  |  |  |
Class-Anweisung |  |  |  |  | x |  |
Class-Objekt |  |  |  |  | x |  |
Clear-Methode | x |  |  |  |  |  |
CLng-Funktion | x |  |  |  |  |  |
Const-Anweisung |  | x |  |  |  |  |
Cos-Funktion | x |  |  |  |  |  |
CreateObject-Funktion |  | x |  |  |  |  |
CSng-Funktion | x |  |  |  |  |  |
CStr-Funktion | x |  |  |  |  |  |
Date-Funktion | x |  |  |  |  |  |
DateAdd-Funktion |  | x |  |  |  |  |
DateDiff-Funktion |  | x |  |  |  |  |
DatePart-Funktion |  | x |  |  |  |  |
DateSerial-Funktion | x |  |  |  |  |  |
DateValue-Funktion | x |  |  |  |  |  |
Datums- und Zeitkonstanten |  | x |  |  |  |  |
Datumsformatkonstanten |  | x |  |  |  |  |
Day-Funktion | x |  |  |  |  |  |
Description-Eigenschaft | x |  |  |  |  |  |
Dim-Anweisung | x |  |  |  |  |  |
Divisionsoperator (/) | x |  |  |  |  |  |
Do...Loop-Anweisung | x |  |  |  |  |  |
Empty | x |  |  |  |  |  |
Eqv-Operator | x |  |  |  |  |  |
Erase-Anweisung | x |  |  |  |  |  |
Err-Objekt | x |  |  |  |  |  |
Eval-Funktion |  |  |  |  | x |  |
Execute-Anweisung |  |  |  |  | x |  |
Execute-Methode |  |  |  |  | x |  |
ExecuteGlobal-Anweisung |  |  |  |  | x |  |
Exit-Anweisung | x |  |  |  |  |  |
Exp-Funktion | x |  |  |  |  |  |
Exponentialoperator (^) | x |  |  |  |  |  |
False | x |  |  |  |  |  |
Farbkonstanten |  | x |  |  |  |  |
Filter-Funktion |  | x |  |  |  |  |
FirstIndex-Eigenschaft |  |  |  |  | x |  |
Fix-Funktion | x |  |  |  |  |  |
For Each...Next-Anweisung |  | x |  |  |  |  |
For...Next-Anweisung | x |  |  |  |  |  |
FormatCurrency-Funktion |  | x |  |  |  |  |
FormatDateTime-Funktion |  | x |  |  |  |  |
FormatNumber-Funktion |  | x |  |  |  |  |
FormatPercent-Funktion |  | x |  |  |  |  |
Function-Anweisung | x |  |  |  |  |  |
Ganzzahldivisions-Operator (\) | x |  |  |  |  |  |
GetLocale-Funktion |  |  |  |  | x |  |
GetObject-Funktion |  | x |  |  |  |  |
GetRef-Funktion |  |  |  |  | x |  |
Global-Eigenschaft |  |  |  |  | x |  |
HelpContext-Eigenschaft |  | x |  |  |  |  |
HelpFile-Eigenschaft |  | x |  |  |  |  |
Hex-Funktion | x |  |  |  |  |  |
Hour-Funktion | x |  |  |  |  |  |
If...Then...Else-Anweisung | x |  |  |  |  |  |
IgnoreCase-Eigenschaft |  |  |  |  | x |  |
Imp-Operator | x |  |  |  |  |  |
Initialize-Ereignis |  |  |  |  | x |  |
InputBox-Funktion | x |  |  |  |  |  |
InStr-Funktion | x |  |  |  |  |  |
InStrRev-Funktion |  | x |  |  |  |  |
Int-Funktion | x |  |  |  |  |  |
IsArray-Funktion | x |  |  |  |  |  |
IsDate-Funktion | x |  |  |  |  |  |
IsEmpty-Funktion | x |  |  |  |  |  |
IsNull-Funktion | x |  |  |  |  |  |
IsNumeric-Funktion | x |  |  |  |  |  |
IsObject-Funktion | x |  |  |  |  |  |
Is-Operator | x |  |  |  |  |  |
Join-Funktion |  | x |  |  |  |  |
LBound-Funktion | x |  |  |  |  |  |
LCase-Funktion | x |  |  |  |  |  |
Left-Funktion | x |  |  |  |  |  |
Len-Funktion | x |  |  |  |  |  |
Length-Eigenschaft |  |  |  |  | x |  |
LoadPicture-Funktion |  | x |  |  |  |  |
Log-Funktion | x |  |  |  |  |  |
LTrim-Funktion | x |  |  |  |  |  |
Match-Objekt |  |  |  |  | x |  |
Matches-Auflistung |  |  |  |  | x |  |
Mid-Funktion | x |  |  |  |  |  |
Minute-Funktion | x |  |  |  |  |  |
Mod-Operator | x |  |  |  |  |  |
Month-Funktion | x |  |  |  |  |  |
MonthName-Funktion |  | x |  |  |  |  |
MsgBox-Funktion | x |  |  |  |  |  |
MsgBox-Konstanten |  | x |  |  |  |  |
Multiplikationsoperator (*) | x |  |  |  |  |  |
Negationsoperator (-) | x |  |  |  |  |  |
Not-Operator | x |  |  |  |  |  |
Nothing | x |  |  |  |  |  |
Now-Funktion | x |  |  |  |  |  |
Null | x |  |  |  |  |  |
Number-Eigenschaft | x |  |  |  |  |  |
Oct-Funktion | x |  |  |  |  |  |
On Error-Anweisung | x |  |  |  |  |  |
Option Explicit-Anweisung | x |  |  |  |  |  |
Or-Operator | x |  |  |  |  |  |
Pattern-Eigenschaft |  |  |  |  | x |  |
Private-Anweisung |  | x |  |  |  |  |
Property Get-Anweisung |  |  |  |  | x |  |
Property Let-Anweisung |  |  |  |  | x |  |
Property Set-Anweisung |  |  |  |  | x |  |
Public-Anweisung |  | x |  |  |  |  |
Raise-Methode | x |  |  |  |  |  |
Randomize-Anweisung | x |  |  |  |  |  |
ReDim-Anweisung | x |  |  |  |  |  |
RegExp-Objekt |  |  |  |  | x |  |
Rem-Anweisung | x |  |  |  |  |  |
Replace-Funktion |  | x |  |  |  |  |
Replace-Methode |  |  |  |  | x |  |
RGB-Funktion |  | x |  |  |  |  |
Right-Funktion | x |  |  |  |  |  |
Rnd-Funktion | x |  |  |  |  |  |
Round-Funktion |  | x |  |  |  |  |
RTrim-Funktion | x |  |  |  |  |  |
ScriptEngine-Funktion |  | x |  |  |  |  |
ScriptEngineBuildVersion-Funktion |  | x |  |  |  |  |
ScriptEngineMajorVersion-Funktion |  | x |  |  |  |  |
ScriptEngineMinorVersion-Funktion |  | x |  |  |  |  |
Second-Funktion | x |  |  |  |  |  |
Select Case-Anweisung | x |  |  |  |  |  |
Set-Anweisung | x |  |  |  |  |  |
SetLocale-Funktion |  |  |  |  | x |  |
Sgn-Funktion | x |  |  |  |  |  |
Sin-Funktion | x |  |  |  |  |  |
Source-Eigenschaft | x |  |  |  |  |  |
Space-Funktion | x |  |  |  |  |  |
Split-Funktion |  | x |  |  |  |  |
Sqr-Funktion | x |  |  |  |  |  |
StrComp-Funktion | x |  |  |  |  |  |
String-Funktion | x |  |  |  |  |  |
StrReverse-Funktion |  | x |  |  |  |  |
Sub-Anweisung | x |  |  |  |  |  |
Subtraktionsoperator (-) | x |  |  |  |  |  |
Tan-Funktion | x |  |  |  |  |  |
Terminate-Ereignis |  |  |  |  | x |  |
Test-Methode |  |  |  |  | x |  |
Time-Funktion | x |  |  |  |  |  |
Timer-Funktion |  |  |  |  | x |  |
TimeSerial-Funktion | x |  |  |  |  |  |
TimeValue-Funktion | x |  |  |  |  |  |
Trim-Funktion | x |  |  |  |  |  |
Tristate-Konstanten |  | x |  |  |  |  |
True | x |  |  |  |  |  |
TypeName-Funktion |  | x |  |  |  |  |
UBound-Funktion | x |  |  |  |  |  |
UCase-Funktion | x |  |  |  |  |  |
Value-Eigenschaft |  |  |  |  | x |  |
VarType-Funktion | x |  |  |  |  |  |
VarType-Konstanten |  | x |  |  |  |  |
VBScript-Konstanten |  | x |  |  |  |  |
Vergleichskonstanten |  | x |  |  |  |  |
Verkettungsoperator (&) | x |  |  |  |  |  |
Verschiedene Konstanten |  | x |  |  |  |  |
Weekday-Funktion | x |  |  |  |  |  |
WeekdayName-Funktion |  | x |  |  |  |  |
While...Wend-Anweisung | x |  |  |  |  |  |
With-Anweisung |  |  |  |  | x |  |
Xor-Operator | x |  |  |  |  |  |
Year-Funktion | x |  |  |  |  |  |
Zeichenfolgenkonstanten |  | x |  |  |  |  |
Zuweisungsoperator (=) | x |  |  |  |  |  |


VBScript-Konstanten

In VBScript sind zahlreiche hilfreiche Konstanten integriert, die Sie in Ihrem Code verwenden können. Konstanten bieten eine ausgezeichnete Möglichkeit, bestimmte Werte zu verwenden, ohne sich dabei den eigentlichen Wert merken zu müssen. Darüber hinaus ist der Code einfacher zu pflegen, wenn sich der Wert von Konstanten ändert. Da diese Konstanten bereits in VBScript definiert sind, müssen Sie diese in Ihrem Code nicht mehr explizit deklarieren. Setzen Sie die Konstanten einfach anstelle der darzustellenden Werte.

Die folgende Auflistung beschreibt die verschiedenen Kategorien von Konstanten, die in VBScript zur Verfügung stehen:

  • Datums- und Uhrzeitkonstanten Definieren die für die verschiedenen Datums- und Uhrzeitfunktionen relevanten Konstanten.
  • Datumsformat-Konstanten Definieren Konstanten für die Formatierung von Datums- und Zeitangaben.
  • Farbkonstanten Definieren die acht grundlegenden in Skripten verwendbaren Farben.
  • MsgBox-Konstanten Definieren Konstanten zur Verwendung in MsgBox-Funktionen, um Schaltflächendarstellung, -bezeichnung, -verhalten sowie Rückgabewerte zu beschreiben.
  • Tristate-Konstanten Definieren Konstanten zur Verwendung mit Funktionen, mit denen Zahlen formatiert werden.
  • VarType-Konstanten Definieren die verschiedenen Variant-Untertypen.
  • Verschiedene Konstanten Definieren Konstanten, die nicht problemlos einer anderen Kategorie zugeordnet werden können.
  • Zeichenfolgenkonstanten Definieren zahlreiche nicht druckbare Zeichen für die Verwendung in Zeichenfolgenbearbeitungen.

Anforderungen

Version 2


Farbkonstanten

Da diese Konstanten in VBScript integriert sind, müssen Sie sie vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbBlack | &h00 | Schwarz
vbRed | &hFF | Rot
vbGreen | &hFF00 | Grün
vbYellow | &hFFFF | Gelb
vbBlue | &hFF0000 | Blau
vbMagenta | &hFF00FF | Magenta
vbCyan | &hFFFF00 | Zyan
vbWhite | &hFFFFFF | Weiß

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformat-Konstanten | MsgBox-Konstanten | Tristate-Konstanten | VarType-Konstanten | Vergleichskonstanten | Verschiedene Konstanten | Zeichenfolgenkonstanten


Vergleichskonstanten

Da diese Konstanten in VBScript integriert sind, müssen Sie sie vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformat-Konstanten | Farbkonstanten | MsgBox-Konstanten | Tristate-Konstanten | VarType-Konstanten | Verschiedene Konstanten | Zeichenfolgenkonstanten


Datums- und Uhrzeitkonstanten

Da diese Konstanten in VBScript integriert sind, müssen Sie sie vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbSunday | 1 | Sonntag
vbMonday | 2 | Montag
vbTuesday | 3 | Dienstag
vbWednesday | 4 | Mittwoch
vbThursday | 5 | Donnerstag
vbFriday | 6 | Freitag
vbSaturday | 7 | Samstag
vbUseSystemDayOfWeek | 0 | Verwenden des in den Ländereinstellungen als erster Wochentag festgelegten Tages.
vbFirstJan1 | 1 | Verwenden der Woche, in der der 1. Januar liegt (Standard).
vbFirstFourDays | 2 | Verwenden der ersten Woche, die im neuen Jahr mindestens vier Tage hat.
vbFirstFullWeek | 3 | Verwenden der ersten vollen Woche eines Jahres.

Anforderungen

Version 2

Siehe auch

Datumsformat-Konstanten | Farbkonstanten | MsgBox-Konstanten | Tristate-Konstanten | VarType-Konstanten | Vergleichskonstanten | Verschiedene Konstanten | Zeichenfolgenkonstanten


Datumsformat-Konstanten

Da diese Konstanten in VBScript integriert sind, müssen Sie sie vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbGeneralDate | 0 | Anzeigen von Datum und/oder Uhrzeit. Bei reellen Zahlen Anzeige von Datum und Uhrzeit. Keine Dezimalstellen: nur Datumsanzeige. Kein ganzzahliger Teil: nur Uhrzeitanzeige. Die Datums- und Uhrzeitanzeige ist von Ihren Systemeinstellungen abhängig.
vbLongDate | 1 | Anzeigen eines Datums im langen Datumsformat Ihrer Ländereinstellungen.
vbShortDate | 2 | Anzeigen des Datums im kurzen Datumsformat Ihrer Ländereinstellungen.
vbLongTime | 3 | Anzeigen der Zeit im langen Zeitformat Ihrer Ländereinstellungen.
vbShortTime | 4 | Anzeigen der Zeit im kurzen Zeitformat Ihrer Ländereinstellungen.

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Farbkonstanten | MsgBox-Konstanten | Tristate-Konstanten | VarType-Konstanten | Vergleichskonstanten | Verschiedene Konstanten | Zeichenfolgenkonstanten


Verschiedene Konstanten

Da diese Konstante in VBScript integriert ist, müssen Sie diese vor einer Verwendung nicht definieren. Verwenden Sie diese Konstante in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante Wert Beschreibung
vbObjectError -2147221504 Benutzerdefinierte Fehlernummern sollten größer als dieser Wert sein. Beispiel:
Err.Raise Number = vbObjectError + 1000

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformatkonstanten | Farbkonstanten | MsgBox-Konstanten | Tristate-Konstanten | VarType-Konstanten | Vergleichskonstanten | Zeichenfolgenkonstanten


MsgBox-Konstanten

Die folgenden Konstanten werden mit der MsgBox-Funktion verwendet, um festzulegen, welche Schaltflächen und Symbole in einem Meldungsfeld angezeigt werden und welche Schaltfläche standardmäßig aktiviert ist. Darüber hinaus kann die "Gebundenheit von" MsgBox festgelegt werden. Da diese Konstanten in VBScript integriert sind, müssen Sie diese vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbOKOnly | 0 | Nur Schaltfläche OK anzeigen.
vbOKCancel | 1 | Anzeigen der Schaltflächen OK und Abbrechen.
vbAbortRetryIgnore | 2 | Anzeigen der Schaltflächen Abbrechen, Wiederholen und Ignorieren.
vbYesNoCancel | 3 | Anzeigen der Schaltflächen Ja, Nein und Abbrechen.
vbYesNo | 4 | Anzeigen der Schaltflächen Ja und Nein.
vbRetryCancel | 5 | Anzeigen der Schaltflächen Wiederholen und Abbrechen.
vbCritical | 16 | Meldung mit Stopp-Symbol anzeigen.
vbQuestion | 32 | Meldung mit Fragezeichen-Symbol anzeigen.
vbExclamation | 48 | Anzeigen des Symbols Warnung.
vbInformation | 64 | Anzeigen des Symbols Information.
vbDefaultButton1 | 0 | Erste Schaltfläche ist Standard.
vbDefaultButton2 | 256 | Zweite Schaltfläche ist Standard.
vbDefaultButton3 | 512 | Dritte Schaltfläche ist Standard.
vbDefaultButton4 | 768 | Vierte Schaltfläche ist Standard.
vbApplicationModal | 0 | Anwendungsgebunden. Der Benutzer muss das Meldungsfeld bestätigen, bevor mit der Anwendung fortgefahren werden kann.
vbSystemModal | 4096 | Systemgebunden. Bei Win16-Systemen werden alle Anwendungen angehalten, bis der Benutzer das Meldungsfeld bestätigt hat. Bei Win32-Systemen wird durch diese Konstante ein anwendungsgebundenes Meldungsfeld eingeblendet, das immer im Vordergrund steht und andere ausgeführte Programme überlagert.

Die folgenden Konstanten werden mit der MsgBox-Funktion verwendet, um festzustellen, welche Schaltfläche ein Benutzer gewählt hat. Diese Konstanten sind nur verfügbar, wenn Ihr Projekt explizit auf die entsprechende Typbibliothek mit diesen Definitionen der Konstanten verweist. In VBScript müssen Sie diese Konstanten explizit in Ihrem Code deklarieren.

Konstante | Wert | Beschreibung
vbOK | 1 | Es wurde auf die Schaltfläche OK geklickt.
vbCancel | 2 | Es wurde auf die Schaltfläche Abbrechen geklickt.
vbAbort | 3 | Es wurde auf die Schaltfläche Abbrechen geklickt.
vbRetry | 4 | Es wurde auf die Schaltfläche Wiederholen geklickt.
vbIgnore | 5 | Es wurde auf die Schaltfläche Ignorieren geklickt.
vbYes | 6 | Es wurde auf die Schaltfläche Ja geklickt.
vbNo | 7 | Es wurde auf die Schaltfläche Nein geklickt.

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformatkonstanten | Farbkonstanten | Tristate-Konstanten | VarType-Konstanten | Verschiedene Konstanten | Vergleichskonstanten | Zeichenfolgenkonstanten


Zeichenfolgenkonstanten

Da diese Konstanten in VBScript integriert sind, müssen Sie sie vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbCr | Chr(13) | Wagenrücklauf.
VbCrLf | Chr(13) & Chr(10) | Wagenrücklauf-Zeilenvorschub.
vbFormFeed | Chr(12) | Seitenvorschub (nicht sinnvoll unter Microsoft Windows).
vbLf | Chr(10) | Zeilenvorschub.
vbNewLine | Chr(13) & Chr(10) oder Chr(10) | Plattformspezifisches Zeilenumbruchzeichen (je nach Plattform unterschiedlich).
vbNullChar | Chr(0) | Zeichen mit dem Wert 0.
vbNullString | Zeichenfolge mit dem Wert 0 | Entspricht nicht einer Zeichenfolge mit der Länge Null (""); für den Aufruf externer Prozeduren.
vbTab | Chr(9) | Horizontaler Tabstopp.
vbVerticalTab | Chr(11) | Vertikaler Tabstopp (nicht sinnvoll unter Microsoft Windows).

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformatkonstanten | Farbkonstanten | MsgBox-Konstanten | Tristate-Konstanten | VarType-Konstanten | Vergleichskonstanten | Verschiedene Konstanten


Tristate-Konstanten

Da diese Konstanten in VBScript integriert sind, müssen Sie sie vor einer Verwendung nicht definieren. Verwenden Sie diese Konstanten in Ihrem Code an einer beliebigen Stelle, um die jeweils angezeigten Werte darzustellen.

Konstante | Wert | Beschreibung
vbUseDefault | -2 | Verwendet die Standardeinstellungen des Gebietsschemas des Computers.
vbTrue | -1 | True
vbFalse | 0 | False

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformat-Konstanten | Farbkonstanten | MsgBox-Konstanten | VarType-Konstanten | Vergleichskonstanten | Verschiedene-Konstanten | Zeichenfolgenkonstanten


VarType-Konstanten

Folgende Konstanten sind nur verfügbar, wenn Ihr Projekt explizit auf eine entsprechende Typbibliothek verweist, die diese Definitionen der Konstanten enthält. In VBScript müssen Sie diese Konstanten explizit in Ihrem Code deklarieren.

Konstante | Wert | Beschreibung
vbEmpty | 0 | Nicht initialisiert (Voreinstellung)
vbNull | 1 | Enthält keine gültigen Daten
vbInteger | 2 | Untertyp Integer
vbLong | 3 | Untertyp Long
vbSingle | 4 | Untertyp Single
vbSingle | 5 | Untertyp Double
vbCurrency | 6 | Untertyp Currency
vbDate | 7 | Untertyp Date
vbString | 8 | Untertyp String
vbObject | 9 | Objekt
vbError | 10 | Untertyp Error
vbBoolean | 11 | Untertyp Boolean
vbVariant | 12 | Variant (nur für Variant-Arrays)
vbDataObject | 13 | Datenzugriffsobjekt
vbDecimal | 14 | Untertyp Decimal
vbByte | 17 | Untertyp Byte
VbArray | 8192 | Array

Anforderungen

Version 2

Siehe auch

Datums- und Uhrzeitkonstanten | Datumsformat-Konstanten | Farbkonstanten | MsgBox-Konstanten | Tristate-Konstanten | Vergleichskonstanten | Verschiedene Konstanten | Zeichenfolgenkonstanten


Fehler

In diesem Abschnitt

VBScript-Laufzeitfehler

VBScript-Syntaxfehler

Verwandte Abschnitte

© 2001 Microsoft Corporation. Alle Rechte vorbehalten.

Build: Thema-Version 5.6.9309.1546


VBScript-Laufzeitfehler

VBScript-Laufzeitfehler sind Fehler, die dann entstehen, wenn das VBScript-Skript versucht, eine Aktion durchzuführen, die das System jedoch nicht ausführen kann. VBScript-Laufzeitfehler treten während der Ausführung des Skripts auf, wenn unterschiedliche Ausdrücke ausgewertet werden und der Arbeitsspeicher dynamisch zugewiesen wird.

Fehlernummer | Beschreibung
429 | ActiveX-Komponente kann kein Objekt erstellen
17 | Angeforderte Operation kann nicht durchgeführt werden
449 | Argument ist nicht optional
448 | Benanntes Argument nicht gefunden
432 | Datei- oder Klassenname während der Automatisierungsoperation nicht gefunden
10 | Array ist unveränderlich oder momentan gesperrt
462 | Der Remote-Server-Computer existiert nicht oder ist nicht verfügbar
458 | Die Variable verwendet einen Automatisierungstyp, der von VBScript nicht unterstütztwird
11 | Division durch Null
5020 | Erwartet ')' in regulärem Ausdruck
5019 | Erwartet ']' in regulärem Ausdruck
450 | Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung
48 | Fehler beim Laden einer DLL
92 | For-Schleife nicht initialisiert
9 | Index außerhalb des gültigen Bereichs
51 | Interner Fehler
506 | Klasse nicht definiert
430 | Klasse unterstützt keine Automatisierung
7 | Nicht genügend Speicher
28 | Nicht genügend Stapelspeicher
14 | Nicht genügend Zeichenfolgenspeicher
424 | Objekt erforderlich
451 | Objekt ist keine Auflistung
504 | Objekt nicht sicher für Erstellung
503 | Objekt nicht sicher für Initialisierung
502 | Objekt nicht sicher für Skriptverarbeitung
447 | Objekt unterstützt die aktuelle Ländereinstellung nicht
445 | Objekt unterstützt diese Aktion nicht
438 | Objekt unterstützt diese Eigenschaft oder Methode nicht
91 | Objektvariable nicht gesetzt
507 | Schwerwiegender Ausnahmefehler aufgetreten
35 | Sub- oder Function-Prozedur nicht definiert
5017 | Syntaxfehler in regulärem Ausdruck
13 | Typen unverträglich
6 | Überlauf
5018 | Unerwarteter Quantifizierer
5008 | Ungültige Zuweisung
5021 | Ungültiger Bereich in Zeichensatz
5 | Ungültiger Prozeduraufruf oder ungültiges Argument
481 | Ungültiges Bild
94 | Unzulässige Verwendung von Null
505 | Unzulässiger oder nicht ausreichend definierter Verweis
500 | Variable ist nicht definiert

VBScript-Syntaxfehler


VBScript-Syntaxfehler

VBScript-Syntaxfehler sind Fehler, die dann entstehen, wenn die Struktur einer der VBScript-Anweisungen gegen eine oder mehrere grammatikalische Regeln der VBScript-Skriptsprache verstößt. VBScript-Syntaxfehler treten während der Programmkompilierungsphase auf, bevor die Ausführung des Programms gestartet wird.

Fehlernummer | Beschreibung
1005 | '(' erwartet
1006 | ')' erwartet
1011 | '=' erwartet
1024 | Anweisung erwartet
1025 | Anweisungsende erwartet
1023 | Ausdruck erwartet
1044 | Beim Aufrufen einer Unterroutine dürfen keine Klammern verwendet werden
1010 | Bezeichner erwartet
1030 | Bezeichner zu lang
1021 | 'Case' erwartet
1047 | 'Class' erwartet
1053 | 'Class initialize' oder 'Class terminate' haben keine Argumente
1057 | 'Default'-Spezifikation muss auch 'Public' bestimmen
1058 | 'Default'-Spezifikation nur für 'Property Get' möglich
1051 | Die Anzahl der Argumente muss in den Spezifikationen der Eigenschaften konsistent sein
1052 | Eine Klasse kann nicht mehrere Standard-Eigenschaften/-Methoden enthalten
1014 | 'End' erwartet
1015 | 'Function' erwartet
1026 | Ganzzahlige Konstante erwartet
1012 | 'If' erwartet
1046 | 'In' erwartet
1049 | 'Let' oder 'Set' oder 'Get' in Eigenschaftsdeklaration erwartet
1045 | Literalkonstante erwartet
1019 | 'Loop' erwartet
1038 | 'Loop' ohne 'Do'
1042 | Muss die erste Anweisung in der Zeile sein
1048 | Muss innerhalb einer Klasse definiert sein
1041 | Name erneut definiert
1020 | 'Next' erwartet
1015 | Nicht abgeschlossene Zeichenfolgenkonstante
1055 | Nicht erwartet: 'Next'
1001 | Nicht genügend Speicher
1050 | 'Property' erwartet
1054 | Property 'Set' oder 'Let' muss mindestens ein Argument enthalten
1022 | 'Select' erwartet
1016 | 'Sub' erwartet
1002 | Syntaxfehler
1017 | 'Then' erwartet
1013 | 'To' erwartet
1039 | Ungültige 'Exit'-Anweisung
1040 | Ungültige Steuervariable für 'For'-Schleife
1037 | Ungültige Verwendung des Schlüsselwortes 'Me'
1013 | Ungültige Zahl
1014 | Ungültiges Zeichen
1018 | 'Wend' erwartet
1027 | 'While' oder 'Until' erwartet
1028 | 'While,' 'Until,' oder Anweisungsende erwartet
1029 | 'With' erwartet

VBScript-Laufzeitfehler


Ereignisse (VBScript)

Visual Basic Scripting Edition

Ereignisse

In diesem Abschnitt

Initialize-Ereignis

Terminate-Ereignis

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Initialize-Ereignis

Tritt auf, wenn eine Instanz der zugeordneten Klasse erstellt wird.

Private Sub Class_Initialize()
   Anweisungen
End Sub

Der Anweisungen-Teil besteht aus ein oder mehreren Programmieranweisungen, die bei der Initialisierung der Klasse ausgeführt werden.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung des Initialize-Ereignisses.

Class TestKlasse
   Private Sub Class_Initialize   ' Initialize-Ereignis einrichten.
      MsgBox("TestKlasse wird ausgeführt")
   End Sub
   Private Sub Class_Terminate   ' Terminate-Ereignis einrichten.
      MsgBox("TestKlasse beendet")
   End Sub
End Class

Set X = New TestKlasse   ' Neue Instanz von TestKlasse erstellen.
Set X = Nothing   ' Instanz freigeben.

Anforderungen

Version 5

Siehe auch

Class-Anweisung | Class-Objekt | Terminate-Ereignis

Betrifft: Class-Objekt


Terminate-Ereignis

Tritt auf, wenn die Instanz einer zugewiesenen Klasse beendet wird.

Private Sub Class_Terminate()
   Anweisungen
End Sub

Der Anweisungen-Teil besteht aus ein oder mehreren Programmieranweisungen, die bei der Initialisierung der Klasse ausgeführt werden.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung des Terminate-Ereignisses.

Class TestKlasse
   Private Sub Class_Initialize   ' Initialize-Ereignis einrichten.
      MsgBox("TestKlasse wird ausgeführt")
   End Sub
   Private Sub Class_Terminate   ' Terminate-Ereignis einrichten.
      MsgBox("TestKlasse beendet")
   End Sub
End Class
Set X = New TestKlasse   ' Neue Instanz von TestKlasse erstellen.
Set X = Nothing   ' Instanz freigeben.

Anforderungen

Version 5

Siehe auch

Class-Anweisung | Class-Objekt | Initialize-Ereignis

Betrifft: Class-Objekt


Funktionen

Die folgende Tabelle enthält die Funktionen von VBScript.

Abs | Array | Asc | Atn
CBool | CByte | CCur | CDate
CDbl | Chr | CInt | CLng
Konvertierungsfunktionen | Cos | CreateObject | CSng
Date | DateAdd | DateDiff | DatePart
DateSerial | DateValue | Day | Abgeleitete mathematische Funktionen
Eval | Exp | Filter | FormatCurrency
FormatDateTime | FormatNumber | FormatPercent | GetLocale
GetObject | GetRef | Hex | Hour
InputBox | InStr | InStrRev | Int, Fixs
IsArray | IsDate | IsEmpty | IsNull
IsNumeric | IsObject | Join | LBound
LCase | Left | Len | LoadPicture
Log | LTrim, RTrim und Trim | Mathematische Funktionen | Mid
Minute | Month | MonthName | MsgBox
Now | Oct | Replace | RGB
Right | Rnd | Round | ScriptEngine
ScriptEngineBuildVersion | ScriptEngineMajorVersion | ScriptEngineMinorVersion | Second
SetLocale | Sgn | Sin | Space
Split | Sqr | StrComp | String
Tan | Time | Timer | TimeSerial
TimeValue | TypeName | UBound | UCase
VarType | Weekday | WeekdayName | Year

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Abs-Funktion

Gibt den Absolutwert einer Zahl zurück.

Abs(Zahl)

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein. Wenn Zahl den Wert Null enthält, wird Null zurückgegeben. Wenn die Variable nicht initialisiert ist, wird der Wert Null (0) zurückgegeben.

Hinweise

Der Absolutwert einer Zahl ist der positive Betrag der Zahl. Sowohl Abs(-1) als auch Abs(1) geben z. B. den Wert 1 zurück.

Das folgende Beispiel verwendet die Abs-Funktion, um den Absolutwert einer Zahl zu errechnen:

Dim MeineZahl
MeineZahl = Abs(50.3)   ' gibt 50,3 zurück.
MeineZahl = Abs(-50.3)  ' gibt 50,3 zurück.

Anforderungen

Version 1

Sgn-Funktion


Array-Funktion

Gibt einen Wert vom Typ Variant zurück, der ein Array enthält.

Array(Argumentliste)

Der erforderliche Parameter Argumentliste ist eine kommagetrennte Reihe von Werten, die den Arrayelementen in der Variant-Variablen zugewiesen werden. Werden keine Argumente angegeben, wird ein Array mit der Länge 0 erzeugt.

Hinweise

Die Notation zum Verweisen auf Elemente eines Arrays besteht aus dem Variablennamen, gefolgt von einer in Klammern stehenden Indexzahl für das betreffende Element. Im folgenden Beispiel erzeugt die erste Anweisung eine Variable A. Die zweite Anweisung weist der Variablen A ein Array zu. Die letzte Anweisung weist den Wert des zweiten Arrayelements einer anderen Variablen zu.

Dim A
A = Array(10,20,30)
B = A(2)   ' B ist jetzt 30.
Anmerkung Eine Variable, die nicht als Array deklariert ist, kann dennoch ein Array enthalten. Obwohl eine Variant-Variable, die ein Array enthält, sich konzeptionell von einer Variant-Elemente enthaltenden Arrayvariablen unterscheidet, wird auf die Elemente der Arrays auf dieselbe Weise zugegriffen.

Anforderungen

Version 2

Dim-Anweisung


Asc-Funktion

Gibt den ANSI-Zeichencode zurück, der dem ersten Buchstaben in einer Zeichenfolge entspricht.

Asc(Zeichenfolge)

Das Argument Zeichenfolge ist ein beliebiger gültiger Zeichenfolgenausdruck. Wenn Zeichenfolge keine Zeichen enthält, tritt ein Laufzeitfehler auf.

Hinweise

Im folgenden Beispiel gibt Asc den ANSI-Zeichencode des jeweiligen ersten Buchstabens einer Zeichenfolge zurück:

Dim EineZahl
EineZahl = Asc("A")       ' gibt 65 zurück.
EineZahl = Asc("a")       ' gibt 97 zurück.
EineZahl = Asc("Apfel")   ' gibt 65 zurück.
Anmerkung Die AscB-Funktion wird für Daten vom Typ Byte in einer Zeichenfolge verwendet. Statt den Zeichencode für das erste Zeichen zurückzugeben, gibt AscB das erste Byte zurück. AscW ist für 32-Bit-Plattformen vorgesehen, die Unicode-Zeichen verwenden. Sie gibt den Unicode-Zeichencode (wide) zurück, wodurch die Konvertierung von Unicode in ANSI entfällt.

Anforderungen

Version 1

Chr-Funktion


Atn-Funktion

Gibt den Arkustangens einer Zahl zurück.

Atn(Zahl)

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein.

Hinweise

Die Atn-Funktion berechnet aus dem Verhältnis von zwei Seiten eines rechtwinkligen Dreiecks (Zahl) den zugehörigen Winkel im Bogenmaß. Der Quotient ist das Längenverhältnis von Gegenkathete zu Ankathete. Der Wertebereich des Ergebnisses reicht von -pi/2 bis pi/2 (Bogenmaß).

Zur Umrechnung von Grad ins Bogenmaß muss die Gradangabe mit pidefpivbs/180 multipliziert werden. Zur Umrechnung von Bogenmaß in Grad muss das Bogenmaß mit 180/pi multipliziert werden.

Das folgende Beispiel verwendet die Atn-Funktion, um den Wert von pi zu berechnen:

Dim pi
pi = 4 * Atn(1)   ' Berechnen des Wertes von pi.
Anmerkung Atn ist die Umkehrfunktion der trigonometrischen Funktion Tan. Diese berechnet aus dem im Argument angegebenen Winkel das Verhältnis der beiden Katheten eines rechtwinkligen Dreiecks. Verwechseln Sie Atn nicht mit dem Kotangens, der dem Kehrwert des Tangens (1/Tangens) entspricht.

Anforderungen

Version 1

Siehe auch

Abgeleitete mathematische Funktionen | Cos-Funktion | Sin-Funktion | Tan-Funktion


CBool-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Boolean konvertiert wurde.

CBool(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Wenn Ausdruck gleich Null ist, wird False zurückgegeben, ansonsten wird True zurückgegeben. Wenn Ausdruck nicht als numerischer Wert interpretiert werden kann, tritt ein Laufzeitfehler auf.

Das folgende Beispiel verwendet die CBool-Funktion, um einen Ausdruck in den Untertyp Boolean zu konvertieren. Wenn der Ausdruck einen Wert ungleich Null darstellt, gibt CBool True zurück; andernfalls False.

Dim A, B, Probe
A = 5: B = 5            ' Initialisieren der Variablen.
Probe = CBool(A = B)    ' Probe wird True zugewiesen.
A = 0                   ' Legt den Wert der Variablen fest.
Probe = CBool(A)        ' Probe wird False zugewiesen.

Anforderungen

Version 1

Siehe auch

CByte-Funktion | CCur-Funktion | CDate-Funktion | CDbl-Funktion | CInt-Funktion | CLng-Funktion | CSng-Funktion | CStr-Funktion


CByte-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Byte konvertiert wurde.

CByte(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um zu zeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Verwenden Sie beispielsweise CByte, um bytebezogene Berechnungen zu erzwingen, wenn normalerweise Berechnungen auf Basis von Währungsbeträgen, Werten einfacher oder doppelter Genauigkeit oder ganzzahligen Werten erfolgen würden.

Verwenden Sie die CByte-Funktion, um international gültige Umwandlungen von einem beliebigen anderen Datentyp in den Untertyp Byte vorzunehmen. So werden z. B.verschiedene vom Gebietsschema des Computers abhängige Dezimalzeichen ebenso erkannt wie unterschiedliche Tausendertrennzeichen.

Wenn Ausdruck außerhalb des zulässigen Bereichs für den Unterdatentyp Byte liegt, tritt ein Fehler auf. Das folgende Beispiel verwendet die CByte-Funktion, um einen Ausdruck in den Untertyp Byte zu konvertieren:

Dim MeinDouble, MeinByte
MeinDouble = 125.5678           ' MeinDouble ist vom Typ Double.
MeinByte = CByte(MeinDouble)    ' MeinByte hat den Wert 126.

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CCur-Funktion | CDate-Funktion | CDbl-Funktion | CInt-Funktion | CLng-Funktion | CSng-Funktion | CStr-Funktion


CCur-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit Untertyp Currency konvertiert wurde.

CCur(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um anzuzeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Verwenden Sie z. B. Ccur, um Gleitkommaarithmetik in Fällen zu erzwingen, in denen sonst Ganzzahlarithmetik verwendet würde.

Die CCur-Funktion sollte zum Konvertieren von Daten in den Untertyp Currency nach den internationalen Normen verwendet werden. So werden zum Beispiel verschiedene vom Gebietsschema des Computers abhängige Dezimalzeichen ebenso erkannt wie unterschiedliche Tausendertrennzeichen.

Das folgende Beispiel verwendet die CCur-Funktion, um einen Ausdruck in den Untertyp Currency zu konvertieren:

Dim MeinDouble, MeinCurr
MeinDouble = 543.214588           ' MeinDouble ist vom Typ Double.
MeinCurr = CCur(MeinDouble * 2)   ' Konvertiert das Ergebnis von MeinDouble * 2 (1086,429176) in den Typ Currency (1086,4292).

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CByte-Funktion | CDate-Funktion | CDbl-Funktion | CInt-Funktion | CLng-Funktion | CSng-Funktion | CStr-Funktion


CDate-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Date konvertiert wurde.

CDate(Datum)

Das Argument Datum ist ein beliebiger zulässiger Datumsausdruck.

Hinweise

Mit der IsDate-Funktion können Sie bestimmen, ob Datum in ein Datum oder eine Uhrzeit umgewandelt werden kann. CDate erkennt sowohl Datumsliterale und Zeitliterale als auch bestimmte Zahlen, die im zulässigen Bereich für ein Datum liegen. Beim Umwandeln einer Zahl in ein Datumsformat wird der ganzzahlige Teil für das Datum verwendet. Nachkommastellen der Zahl werden in eine Tageszeit (beginnend bei 0:00) umgewandelt.

CDate erkennt alle Datumsformate, die im Gebietsschema des Systems ausgewählt werden können. Die richtige Reihenfolge von Tag, Monat und Jahr kann nicht immer bestimmt werden, wenn sich das Datumsformat von den im Gebietsschema verfügbaren Formaten unterscheidet. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch eine Zeichenfolge für den Wochentag enthält.

Das folgende Beispiel verwendet die CDate-Funktion, um eine Zeichenfolge in ein Datum zu konvertieren. Im Allgemeinen wird das feste Kodieren von Datums- und Uhrzeitangaben als Zeichenfolgen (wie in diesem Beispiel) nicht empfohlen. Verwenden Sie stattdessen Datums- und Zeitliterale (z. B. #14/06/1962#, #16:45:23#).

MeinDate = "30 April 1961"        ' Legt das Datum fest.
MeinShortDate = CDate(MeinDate)   ' Konvertierung zum Datentyp Date.
MeinTime = "16:35:47"             ' Legt die Uhrzeit fest.
MeinShortTime = CDate(MeinTime)   ' Konvertierung zum Datentyp Date.

Anforderungen

Version 1

IsDate-Funktion


CDbl-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Double konvertiert wurde.

CDbl(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um anzuzeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Mit CDbl oder CSng können Sie zum Beispiel Berechnungen mit Werten einfacher oder doppelter Genauigkeit durchführen, die normalerweise Währungswerte oder ganzzahlige Werte verwenden würden.

Verwenden Sie die CDbl-Funktion, um international gültige Umwandlungen eines beliebigen Datentyps in den Untertyp Double zu ermöglichen. So werden zum Beispiel verschiedene vom Gebietsschema des Computers abhängige Dezimalzeichen ebenso erkannt wie unterschiedliche Tausendertrennzeichen.

Dieses Beispiel verwendet die CDbl-Funktion, um einen Ausdruck in den Untertyp Double zu konvertieren.

Dim MeinCurr, MeinDouble
MeinCurr = CCur(234.456784)                ' MeinCurr ist vom Typ Currency (234,4567).
MeinDouble = CDbl(MeinCurr * 8.2 * 0.01)   ' Konvertiert das Ergebnis in einen Double-Typ (19,2254576).

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CByte-Funktion | CCur-Funktion | CDate-Funktion | CInt-Funktion | CLng-Funktion | CSng-Funktion | CStr-Funktion


Chr-Funktion

Gibt das dem ANSI-Zeichencode entsprechende Zeichen zurück.

Chr(Zeichencode)

Das Argument Zeichencode ist eine Zahl, die ein Zeichen festlegt.

Hinweise

Die Zahlen von 0 bis 31 entsprechen den (nicht darstellbaren) Standard-ASCII-Codes. Chr(10) gibt zum Beispiel ein Zeilenvorschubzeichen zurück.

Das folgende Beispiel verwendet die Chr-Funktion, um das Zeichen mit dem angegebenen Zeichencode zurückzugeben:

Dim MeinChr
MeinChr = Chr(65)   ' Gibt A zurück.
MeinChr = Chr(97)   ' Gibt a zurück.
MeinChr = Chr(62)   ' Gibt > zurück.
MeinChr = Chr(37)   ' Gibt % zurück.
Anmerkung Eine andere Funktion (ChrB) wird für Byte-Daten verwendet, die in einer Zeichenfolge enthalten sind. Anstelle eines Zeichens, das aus einem oder zwei Bytes bestehen kann, gibt ChrB immer ein einzelnes Byte zurück.ChrW ist für 32-Bit-Plattformen vorgesehen, die Unicode-Zeichen verwenden. Ihr Argument ist ein Unicode-Zeichencode (wide), wodurch die Konvertierung von ANSI in Unicode vermieden wird.

Anforderungen

Version 1

Asc-Funktion


CInt-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Integer konvertiert wurde.

CInt(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um anzuzeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Mit CInt oder CLng können Sie zum Beispiel Berechnungen mit ganzzahligen Werten durchführen, die normalerweise Währungswerte oder Werte mit einfacher oder doppelter Genauigkeit verwenden würden.

Verwenden Sie die CInt-Funktion, um international gültige Umwandlungen eines beliebigen Datentyps in den Untertyp Integer zu ermöglichten. So werden zum Beispiel verschiedene vom Gebietsschema des Computers abhängige Dezimalzeichen ebenso erkannt wie unterschiedliche Tausendertrennzeichen.

Wenn Ausdruck außerhalb des zulässigen Bereichs für den Unterdatentyp Integer liegt, tritt ein Fehler auf.

Das folgende Beispiel verwendet die CInt-Funktion, um einen Wert zu einem Integer-Wert zu konvertieren:

Dim MeinDouble, MeinInt
MeinDouble = 2345.5678        ' MeinDouble ist vom Typ Double.
MeinInt = CInt(MeinDouble)    ' MeinInt hat den Wert 2346.
Anmerkung CInt unterscheidet sich von den Funktionen Fix und Int, welche die Nachkommastellen einer Zahl abschneiden anstatt die Zahl zu runden. Ist der Nachkommateil einer Zahl genau gleich 0,5, rundet die CInt-Funktion immer auf die nächste gerade Zahl. So wird zum Beispiel 0,5 auf 0 gerundet, während 1,5 auf 2 gerundet wird.

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CByte-Funktion | CCur-Funktion | CDate-Funktion | CDbl-Funktion | CLng-Funktion | CSng-Funktion | CStr-Funktion | Int-, Fix-Funktionen


CLng-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Long konvertiert wurde.

CLng(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um anzuzeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Mit CInt oder CLng können Sie zum Beispiel Berechnungen mit ganzzahligen Werten durchführen, die normalerweise Währungswerte oder Werte mit einfacher oder doppelter Genauigkeit verwenden würden.

Verwenden Sie die CLng-Funktion, um international gültige Umwandlungen eines beliebigen Datentyps in den Untertyp Long zu ermöglichen. So werden zum Beispiel verschiedene vom Gebietsschema des Computers abhängige Dezimalzeichen ebenso erkannt wie unterschiedliche Tausendertrennzeichen.

Wenn Ausdruck außerhalb des zulässigen Bereichs für den Unterdatentyp Long liegt, tritt ein Fehler auf.

Das folgende Beispiel verwendet die CLng-Funktion, um einen Wert in einen Long-Wert zu konvertieren:

Dim MeinWert1, MeinWert2, MeinLong1, MeinLong2
MeinWert1 = 25427.45: MeinWert2 = 25427.55   ' MeinWert1, MeinWert2 sind vom Typ Double.
MeinLong1 = CLng(MeinWert1)   ' MeinLong1 hat den Wert 25427.
MeinLong2 = CLng(MeinWert2)   ' MeinLong2 hat den Wert 25428.
Anmerkung CLng unterscheidet sich von den Funktionen Fix und Int, welche die Nachkommastellen einer Zahl abschneiden, anstatt die Zahl zu runden. Ist der Nachkommateil einer Zahl genau gleich 0,5, rundet dieCLng-Funktion immer auf die nächste gerade Zahl. So wird zum Beispiel 0,5 auf 0 gerundet, während 1,5 auf 2 gerundet wird.

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CByte-Funktion | CCur-Funktion | CDate-Funktion | CDbl-Funktion | CInt-Funktion | CSng-Funktion | CStr-Funktion | Int-, Fix-Funktionen


Konvertierungsfunktionen

Asc-Funktion

CBool-Funktion

CByte-Funktion

CCur-Funktion

CDate-Funktion

CDbl-Funktion

Chr-Funktion

CInt-Funktion

CLng-Funktion

CSng-Funktion

CStr-Funktion

Hex-Funktion

Oct-Funktion


Cos-Funktion

Berechnet den Kosinus eines Winkels.

Cos(Zahl)

Das Argument Zahl kann ein beliebiger numerischer Ausdruck sein, der einen Winkel im Bogenmaß angibt.

Hinweise

Die Cos-Funktion berechnet das Verhältnis von zwei Seiten eines rechtwinkligen Dreiecks aus einem Winkel. Das Verhältnis ergibt sich aus der Länge der Ankathete dividiert durch die Länge der Hypotenuse. Das Ergebnis liegt im Bereich von -1 bis 1.

Zur Umrechnung von Grad ins Bogenmaß muss die Gradangabe mit pi/180 multipliziert werden. Zur Umrechnung von Bogenmaß in Grad muss das Bogenmaß mit 180/pi multipliziert werden.

Das folgende Beispiel verwendet die Cos-Funktion, um den Sekans eines Winkels zu berechnen:

Dim MeinWinkel, MeinSekans
MeinWinkel = 1.3                   ' Legt einen Winkel im Bogenmaß fest.
MeinSekans = 1 / Cos(MeinWinkel)   ' Berechnen des Sekans.

Anforderungen

Version 1

Siehe auch

Abgeleitete mathematische Funktionen | Atn-Funktion | Sin-Funktion | Tan-Funktion


CreateObject-Funktion

Erstellt ein Automatisierungsobjekt und gibt einen Verweis darauf zurück.

CreateObject(Servername.Klassenname [, Speicherort])

Argumente

Servername
Erforderlich. Der Name der Anwendung, die das Objekt bereitstellt.
Klassenname
Erforderlich. Der Typ oder die Klasse des zu erstellenden Objekts.
Speicherort
Optional. Der Name des Netzwerkservers, auf dem das Objekt erstellt werden soll.

Hinweise

Alle Automatisierungsserver stellen mindestens einen Objekttyp zur Verfügung. Eine Textverarbeitung kann beispielsweise ein Anwendungsobjekt, ein Dokumentobjekt und ein Symbolleistenobjekt bereitstellen.

Sie erstellen ein Automatisierungsobjekt, indem Sie das Objekt, das von CreateObject zurückgegeben wird, einer Objektvariablen zuweisen:

Dim ExcelTabelle
Set ExcelTabelle = CreateObject("Excel.Sheet")

Der Code startet die Anwendung, die das Objekt erstellt (in diesem Fall eine Microsoft Excel-Tabelle). Anschließend können Sie aus dem Code mit der von Ihnen festgelegten Objektvariablen auf das Objekt zugreifen. In diesem Beispiel können Sie auf Eigenschaften und Methoden des neuen Objekts mit der Objektvariablen ExcelTabelle und auf Eigenschaften und Methoden anderer Excel-Objekte wie dem Application-Objekt und der ActiveSheet.Cells-Auflistung zugreifen:

' Excel über das Application-Objekt sichtbar machen.
ExcelTabelle.Application.Visible = True
' Text in die ersten Zelle der Tabelle einfügen.
ExcelTabelle.ActiveSheet.Cells(1,1).Value = "Das ist Spalte A, Zeile 1"
' Tabelle speichern.
ExcelTabelle.SaveAs "C:\Eigene Dateien\TEST.XLS"
' Excel über die Quit-Methode des Application-Objekts beenden.
ExcelTabelle.Application.Quit
' Objektvariable freigeben.
Set ExcelTabelle = Nothing

Das Erstellen von Objekten auf einem Remoteserver kann nur durchgeführt werden, wenn die Internetsicherheit deaktiviert wurde. Sie können ein Objekt auf einem entfernten Netzwerkcomputer erstellen, indem Sie den Computernamen an das Argument Servername von CreateObject übergeben. Dieser Name entspricht dem Computernamenteil im Freigabenamen. Bei der Netzwerkfreigabe "\\meinserver\public" ist der Servername "meinserver". Darüber hinaus können Sie auch den Servernamen unter Verwendung des DNS-Formats oder einer IP-Adresse angeben.

Der nachstehend aufgeführte Code gibt die Versionsnummer einer Excel-Instanz zurück, die auf dem entfernten Netzwerkcomputer "meinserver" ausgeführt wird:

Function VersionAnzeigen
   Dim XLApp
   Set XLApp = CreateObject("Excel.Application", "MeinServer")
   VersionAnzeigen = XLApp.Version
End Function

Ist der angegebene Remoteserver nicht vorhanden oder kann er nicht gefunden werden, wird eine Fehlermeldung generiert.

Anforderungen

Version 2

GetObject-Funktion


CSng-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp Single konvertiert wurde.

CSng(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um anzuzeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Mit CDbl oder CSng können Sie zum Beispiel Berechnungen mit Werten einfacher oder doppelter Genauigkeit durchführen, die normalerweise Währungswerte oder ganzzahlige Werte verwenden würden.

Verwenden Sie die CSng-Funktion, um international gültige Umwandlungen eines beliebigen Datentyps in den Untertyp Single zu ermöglichen. So werden zum Beispiel verschiedene vom Gebietsschema des Computers abhängige Dezimalzeichen ebenso erkannt wie unterschiedliche Tausendertrennzeichen.

Wenn Ausdruck außerhalb des zulässigen Bereichs für den Unterdatentyp Single liegt, tritt ein Fehler auf.

Das folgende Beispiel verwendet die CSng-Funktion, um einen Wert in den Untertyp Single zu konvertieren:

Dim MeinDouble1, MeinDouble2, MeinSingle1, MeinSingle2   ' MeinDouble1, MeinDouble2 sind vom Typ Double.
MeinDouble1 = 75.3421115: MeinDouble2 = 75.3421555
MeinSingle1 = CSng(MeinDouble1)   ' MeinSingle1 enthält den Wert 75,34211.
MeinSingle2 = CSng(MeinDouble2)   ' MeinSingle2 enthält den Wert 75,34216.

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CByte-Funktion | CCur-Funktion | Cdate-Funktion | CDbl-Funktion | CInt-Funktion | CLng-Funktion | CStr-Funktion


CStr-Funktion

Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant mit dem Untertyp String konvertiert wurde.

CStr(Ausdruck)

Das Argument Ausdruck ist ein beliebiger gültiger Ausdruck.

Hinweise

Sie können Code mithilfe der Funktionen zum Umwandeln von Datentypen dokumentieren, um anzuzeigen, dass das Ergebnis einer Operation einen bestimmten, vom Standarddatentyp abweichenden Datentyp haben soll. Verwenden Sie z. B. CStr, um zu erzwingen, dass das Ergebnis als String ausgedrückt wird.

Die CStr-Funktion sollte anstelle von Str verwendet werden, um Konvertierungen von Daten in den Untertyp Currency nach den internationalen Normen vorzunehmen. So werden beispielsweise in Abhängigkeit von den Einstellungen für das Gebietsschema des Computers verschiedene Dezimalzeichen erkannt.

Die Daten in Ausdruck legen die Rückgabewerte von CStr fest, wie in der folgenden Tabelle aufgeführt:

Datentyp von Ausdruck | Rückgabe von CStr
Boolean | Datentyp String mit dem Wert True oder False.
Date | Datentyp String mit Datum im kurzen Datumsformat Ihres Systems.
Null | Laufzeitfehler.
Empty | Eine leere Zeichenfolge vom Typ String ("").
Error | Eine Zeichenfolge vom Typ String mit dem Wort "Fehler" und der Fehlernummer.
Anderer numerischer Wert | Eine Zeichenfolge vom Typ String mit der Zahl.

Das folgende Beispiel verwendet die CStr-Funktion, um einen numerischen Wert in eine Zeichenfolge zu konvertieren:

Dim MeinDouble, MeinStr
MeinDouble = 437.324         ' MeinDouble ist vom Typ Double.
MeinStr = CStr(MeinDouble)   ' MeinStr enthält "437.324".

Anforderungen

Version 1

Siehe auch

CBool-Funktion | CByte-Funktion | CCur-Funktion | CDate-Funktion | CDbl-Funktion | CInt-Funktion | CLng-Funktion | CSng-Funktion


Date-Funktion

Gibt das aktuelle Systemdatum zurück.

Date

Hinweise

Das folgende Beispiel verwendet die Date-Funktion, um die aktuelle Systemzeit zurückzugeben:

Dim MeinDatum
MeinDatum = Date   ' MeinDatum enthält das aktuelle Systemdatum.

Anforderungen

Version 1

CDate-Funktion | Now-Funktion | Time-Funktion


DateAdd-Function

Gibt ein Datum zurück, zu dem ein angegebenes Zeitintervall addiert wurde.

DateAdd(Intervall, Anzahl, Datum)

Argumente

Intervall
Erforderlich. Zeichenfolgenausdruck für die Zeitspanne, die addiert werden soll. Gültige Werte werden im Abschnitt "Einstellungen" beschrieben.
Anzahl
Erforderlich. Numerischer Ausdruck für die Anzahl der Zeiträume, die Sie addieren möchten. Er kann entweder positiv für Daten in der Zukunft oder negativ für Daten in der Vergangenheit sein.
Datum
Erforderlich. Variant oder Literal für das Datum, zu dem Intervall addiert werden soll.

Einstellungen

Das Argument Intervall kann die folgenden Werte haben:

Einstellung | Beschreibung
yyyy | Jahr
q | Quartal
m | Monat
y | Tag im Jahr
d | Tag
w | Wochentag
ww | Woche im Jahr
h | Stunde
n | Minute
s | Sekunde

Hinweise

Mit der DateAdd-Funktion können Sie eine bestimmte Zeitspanne zu einem Datum addieren oder von einem Datum subtrahieren. Sie können mit DateAdd beispielsweise das Datum 30 Tage in der Zukunft oder die Zeit 45 Minuten in der Zukunft bestimmen. Um Tage zu Datum zu addieren, verwenden Sie den Tag des Jahres ("y"), den Tag ("d") oder den Wochentag ("w").

Von der Funktion DateAdd werden keine ungültigen Datumsangaben zurückgegeben. Im folgenden Beispiel wird ein Monat zum 31. Januar addiert:

NewDate = DateAdd("m", 1, "31-Jan-95")

In diesem Falle gibt DateAdd den Wert 28-Feb-95 zurück, nicht 31-Feb-95. Falls Datum den Wert 31-Jan-96 hat, wird der Wert 29-Feb-96 zurückgegeben, da 1996 ein Schaltjahr ist.

Liegt das berechnete Datum vor dem Jahr 100, wird ein Fehler ausgegeben.

Wenn Anzahl keine Zahl vom Typ Long ist, rundet die Funktion den Wert vor der Auswertung auf die nächste ganze Zahl.

Anforderungen

Version 2

DateDiff-Funktion | DatePart-Funktion


DateDiff-Funktion

Gibt den Zeitraum zwischen zwei Datumsangaben zurück.

DateDiff(Intervall, Datum1, Datum2 [,ErsterWochentag[,ErsteWocheimJahr]] )

Die Syntax der DateDiff-Funktion besteht aus folgenden Teilen:

Argumente

Intervall
Erforderlich. Zeichenfolgenausdruck für die Zeitspanne, die verwendet werden soll, um die Differenz zwischen Datum1 und Datum2 zu berechnen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
Datum1, Datum2
Erforderlich. Datumsausdrücke. Die beiden Datumsangaben zur Berechnung der Differenz.
ErsterWochentag
Optional. Konstante zur Angabe des Wochentags. Falls nicht angegeben, wird Sonntag als Wert angenommen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
ErsteWocheimJahr
Optional. Konstante zur Angabe der ersten Woche des Jahres. Falls nicht angegeben, wird die Woche mit dem 1. Januar angenommen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument Intervall kann die folgenden Werte haben:

Einstellung | Beschreibung
yyyy | Jahr
q | Quartal
m | Monat
y | Tag im Jahr
d | Tag
w | Wochentag
ww | Woche im Jahr
h | Stunde
n | Minute
s | Sekunde

Das Argument ErsterWochentag kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbUseSystemDayOfWeek | 0 | Einstellung der NLS (National Language Support)-API verwenden.
vbSunday | 1 | Sonntag (Standard)
vbMonday | 2 | Montag
vbTuesday | 3 | Dienstag
vbWednesday | 4 | Mittwoch
vbThursday | 5 | Donnerstag
vbFriday | 6 | Freitag
vbSaturday | 7 | Samstag

Das Argument ErsteWocheimJahr kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbUseSystem | 0 | Einstellung der NLS (National Language Support)-API verwenden.
vbFirstJan1 | 1 | Mit der Woche beginnen, in die der 1. Januar fällt (Standard).
vbFirstFourDays | 2 | Mit der Woche beginnen, die mindestens 4 Tage des neuen Jahres hat.
vbFirstFullWeek | 3 | Mit der ersten vollen Woche im neuen Jahr beginnen.

Hinweise

Verwenden Sie die DateDiff-Funktion, um die Anzahl der angegebenen Zeiträume zwischen zwei Datumsangaben zu bestimmen. Mit DateDiff können Sie zum Beispiel die Anzahl der Tage zwischen zwei Datumsangaben oder die Anzahl der Wochen zwischen dem heutigen Tag und dem Jahresende berechnen.

Zur Berechnung der Tage zwischen Datum1 und Datum2 können Sie entweder den Tag im Jahr ("y") oder einen Tag ("d") verwenden. Ist Intervall der Wochentag ("w"), gibt DateDiff die Anzahl der Wochen zwischen zwei Datumsangaben zurück. Fällt Datum1 auf einen Montag, zählt DateDiff die Anzahl der Montage bis zu Datum2. Datum2 wird einbezogen, Datum1 jedoch nicht. Ist Intervall dagegen die Woche im Jahr ("ww"), gibt die DateDiff-Funktion die Anzahl der Kalenderwochen zwischen den beiden Datumsangaben zurück. Die Anzahl der Sonntage zwischen Datum1 und Datum2 wird gezählt. DateDiff bezieht Datum2 in die Zählung ein, wenn Letzteres auf einen Sonntag fällt. Datum1 wird selbst dann nicht einbezogen, wenn es auf einen Sonntag fällt.

Bezieht sich Datum1 auf einen späteren Zeitpunkt als Datum2, gibt die DateDiff-Funktion einen negativen Wert zurück.

Das Argument ErsterWochentag wirkt sich auf Berechnungen aus, welche die Zeitraumsymbole "w" und "ww" verwenden.

Ist Datum1 oder Datum2 ein Datumsliteral, wird das angegebene Jahr ein permanenter Teil dieses Datums. Wird Datum1 oder Datum2 in Anführungszeichen (" ") eingeschlossen und das Jahr nicht angegeben, wird das laufende Jahr immer dann in den Code eingefügt, wenn der Ausdruck Datum1 oder Datum2 ausgewertet wird. Auf diese Weise können Sie Code schreiben, der unabhängig von der Jahreszahl verwendet werden kann.

Wenn Sie den 31. Dezember mit dem 1. Januar des unmittelbar darauf folgenden Jahres vergleichen, gibt DateDiff für Jahr ("yyyy") den Wert 1 zurück, obwohl nur ein Tag vergangen ist.

Das folgende Beispiel zeigt die Verwendung der DateDiff-Funktion, um die Anzahl der Tage zwischen einem gegebenen und dem heutigen Datum anzuzeigen:

Function Datumsunterschied(dasDatum)
   Datumsunterschied = "Tage ab heute: " & DateDiff("d", Now, dasDatum)
End Function

Anforderungen

Version 2

DateAdd-Funktion | DatePart-Funktion


DatePart-Funktion

Gibt den angegebenen Teil eines Datums zurück.

DatePart(Intervall, Datum [,ErsterWochentag[, ErsteWocheimJahr]])

Argumente

Intervall
Erforderlich. Zeichenfolgenausdruck für die Zeitspanne, die zurückgegeben werden soll. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
Datum
Erforderlich. Datumsausdruck, der ausgewertet werden soll.
ErsterWochentag
Optional. Konstante zur Angabe des Wochentags. Falls nicht angegeben, wird Sonntag als Wert angenommen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
ErsteWocheimJahr
Optional. Konstante zur Angabe der ersten Woche des Jahres. Falls nicht angegeben, wird die Woche mit dem 1. Januar angenommen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument Intervall kann die folgenden Werte haben:

Einstellung | Beschreibung
yyyy | Jahr
q | Quartal
m | Monat
y | Tag im Jahr
d | Tag
w | Wochentag
ww | Woche im Jahr
h | Stunde
n | Minute
s | Sekunde

Das Argument ErsterWochentag kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbUseSystemDayOfWeek | 0 | Einstellung der NLS (National Language Support)-API verwenden.
vbSunday | 1 | Sonntag (Standard)
vbMonday | 2 | Montag
vbTuesday | 3 | Dienstag
vbWednesday | 4 | Mittwoch
vbThursday | 5 | Donnerstag
vbFriday | 6 | Freitag
vbSaturday | 7 | Samstag

Das Argument ErsteWocheimJahr kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbUseSystem | 0 | Einstellung der NLS (National Language Support)-API verwenden.
vbFirstJan1 | 1 | Mit der Woche beginnen, in die der 1. Januar fällt (Standard).
vbFirstFourDays | 2 | Mit der Woche beginnen, die mindestens 4 Tage des neuen Jahres enthält.
vbFirstFullWeek | 3 | Mit der ersten vollen Woche im neuen Jahr beginnen.

Hinweise

Mit der DatePart-Funktion können Sie ein Datum auswerten und eine bestimmte Zeitspanne zurückgeben. Sie können mit DatePart zum Beispiel den Wochentag oder die aktuelle Stunde berechnen.

Das Argument ErsterWochentag wirkt sich auf Berechnungen aus, welche die Zeitraumsymbole "w" und "ww" verwenden.

Ist Datum ein Datumsliteral, wird das angegebene Jahr ein permanenter Teil dieses Datums. Wird Datum jedoch in Anführungszeichen (" ") eingeschlossen und das Jahr nicht angegeben, wird das laufende Jahr immer dann in den Code eingefügt, wenn der Ausdruck Datum ausgewertet wird. Auf diese Weise können Sie Code schreiben, der unabhängig von der Jahreszahl verwendet werden kann.

Dieses Beispiel zeigt die Verwendung der DatePart-Funktion, indem es das Quartal eines gegebenen Datums anzeigt.

Function QuartalAnzeigen(dasDatum)
   QuartalAnzeigen = DatePart("q", dasDatum)
End Function

Anforderungen

Version 2

DateAdd-Funktion | DateDiff-Funktion


DateSerial-Funktion

Gibt einen Wert vom Typ Variant mit dem Untertyp Date einer Tages-, Monats- oder Jahresangabe zurück.

DateSerial(Jahr, Monat, Tag)

Argumente

Jahr
Zahl im Bereich von 100 bis 9999 (je einschließlich) oder ein numerischer Ausdruck.
Monat
Beliebiger numerischer Ausdruck.
Tag
Beliebiger numerischer Ausdruck.

Hinweise

Wenn Sie ein Datum (zum Beispiel den 31. Dezember 1993) angeben, müssen sich die Werte für die Argumente von DateSerial im jeweils gültigen Bereich befinden, also im Bereich 1-31 für Tage und 1-12 für Monate. Alternativ können Sie einen relativen Wert für die einzelnen Argumente mit einem beliebigen numerischen Ausdruck angeben, der eine bestimmte Anzahl an Tagen, Monaten oder Jahren vor oder nach einem Datum angibt.

Das folgende Beispiel verwendet numerische Ausdrücke anstelle von absoluten Datumszahlen. Die DateSerial-Funktion gibt in diesem Fall das Datum für den Tag vor dem ersten Tag (1 - 1) des Monats zurück, der zwei Monate vor August (8 - 2) liegt, und zwar 10 Jahre vor dem Jahr 1990 (1990 - 10). Das Ergebnis ist der 31. Mai 1980.

Dim MeinDate1, MeinDate2
MeinDate1 = DateSerial(1970, 1, 1)   ' Gibt den 1. Januar 1970 zurück.
MeinDate2 = DateSerial(1990 - 10, 8 - 2, 1 - 1)   ' Gibt den 31. Mai 1980 zurück.

Für das Argument Jahr werden Werte zwischen 0 und 99 (je einschließlich) als die Jahre 1900-1999 angesehen. Für alle anderen Argumente in Jahr müssen alle vier Stellen der Jahreszahl angegeben werden (z. B. 1800).

Wenn ein Argument den normalen zulässigen Bereich für das Argument überschreitet, erfolgt ein Übertrag auf die nächstgrößere Einheit. Wenn Sie zum Beispiel 35 Tage angeben, wird dies als ein Monat und eine bestimmte Anzahl von Tagen interpretiert, wobei die Anzahl der Tage vom verwendeten Jahr abhängt. Wenn aber entweder eines der Argumente außerhalb des Bereichs -32.768 bis 32.767 oder das durch die drei Argumente (direkt oder durch einen Ausdruck) angegebene Datum außerhalb des zulässigen Bereichs liegt, tritt ein Fehler auf.

Anforderungen

Version 1

Siehe auch

Date-Funktion | DateValue-Funktion | Day-Funktion | Month-Funktion | Now-Funktion | TimeSerial-Funktion | TimeValue-Funktion | Weekday-Funktion | Year-Funktion


DateValue-Funktion

Gibt einen Wert vom Typ Variant mit dem Untertyp Date zurück.

DateValue(Datum)

Das Argument Datum ist normalerweise ein Zeichenfolgenausdruck, der ein Datum aus dem Bereich vom 1. Januar 100 bis 31. Dezember 9999 darstellt. Alternativ können Sie für Datum aber auch einen beliebigen Ausdruck angeben, der ein Datum und/oder eine Zeit aus diesem Bereich darstellen kann.

Hinweise

Wenn das Argument Datum eine Zeitangabe enthält, wird diese von DateValue nicht zurückgegeben. Wenn Datum jedoch eine ungültige Zeitangabe enthält (zum Beispiel "89:98"), tritt ein Fehler auf.

Wenn Datum eine Zeichenfolge ist, die nur durch gültige Datumstrennzeichen getrennte Zahlen enthält, wird von DateValue die Reihenfolge für Monat, Tag und Jahr entsprechend dem für das System festgelegten Format für kurze Datumsangaben angenommen. DateValue erkennt auch eindeutige Datumsangaben, die Monatsnamen sowohl in langer als auch in Kurzform enthalten. DateValue erkennt zum Beispiel neben 30.12.1993 und 30.12.93 auch 30. Dezember 1993 und 30. Dez 1993.

Wenn Sie das Jahr in Datum nicht angeben, verwendet DateValue das aktuelle Jahr aus dem Systemdatum des Computers.

Das folgende Beispiel verwendet die Funktion DateValue, um eine Zeichenfolge in ein Datum zu konvertieren. Sie können auch Datumsliterale verwenden, um ein Datum direkt einer Variant-Variablen zuzuweisen. Beispiel: MeinDatum = #9/11/63#.

Dim MeinDatum
MeinDatum = DateValue("11. September 1963")   ' Gibt ein Datum zurück.

Anforderungen

Version 1

Siehe auch

CDate-Funktion | DateSerial-Funktion | Day-Funktion | Month-Funktion | Now-Funktion | TimeSerial-Funktion | TimeValue-Funktion | Weekday-Funktion | Year-Funktion


Day-Funktion

Gibt den Tag des Monats als ganze Zahl im Bereich von 1 bis 31 zurück.

Day(Datum)

Das Argument Datum ist ein beliebiger Ausdruck, der ein Datum darstellen kann. Wenn Datum den Wert Null enthält, wird Null zurückgegeben.

Das folgende Beispiel verwendet die Day-Funktion, um den Tag in einem Monat eines bestimmten Datums zu ermitteln:

Dim EinTag
EinTag = Day("19. Oktober 1962")   ' EinTag enthält 19.

Anforderungen

Version 1

Siehe auch

Date-Funktion | Hour-Funktion | Minute-Funktion | Month-Funktion | Now-Funktion | Second-Funktion | Weekday-Funktion | Year-Funktion


Abgeleitete mathematische Funktionen

Im Folgenden werden die nicht integrierten mathematischen Funktionen aufgelistet, die von den integrierten mathematischen Funktionen abgeleitet werden können:

Funktion | Abgeleitete äquivalente Funktionen
Sekans | Sec(X) = 1 / Cos(X)
Kosekans | Cosec(X) = 1 / Sin(X)
Kotangens | Cotan(X) = 1 / Tan(X)
Arkussinus | Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Arkuskosinus | Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Arkussekans | Arcsec(X) = Atn(X / Sqr(X * X - 1)) +Sgn((X) - 1) *(2 * Atn(1))
Arkuskosekans | Arccosec(X) =Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
Arkuskotangens | Arccotan(X) = Atn(X) + 2 * Atn(1)
Sinus Hyperbol. | HSin(X) = (Exp(X) - Exp(-X)) / 2
Kosinus Hyperbol. | HCos(X) = (Exp(X) + Exp(-X)) / 2
Tangens Hyperbol. | HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) +Exp(-X))
Sekans Hyperbol. | HSec(X) = 2 / (Exp(X) + Exp(-X))
Kosekans Hyperbol. | HCosec(X) = 2 /(Exp(X) - Exp(-X))
Kotangens Hyperbol. | HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))
Arkussinus Hyperbol. | HArcsin(X) = Log(X + Sqr(X * X + 1))
Arkuskosinus Hyperbol. | HArccos(X) = Log(X + Sqr(X * X - 1))
Arkustangens Hyperbol. | HArctan(X) = Log((1 + X)/ (1 - X)) / 2
Arkussekans Hyperbol. | HArcsec(X) =Log((Sqr(-X * X + 1) + 1) / X)
Arkuskosekans Hyperbol. | HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X)
Arkuskotangens Hyperbol. | HArccotan(X) = Log((X + 1) / (X - 1)) / 2
Logarithmus zur Basis N | LogN(X) = Log(X) / Log(N)

Siehe auch

Atn-Funktion | Cos-Funktion | Exp-Funktion | Log-Funktion | Sin-Funktion | Sqr-Funktion | Tan-Funktion


Eval-Funktion

Wertet einen Ausdruck aus und gibt das Ergebnis zurück.

[Ergebnis = ]Eval(Ausdruck)

Argumente

Ergebnis
Optional. Variable, zu der die Rückgabezuweisung erfolgt. Wird Ergebnis nicht angegeben, sollten Sie die Execute-Anweisung verwenden.
Ausdruck
Erforderlich. Zeichenfolge, die einen gültigen VBScript-Ausdruck enthält.

Hinweise

In VBScript kann x = y auf zwei Arten interpretiert werden. Die erste Möglichkeit ist eine Zuweisungsanweisung, bei der der y-Wert x zugewiesen wird. Die zweite Interpretation ist ein Ausdruck, der überprüft, ob x und y den gleichen Wert haben. In diesem Fall wird Ergebnis der Wert True zugewiesen; sind sie nicht gleich, ist Ergebnis False. Die Eval-Funktion verwendet stets die zweite Interpretation, wohingegen bei der Execute-Anweisung die erste Interpretation verwendet wird.

Anmerkung Bei Microsoft® JScript™ besteht keine Verwechslungsgefahr zwischen Zuweisungen und Vergleichen, da Zuweisungsoperator (=) und Vergleichsoperator (==) unterschiedlich sind.

Das folgende Beispiel verdeutlicht die Verwendung der Eval-Funktion:

Sub ZahlAusdenken
   Dim Annahme, Zufallszahl
   Zufallszahl = Int((100) * Rnd(1) + 1)
   Annahme = CInt(InputBox("Geben Sie Ihre Annahme ein:",,0))
   Do
      If Eval("Annahme = Zufallszahl") Then
         MsgBox "Glückwunsch! Richtig geraten!"
         Exit Sub
      Else
         Annahme = CInt(InputBox("Leider nein! Versuchen Sie es noch einmal.",,0))
      End If
   Loop Until Annahme = 0
End Sub

Anforderungen

Version 5

Execute-Anweisung


Exp-Funktion

Gibt e (die Basis des natürlichen Logarithmus) potenziert mit einer Zahl zurück.

Exp(Zahl)

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein.

Hinweise

Überschreitet Zahl den Wert 709,782712893, tritt ein Fehler auf. Die Konstante e entspricht ungefähr dem Wert 2,718282.

Anmerkung Die Exp-Funktion stellt die Umkehrfunktion zur Log-Funktion dar und wird manchmal als Antilogarithmus bezeichnet.

Das folgende Beispiel zeigt die Verwendung der Exp-Funktion, um eine Potenz zur Basis e zu berechnen:

Dim MeinWinkel, MeinHSin   ' Legt einen Winkel im Bogenmaß fest.
MeinWinkel = 1.3   ' Berechnet den Sinus Hyperbolicus
MeinHSin = (Exp(MeinWinkel) - Exp(-1 * MeinWinkel)) / 2

Anforderungen

Version 1

Abgeleitete mathematische Funktionen | Log-Funktion


Filter-Funktion

Gibt ein nullbasiertes Array zurück, das anhand bestimmter Filterkriterien einen Teilbereich eines Zeichenfolgen-Arrays enthält.

Filter(Zeichenfolgen, Wert[, Einschließen[, Vergleich]])

Argumente

Zeichenfolgen
Erforderlich. Eindimensionales Array aus Zeichenfolgen, das durchsucht werden soll.
Wert
Erforderlich. Zeichenfolge, nach der gesucht werden soll.
Einschließen
Optional. Optionaler boolescher Wert, der anzeigt, ob Teilzeichenfolgen zurückgegeben werden sollen, die Wert enthalten oder nicht enthalten. Ist Einschließen gleich True, gibt Filter die Teile des Arrays zurück, die Wert als Teilzeichenfolge enthalten. Ist Einschließen gleich False, gibt Filter die Teile des Arrays zurück, die Wert nicht als Teilzeichenfolge enthalten.
Vergleich
Optional. Numerischer Wert für die zu verwendende Art des Zeichenfolgenvergleichs. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument Vergleich kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Hinweise

Werden keine Übereinstimmungen mit Wert in Zeichenfolgen gefunden, gibt Filter ein leeres Array zurück. Ein Fehler tritt auf, wenn Zeichenfolgen den Wert Null hat oder kein eindimensionales Array ist.

Das von der Filter-Funktion zurückgegebene Array enthält nur so viele Elemente, wie zur Aufnahme der übereinstimmenden Elemente notwendig sind.

Das folgende Beispiel zeigt die Verwendung der Filter-Funktion, um ein Array nach der Zeichenfolge "Mon" zu durchsuchen:

Dim MeinIndex
Dim MeinArray(3)
MeinArray(0) = "Sonntag"
MeinArray(1) = "Montag"
MeinArray(2) = "Dienstag"
MeinIndex = Filter(MeinArray, "Mon") ' MeinIndex(0) enthält "Montag".

Anforderungen

Version 2

Replace-Funktion


FormatCurrency-Funktion

Gibt einen Ausdruck als Währungsbetrag zurück, der mit dem in der Systemsteuerung festgelegten Währungssymbol formatiert ist.

FormatCurrency(Ausdruck[, AnzDezimalstellen[, FührendeNull[, KlammernFürNegativeWerte[, ZiffernGruppieren]]]])

Argumente

Ausdruck
Erforderlich. Zu formatierender Ausdruck.
AnzDezimalstellen
Optional. Numerischer Wert, der angibt, wie viele Stellen rechts vom Dezimalkomma angezeigt werden. Die Voreinstellung lautet -1. Sie zeigt an, dass die Ländereinstellungen des Computers verwendet werden.
FührendeNull
Optional. Tristate-Konstante für die Anzeige von führenden Nullen bei Dezimalzahlen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
KlammernFürNegativeWerte
Optional. Tristate-Konstante für die Verwendung von Klammern bei negativen Werten. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
ZiffernGruppieren
Optional. Tristate-Konstante für die Gruppierung von Zahlen mit dem in den Ländereinstellungen des Computers angegebenen Trennzeichen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Die Argumente FührendeNull, KlammernFürNegativeWerte und ZiffernGruppieren haben folgende Werte:

Konstante | Wert | Beschreibung
TristateTrue | -1 | True
TristateFalse | 0 | False
TristateUseDefault | -2 | Ländereinstellungen des Computers verwenden.

Hinweise

Fehlende Werte durch Weglassen eines oder mehrerer optionaler Argumente werden aus den Ländereinstellungen des Computers übernommen. Die Position des Währungssymbols relativ zum Währungsbetrag wird durch die Ländereinstellungen des Computers bestimmt.

Anmerkung Die Position des Währungssymbols relativ zum Währungsbetrag wird durch die Ländereinstellungen des Computers bestimmt.

Das folgende Beispiel zeigt die Verwendung der FormatCurrency-Funktion, um einen Ausdruck als Währung zu formatieren und der Variablen MeinGeld zuzuweisen:

Dim MeinGeld
MeinGeld = FormatCurrency(1000)   ' MeinGeld enthält 1.000,00 DM.

Anforderungen

Version 2

Siehe auch

FormatDateTime-Funktion | FormatNumber-Funktion | FormatPercent-Funktion


FormatDateTime-Funktion

Gibt einen Ausdruck im Datums- oder Zeitformat zurück.

FormatDateTime(Datum[,Formatname])

Argumente

Datum
Erforderlich. Zu formatierender Datumsausdruck.
Formatname
Optional. Numerischer Wert zum Kennzeichnen des verwendeten Datum/Uhrzeit-Formats. Ohne Angabe dieses Wertes wird vbGeneralDate verwendet.

Einstellungen

Das Argument Formatname hat folgende Einstellungen:

Konstante | Wert | Beschreibung
vbGeneralDate | 0 | Anzeigen von Datum und/oder Uhrzeit. Gibt es einen Datumsanteil, wird dafür das kurze Datumsformat verwendet. Gibt es einen Zeitanteil, erfolgt die Anzeige mit dem langen Zeitformat. Wenn vorhanden, werden beide Teile angezeigt.
vbLongDate | 1 | Anzeigen eines Datums im langen Datumsformat Ihrer Ländereinstellungen.
vbShortDate | 2 | Anzeigen des Datums im kurzen Datumsformat Ihrer Ländereinstellungen.
vbLongTime | 3 | Anzeige einer Zeit im Format entsprechend den Ländereinstellungen des Computers.
vbShortTime | 4 | Anzeige einer Zeit im 24-Stunden-Format (hh:mm).

Hinweise

Das folgende Beispiel zeigt die Verwendung der FormatDateTime-Funktion, um einen Ausdruck mit dem langen Datumsformat zu formatieren und der Variablen MeinDatumZeit zuzuweisen:

Function AktuellesDatumLesen
   ' FormatDateTime formatiert das Datum als langes Datumsformat.
   AktuellesDatumLesen = FormatDateTime(Date, 1)
End Function

Anforderungen

Version 2

Siehe auch

FormatCurrency-Funktion | FormatNumber-Funktion | FormatPercent-Funktion


FormatNumber-Funktion

Gibt einen als Zahl formatierten Ausdruck zurück.

FormatNumber(Ausdruck[, AnzDezimalstellen[, FührendeNull[, KlammernFürNegativeWerte[, ZiffernGruppieren]]]])

Argumente

Ausdruck
Erforderlich. Zu formatierender Ausdruck.
AnzDezimalstellen
Optional. Numerischer Wert, der angibt, wie viele Stellen rechts vom Dezimalkomma angezeigt werden. Die Voreinstellung lautet -1. Sie zeigt an, dass die Ländereinstellungen des Computers verwendet werden.
FührendeNull
Optional. Tristate-Konstante für die Anzeige von führenden Nullen bei Dezimalzahlen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
KlammernFürNegativeWerte
Optional. Tristate-Konstante für die Verwendung von Klammern bei negativen Werten. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
ZiffernGruppieren
Optional. Tristate-Konstante für die Gruppierung von Zahlen mit dem in der Systemsteuerung des Computers angegebenen Trennzeichen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Die Argumente FührendeNull, KlammernFürNegativeWerte und ZiffernGruppieren haben folgende Werte:

Konstante | Wert | Beschreibung
TristateTrue | -1 | True
TristateFalse | 0 | False
TristateUseDefault | -2 | Ländereinstellungen des Computers verwenden.

Hinweise

Fehlende Werte durch Weglassen eines oder mehrerer optionaler Argumente werden aus den Ländereinstellungen des Computers übernommen.

Anmerkung Sämtliche Einstellungsinformationen stammen von der Registerkarte Zahlen im Dialogfeld Ländereinstellungen.

Das folgende Beispiel zeigt die Verwendung der FormatNumber-Funktion, um eine Zahl mit vier Dezimalstellen zu formatieren:

Function DemoZahlFormatieren
   Dim MeinWinkel, MeinSekans, MeineZahl
   MeinWinkel = 1.3   ' Legt einen Winkel im Bogenmaß fest.
   MeinSekans = 1 / Cos(MeinWinkel)   ' Berechnen des Sekans.
   DemoZahlFormatieren = FormatNumber(MeinSekans,4) ' Formatieren von MeinSekans mit vier Dezimalstellen.
End Function

Anforderungen

Version 2

Siehe auch

FormatCurrency-Funktion | FormatDateTime-Funktion | FormatPercent-Funktion


FormatPercent-Funktion

Gibt einen Ausdruck als Prozentangabe (multipliziert mit 100) und einem abschließenden %-Zeichen zurück.

FormatPercent(Ausdruck[, AnzDezimalstellen[, FührendeNull[, KlammernFürNegativeWerte[, ZiffernGruppieren]]]])

Die Syntax der FormatPercent-Funktion besteht aus folgenden Teilen:

Argumente

Ausdruck
Erforderlich. Zu formatierender Ausdruck.
AnzDezimalstellen
Optional. Numerischer Wert, der angibt, wie viele Stellen rechts vom Dezimalkomma angezeigt werden. Die Voreinstellung lautet -1. Sie zeigt an, dass die Ländereinstellungen des Computers verwendet werden.
FührendeNull
Optional. Tristate-Konstante für die Anzeige von führenden Nullen bei Dezimalzahlen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
KlammernFürNegativeWerte
Optional. Tristate-Konstante für die Verwendung von Klammern bei negativen Werten. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.
ZiffernGruppieren
Optional. Tristate-Konstante für die Gruppierung von Zahlen mit dem in der Systemsteuerung des Computers angegebenen Trennzeichen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Die Argumente FührendeNull, KlammernFürNegativeWerte und ZiffernGruppieren haben folgende Werte:

Konstante | Wert | Beschreibung
TristateTrue | -1 | True
TristateFalse | 0 | False
TristateUseDefault | -2 | Ländereinstellungen des Computers verwenden.

Hinweise

Fehlende Werte durch Weglassen eines oder mehrerer optionaler Argumente werden aus den Ländereinstellungen des Computers übernommen.

Anmerkung Sämtliche Einstellungsinformationen sind auf der Registerkarte Zahlen im Dialogfeld Ländereinstellungen enthalten.

Das folgende Beispiel zeigt die Verwendung der FormatPercent-Funktion, um einen Ausdruck als Prozentzahl zu formatieren:

Dim MeinProzent
MeinProzent = FormatPercent(2/32) ' MeinProzent enthält 6,25%.

Anforderungen

Version 2

Siehe auch

FormatCurrency-Funktion | FormatDateTime-Funktion | FormatNumber-Funktion


GetLocale-Funktion

Gibt den aktuellen Gebietsschema-ID-Wert zurück.

GetLocale()

Hinweise

Eine Ländereinstellung enthält verschiedene Benutzereinstellungsinformationen, die sich auf die Sprache, das Land bzw. die Region und kulturelle Konventionen des Benutzers beziehen. Die Ländereinstellung legt beispielsweise das Tastaturlayout, die alphabetische Sortierreihenfolge sowie die Formate für Datum, Uhrzeit, Zahlen und Währungen fest.

Der Rückgabewert kann ein beliebiger 32-Bit-Wert aus dem Gebietsschema-ID (LCID)-Diagramm sein:

Das folgende Beispiel veranschaulicht die Verwendung der GetLocale-Funktion. Um diesen Code zu verwenden, fügen Sie das gesamte Beispiel zwischen die <BODY>-Tags einer HTML-Standardseite ein.

Geben Sie ein Datum im britischen Datumsformat ein: <input type="text" id="UKDate" size="20"><p>
Hier ist die US-amerikanische Entsprechung: <input type="text" id="USdate" size="20"><p>
<input type="button" value="Convert" id="schaltflaeche1"><p>
Geben Sie einen Preis im deutschen Währungsformat ein: &nbsp; <input type="text" id="GermanNumber" size="20">
<p>
Hier ist die britische Entsprechung: <input type="text" id="USNumber" size="20"><p>
<input type="button" value="Convert" id="schaltflaeche2"><p>

<script language="vbscript">
Dim aktuellesGebietsschema
' Ruft die aktuelle Ländereinstellung ab
aktuellesGebietsschema = GetLocale

Sub schaltflaeche1_onclick
  Dim original
  original = SetLocale("en-gb")
  meindatum = CDate(UKDate.value)
  ' Internet Explorer setzt die Ländereinstellung immer auf US-Englisch; verwenden Sie also die
  ' aktuellesGebietsschema-Variable, um die Ländereinstellungen auf US-Englisch zu setzen
  original = SetLocale(aktuellesGebietsschema)
  USDate.value = FormatDateTime(meindatum,vbShortDate)
End Sub

Sub schaltflaeche2_onclick
  Dim original
  original = SetLocale("de")
  meinwert = CCur(GermanNumber.value)
  original = SetLocale("en-gb")
  USNumber.value = FormatCurrency(meinwert)
End Sub

</script>

SetLocale-Funktion | Gebietsschema-ID (LCID)-Diagramm


GetObject-Funktion (VBScript)

Visual Basic Scripting Edition

GetObject-Funktion

Gibt einen Verweis auf ein Automatisierungsobjekt aus einer Datei zurück.

GetObject([Pfadname] [, Klasse])

Argumente

Pfadname
Optional. Zeichenfolge. Der vollständige Pfad und Name der Datei, die das abzurufende Objekt enthält. Wird Pfadname weggelassen, ist Klasse erforderlich.
Klasse
Optional. Zeichenfolge. Klasse des Objekts.

Das Argument Klasse verwendet die Syntax AnwName.Objekttyp und besteht aus folgenden Teilen:

Argumente

AnwName
Erforderlich. Zeichenfolge. Name der Anwendung, die das Objekt zur Verfügung stellt.
Objekttyp
Erforderlich. Zeichenfolge. Typ oder Klasse des zu erzeugenden Objekts.

Hinweise

Verwenden Sie die GetObject-Funktion zum Zugreifen auf ein Automatisierungsobjekt aus einer Datei und Zuweisen des Objekts an eine Objektvariable. Verwenden Sie die Set-Anweisung, um der Objektvariablen das von GetObject zurückgegebene Objekt zuzuweisen. Beispiele:

Dim CADObjekt
Set CADObjekt = GetObject("C:\CAD\SCHEMA.CAD")

Wird dieser Code ausgeführt, startet die mit dem Pfadnamen verknüpfte Anwendung, und das Objekt in der angegebenen Datei wird aktiviert. Ist Pfadname eine Zeichenfolge mit der Länge 0 (""), gibt GetObject eine neue Objektinstanz vom angegebenen Typ zurück. Wird das Argument Pfadname nicht angegeben, gibt GetObject ein momentan aktives Objekt vom angegebenen Typ zurück. Existiert kein Objekt des angegebenen Typs, tritt ein Fehler auf.

Bei einigen Anwendungen können Sie einen Teil einer Datei aktivieren. Fügen Sie hinter dem Dateinamen ein Ausrufezeichen (!) gefolgt von der Zeichenfolge hinzu, die den Namen des zu aktivierenden Teils enthält. Weitere Informationen zum Erstellen dieser Zeichenfolge finden Sie in der Dokumentation der Anwendung, die das Objekt erstellt hat.

In einem Zeichenprogramm können z. B. mehrere Ebenen einer Zeichnung vorhanden sein, die in einer Datei gespeichert sind. Mit der folgenden Anweisung können Sie eine Ebene in einer Zeichnung mit dem Namen SCHEMA.CAD aktivieren:

Set EbenenObjekt= GetObject("C:\CAD\SCHEMA.CAD!Ebene3")

Wenn Sie die Objektklasse nicht angeben, werden die zu startende Anwendung und das zu aktivierende Objekt automatisch anhand des Dateinamens festgelegt. Einige Dateien unterstützen jedoch mehr als nur eine Objektklasse. Eine Zeichnung kann z. B. drei unterschiedliche Typen von Objekten unterstützen: ein Objekt "Anwendung", ein Objekt "Zeichnung" und ein Objekt "Symbolleiste". Alle drei Objekte befinden sich in derselben Datei. Um anzugeben, welches Objekt Sie in einer Datei aktivieren möchten, verwenden Sie das optionale Argument Klasse. Beispiele:

Dim MeinObjekt
Set MeinObjekt = GetObject("C:\ZEICHNUNGEN\BEISPIEL.DRW", "ERDICHTUNG.ZEICHNUNG")

Im vorhergehenden Beispiel ist ERDICHTUNG der Name des Zeichenprogramms und ZEICHNUNG einer der unterstützten Objekttypen. Sobald ein Objekt aktiviert ist, wird im Programm durch die von Ihnen definierte Objektvariable darauf verwiesen. Im letzten Beispiel greifen sie auf Eigenschaften und Methoden des neuen Objekts über die Objektvariable MeinObjekt zu. Beispiele:

MeinObjekt.Line 9, 90
MeinObjekt.InsertText 9, 100, "Hallo, Welt."
MeinObjekt.SaveAs "C:\ZEICHNUNGEN\BEISPIEL.DRW"
Anmerkung Verwenden Sie die GetObject-Funktion, wenn es eine aktuelle Instanz des Objekts gibt oder Sie das Objekt mit einer bereits geöffneten Datei erstellen möchten. Wenn es keine aktuelle Instanz gibt und Sie das Objekt nicht mit einer geöffneten Datei starten möchten, verwenden Sie die CreateObject-Funktion.

Wenn sich ein Objekt als Einzelinstanzobjekt registriert hat, wird nur eine einzige Instanz dieses Objekts erstellt, unabhängig davon, wie oft CreateObject ausgeführt wird. Bei einem Einzelinstanzobjekt gibt GetObject bei einem Syntaxaufruf mit der Nulllängenzeichenfolge ("") stets die gleiche Instanz zurück, und es tritt ein Fehler auf, wenn das Argument-Pfadname nicht angegeben wird.

Anforderungen

Version 5

CreateObject-Funktion


GetRef-Funktion

Gibt einen Verweis auf eine Prozedur zurück, die an ein Ereignis gebunden werden kann.

Set Objekt.Ereignisname = GetRef(ProzName)

Argumente

Objekt
Erforderlich. Name des Objekts, dem Ereignis zugeordnet ist.
Ereignisname
Erforderlich. Name des Ereignisses, an das die Funktion gebunden werden soll.
ProzName
Erforderlich. Zeichenfolge, die den Namen der Sub- oder Function-Prozedur enthält, die Ereignisname zugeordnet wird.

Hinweise

Die GetRef-Funktion ermöglicht die Verbindung einer VBScript-Prozedur (Function oder Sub) mit einem beliebigen Ereignis auf Ihren DHTML (Dynamic HTML)-Seiten. Das DHTML-Objektmodell stellt Informationen zu den für die verschiedenen Objekte verfügbaren Ereignissen bereit.

In anderen Skript- und Programmiersprachen wird die durch GetRef bereitgestellte Funktionalität als Funktionszeiger bezeichnet, d. h. sie zeigt auf die Adresse einer Prozedur, die beim Eintreten eines bestimmten Ereignisses ausgeführt werden soll.

Das folgende Beispiel verdeutlicht die Verwendung der GetRef-Funktion.

<SCRIPT LANGUAGE="VBScript">

Function TestRefLesen()
   Dim Info
   Info = "TestRefLesen Version 1.0"   & vbCrLf
   Info = Info & Chr(169) & " Ihre Firma 1999 "
   MsgBox Info
End Function

Set Window.Onload = GetRef("TestRefLesen")
</SCRIPT>

Anforderungen

Version 5

Function-Anweisung | Set-Anweisung | Sub-Anweisung


Hex-Funktion

Gibt eine Zeichenfolge mit der Hexadezimaldarstellung einer Zahl zurück.

Hex(Zahl)

Das Argument Zahl ist ein beliebiger gültiger Ausdruck.

Hinweise

Wenn Zahl keine ganze Zahl ist, rundet die Funktion den Wert vor der Auswertung auf die nächste ganze Zahl.

Wenn Zahl | Rückgabewert von Hex
Null | Null.
Leer | Null (0).
Andere Zahl | Bis zu acht hexadezimale Zeichen.

Sie können Hexadezimalzahlen direkt angeben, indem Sie vor eine Zahl im zulässigen Bereich die Zeichen &H setzen. &H10 entspricht zum Beispiel der Dezimalzahl 16 in Hexadezimaldarstellung.

Das folgende Beispiel zeigt die Verwendung der Hex-Funktion, um den Hexadezimalwert einer Zahl zurückzugeben:

Dim MeineHex
MeineHex = Hex(5)   ' Gibt 5 zurück.
MeineHex = Hex(10)   ' Gibt A zurück.
MeineHex = Hex(459)   ' Gibt 1CB zurück.

Anforderungen

Version 1

Oct-Funktion


Hour-Funktion

Gibt eine ganze Zahl im Bereich von 0 bis 23 zurück, die die Stunde des Tages darstellt.

Hour(Uhrzeit)

Das Argument Uhrzeit ist ein beliebiger Ausdruck, der eine Uhrzeit darstellen kann. Wenn Uhrzeit den Wert Null enthält, wird Null zurückgegeben.

Das folgende Beispiel zeigt die Verwendung der Hour-Funktion, um die Stunde der aktuellen Zeit zurückzugeben:

Dim MeineZeit, MeineStunde
MeineZeit = Jetzt
MeineStunde = Hour(MeineZeit) ' MeineStunde enthält die Zahl
                              ' der aktuellen Stunde.

Anforderungen

Version 1

Siehe auch

Day-Funktion | Minute-Funktion | Now-Funktion | Second-Funktion | Time-Funktion


InputBox-Funktion

Zeigt in einem Dialogfeld eine Eingabeaufforderung an, wartet auf eine Texteingabe oder die Auswahl einer Schaltfläche durch den Benutzer und gibt den Inhalt des Textfeldes zurück.

InputBox(Eingabeaufforderung[,Titel][, Standard][, xpos][, ypos][, Hilfedatei, Kontext])

Argumente

Eingabeaufforderung
Zeichenfolgenausdruck, der als Meldung im Dialogfeld angezeigt wird. Die maximale Länge der Eingabeaufforderung beträgt etwa 1024 Zeichen, abhängig von der Breite der verwendeten Zeichen. Wenn die Eingabeaufforderung mehr als eine Zeile umfasst, können Sie zwei Zeilen jeweils durch ein Wagenrücklaufzeichen (Chr(13)), ein Zeilenvorschubzeichen (Chr(10)) oder eine Kombination aus Wagenrücklauf- und Zeilenvorschubzeichen (Chr(13) & Chr(10)) trennen.
Titel
Zeichenfolgenausdruck, der in der Titelleiste des Dialogfeldes angezeigt wird. Wenn Sie Titel nicht angeben, wird der Name der Anwendung in der Titelleiste angezeigt.
Standard
Zeichenfolgenausdruck, der im Textfeld standardmäßig angezeigt wird, wenn keine andere Eingabe erfolgt. Wenn Sie Standard nicht angeben, wird ein leeres Textfeld angezeigt.
xpos
Numerischer Ausdruck, der den horizontalen Abstand des linken Dialogfeldrands vom linken Bildschirmrand in Twips angibt. Wenn xpos nicht angegeben wird, wird das Dialogfeld horizontal zentriert.
ypos
Numerischer Ausdruck, der den vertikalen Abstand des oberen Dialogfeldrandes vom oberen Bildschirmrand in Twips angibt. Bei fehlender Angabe von ypos wird das Dialogfeld vertikal um etwa ein Drittel der Bildschirmhöhe nach unten verschoben.
Hilfedatei
Zeichenfolgenausdruck, der die Hilfedatei angibt, die für die kontextbezogene Hilfe zum Dialogfeld geöffnet wird. Bei Angabe von Hilfedatei muss Kontext ebenfalls angegeben werden.
Kontext
Numerischer Ausdruck, der die Hilfe-Kontextnummer angibt, die der Hilfeautor dem zugehörigen Hilfethema zugeordnet hat. Wenn Kontext angegeben wird, muss Hilfedatei ebenfalls angegeben werden.

Hinweise

Wenn sowohl Hilfedatei als auch Kontext angegeben werden, wird dem Dialogfeld automatisch die Schaltfläche Hilfe hinzugefügt.

Wenn der Benutzer auf OK klickt oder die EINGABETASTE drückt, gibt die InputBox-Funktion den Inhalt des Textfeldes zurück. Klickt der Benutzer auf Abbrechen, gibt die Funktion eine Zeichenfolge der Länge 0 ("") zurück.

Das folgende Beispiel zeigt die Verwendung der InputBox-Funktion, um ein Textfeld anzuzeigen und die eingegebene Zeichenfolge der Variablen Eingabe zuzuweisen:

Dim Eingabe
Eingabe = InputBox("Geben Sie Ihren Namen ein")
MsgBox ("Ihre Eingabe: " & Eingabe)

Anforderungen

Version 1

MsgBox-Funktion


InStr-Funktion

Gibt die Position des ersten Auftretens einer Zeichenfolge innerhalb einer anderen Zeichenfolge zurück.

InStr([Anfang, ]Zeichenfolge1, Zeichenfolge2[, Vergleich])

Argumente

Anfang
Optional. Numerischer Ausdruck, der die Startposition für die Suche festlegt. Wird Anfang nicht angegeben, beginnt die Suche mit dem ersten Zeichen. Wenn Anfang den Wert Null enthält, tritt ein Fehler auf. Bei Angabe von Vergleich muss auch Anfang angegeben werden.
Zeichenfolge1
Erforderlich. Durchsuchter Zeichenfolgenausdruck.
Zeichenfolge2
Erforderlich. Gesuchter Zeichenfolgenausdruck.
Vergleich
Optional. Numerischer Wert für die zu verwendende Art des Vergleichs bei der Auswertung von Teilzeichenfolgen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt. Wird Vergleich nicht angegeben, wird ein binärer Vergleich durchgeführt.

Einstellungen

Das Argument Vergleich kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Rückgabewerte

Die InStr-Funktion gibt die folgenden Werte zurück:

Wenn | Dann ist Rückgabewert von InStr
Zeichenfolge1 die Länge Null hat | 0
Zeichenfolge1 Null ist | Null
Zeichenfolge2 die Länge Null hat | Anfang
Zeichenfolge2 Null ist | Null
Zeichenfolge2 nicht vorhanden ist | 0
Zeichenfolge2 in Zeichenfolge1 enthalten ist | Position, an der Übereinstimmung gefunden wurde
Anfang > Len(Zeichenfolge2) | 0

Hinweise

Das folgende Beispiel zeigt die Verwendung der InStr-Funktion, um eine Zeichenfolge zu suchen:

Dim SuchZf, SuchZeichen, MeinePosition
SuchZf ="XXpXXpXXPXXP"   ' Zu durchsuchende Zeichenfolge.
SuchZeichen = "P"   ' Suchen nach "P".
MeinePosition = Instr(4, SuchZf, SuchZeichen, 1)   ' Ein Textvergleich, der bei Position 4 beginnt und den Wert 6 zurückgibt.
MeinePosition = Instr(1, SuchZf, SuchZeichen, 0)   ' Ein Binärvergleich, der bei Position 1 beginnt und den Wert 9 zurückgibt.
MeinePosition = Instr(SuchZf, SuchZeichen)   ' Der Binärvergleich ist die Voreinstellung (letztes Argument wird weggelassen). Gibt den Wert 9 zurück.
MeinePosition = Instr(1, SuchZf, "W")   ' Ein Binärvergleich, der bei Position 1 beginnt. Gibt den Wert 0 zurück ("W" wurde nicht gefunden).
Anmerkung Eine andere Funktion (InStrB) steht für Bytedaten zur Verfügung, die in einer Zeichenfolge enthalten sind. InStrB gibt nicht die Zeichenposition des ersten Auftretens einer Zeichenfolge innerhalb einer anderen Zeichenfolge zurück, sondern die Byteposition.

Anforderungen

Version 1

InStrRev-Funktion


InStrRev-Funktion

Gibt die Position des Vorkommens einer Zeichenfolge in einer anderen Zeichenfolge zurück, wobei vom Ende der Zeichenfolge aus gezählt wird.

InStrRev(Zeichenfolge1, Zeichenfolge2[, Anfang[, Vergleich]])

Argumente

Zeichenfolge1
Erforderlich. Durchsuchter Zeichenfolgenausdruck.
Zeichenfolge2
Erforderlich. Gesuchter Zeichenfolgenausdruck.
Anfang
Optional. Numerischer Ausdruck, der die Startposition für die Suche festlegt. Ohne Angabe von Anfang wird -1 verwendet, d. h. die Suche beginnt an der letzten Zeichenposition Wenn Anfang den Wert Null enthält, tritt ein Fehler auf.
Vergleich
Optional. Numerischer Wert für die zu verwendende Art des Vergleichs bei der Auswertung von Teilzeichenfolgen. Ohne Angabe von Vergleich wird ein binärer Vergleich durchgeführt. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument Vergleich kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Rückgabewerte

InStrRev gibt die folgenden Werte zurück:

Wenn | Dann ist Rückgabewert von InStrRev
Zeichenfolge1 die Länge Null hat | 0
Zeichenfolge1 Null ist | Null
Zeichenfolge2 die Länge Null hat | Anfang
Zeichenfolge2 Null ist | Null
Zeichenfolge2 nicht vorhanden ist | 0
Zeichenfolge2 in Zeichenfolge1 enthalten ist | Position, an der Übereinstimmung gefunden wurde
Anfang > Len(Zeichenfolge2) | 0

Hinweise

Die folgenden Beispiele zeigen die Verwendung der InStrRev-Funktion, um eine Zeichenfolge zu durchsuchen:

Dim SuchZf, SuchZeichen, MeinePosition
SuchZf ="XXpXXpXXPXXP"   ' Zu durchsuchende Zeichenfolge.
SuchZeichen = "P"   ' Suchen nach "P".
MeinePosition = InstrRev(SuchZf, SuchZeichen, 10, 0)   ' Ein Binärvergleich, der bei Position 10 beginnt und den Wert 9 zurückgibt.
MeinePosition = InstrRev(SuchZf, SuchZeichen, -1, 1)   ' Ein Textvergleich, der bei der letzten Position beginnt. Gibt den Wert 12 zurück.
MeinePosition = InstrRev(SuchZf, SuchZeichen, 8)   ' Der Binärvergleich ist die Voreinstellung (letztes Argument wird weggelassen). Gibt den Wert 0 zurück.
Anmerkung Die Syntax der InStrRev-Funktion entspricht nicht der Syntax der InStr-Funktion.

Anforderungen

Version 2

InStr-Funktion


Int-, Fix-Funktionen

Gibt den ganzzahligen Anteil einer Zahl zurück.

Int(Zahl)
Fix(Zahl)

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein. Wenn Zahl den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Sowohl Int als auch Fix entfernen die Nachkommastellen einer Zahl und geben den daraus resultierenden ganzzahligen Wert zurück.

Der Unterschied zwischen Int und Fix besteht darin, dass bei negativen Zahlen Int die negative ganze Zahl zurückgibt, die kleiner oder gleich dem Argument Zahl ist, während Fix die negative ganze Zahl zurückgibt, die größer oder gleich dem Argument Zahl ist. Int wandelt -8,4 z. B. in -9 um, während Fix -8,4 in -8 umwandelt.

Fix(Zahl) entspricht dem folgenden Ausdruck:

Sgn(Zahl) * Int(Abs(Zahl))

Das folgende Beispiel zeigt die Verwendung der Funktionen Int und Fix, um die ganzzahligen Teile einer Zahl zurückzugeben:

MeineZahl = Int(99.8)    ' Gibt 99 zurück.
MeineZahl = Fix(99.2)    ' Gibt 99 zurück.
MeineZahl = Int(-99.8)   ' Gibt -100 zurück.
MeineZahl = Fix(-99.8)   ' Gibt -99 zurück.
MeineZahl = Int(-99.2)   ' Gibt -100 zurück.
MeineZahl = Fix(-99.2)   ' Gibt -99 zurück.

Anforderungen

Version 1

CInt-Funktion | Round-Funktion


IsArray-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob eine Variable ein Array ist.

IsArray(VarName)

Das Argument VarName kann eine beliebige Variable sein.

Hinweise

IsArray gibt den Wert True zurück, wenn die Variable ein Array ist, andernfalls wird False zurückgegeben. IsArray ist insbesondere bei Variant-Werten hilfreich, die Arrays enthalten.

Das folgende Beispiel zeigt die Verwendung der IsArray-Funktion, um zu testen, ob die Variable MeinArray ein Array ist:

Dim MeineVar
Dim MeinArray(3)
MeinArray(0) = "Sonntag"
MeinArray(1) = "Montag"
MeinArray(2) = "Dienstag"
MeineVar = IsArray(MeinArray) ' MeineVar enthält "True".

Anforderungen

Version 1

Siehe auch

IsDate-Funktion | IsEmpty-Funktion | IsNull-Funktion | IsNumeric-Funktion | IsObject-Funktion | VarType-Funktion


IsDate-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob ein Ausdruck in ein Datum umgewandelt werden kann.

IsDate(Ausdruck)

Das Argument Ausdruck kann ein beliebiger Datumsausdruck oder Zeichenfolgenausdruck sein, der als Datum oder Uhrzeit erkannt wird.

Hinweise

IsDate gibt den Wert True zurück, wenn der Ausdruck ein Datum ist oder in ein gültiges Datum konvertiert werden kann. Andernfalls ist der Rückgabewert False. In Microsoft Windows liegen gültige Datumswerte im Bereich vom 1. Januar 100 n.Chr. bis einschließlich 31. Dezember 9999 n.Chr. Dieser Bereich kann bei anderen Betriebssystemen unterschiedlich sein.

Das folgende Beispiel zeigt die Verwendung der IsDate-Funktion, um festzustellen, ob ein Ausdruck in ein Datum konvertiert werden kann:

Dim MeinDatum, IhrDatum, KeinDatum, MeineProbe
MeinDatum = "14. Juni 1962": IhrDatum = #06/14/62#: KeinDatum = "Hallo"
MeineProbe = IsDate(MeinDatum)   ' Gibt den Wert True zurück.
MeineProbe = IsDate(IhrDatum)   ' Gibt den Wert True zurück.
MeineProbe = IsDate(KeinDatum)   ' Gibt den Wert False zurück.

Anforderungen

Version 1

Siehe auch

CDate-Funktion | IsArray-Funktion | IsEmpty-Funktion | IsNull-Funktion | IsNumeric-Funktion | IsObject-Funktion | VarType-Funktion


IsEmpty-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob eine Variable initialisiert wurde.

IsEmpty(Ausdruck)

Das Argument Ausdruck kann ein beliebiger Ausdruck sein. Da mit der IsEmpty-Funktion jedoch geprüft wird, ob einzelne Variablen initialisiert worden sind, enthält das Argument Ausdruck in der Regel nur einen einzelnen Variablennamen.

Hinweise

IsEmpty gibt den Wert True zurück, wenn die Variable nicht initialisiert ist oder explizit auf Empty gesetzt wurde. Andernfalls wird False zurückgegeben. False wird immer zurückgegeben, wenn Ausdruck mehr als eine Variable enthält.

Das folgende Beispiel zeigt die Verwendung der IsEmpty-Funktion, um festzustellen, ob eine Variable initialisiert wurde:

Dim MeineVar, MeineProbe
MeineProbe = IsEmpty(MeineVar)   ' Gibt den Wert True zurück.
MeineVar = Null   ' Zuweisen des Wertes Null.
MeineProbe = IsEmpty(MeineVar)   ' Gibt den Wert False zurück.
MeineVar = Empty   ' Zuweisen des Wertes Empty.
MeineProbe = IsEmpty(MeineVar)   ' Gibt den Wert True zurück.

Anforderungen

Version 1

Siehe auch

IsArray-Funktion | IsDate-Funktion | IsNull-Funktion | IsNumeric-Funktion | IsObject-Funktion | VarType-Funktion


IsNull-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob ein Ausdruck ungültige Daten (Null) enthält.

IsNull(Ausdruck)

Das Argument Ausdruck kann ein beliebiger Ausdruck sein.

Hinweise

IsNull gibt den Wert True zurück, wenn Ausdruck gleich Null ist, d. h. keine gültigen Daten enthält. Andernfalls gibt IsNull den Wert False zurück. Wenn Ausdruck aus mehreren Variablen besteht, führt ein Null-Wert in einer der Variablen dazu, dass True für den gesamten Ausdruck zurückgegeben wird.

Null bedeutet, dass die Variable keine gültigen Daten enthält. Der Wert Null darf nicht mit dem Wert Empty verwechselt werden, der anzeigt, dass eine Variable noch nicht initialisiert wurde. Null ist auch keine Nullzeichenfolge (eine Zeichenfolge der Länge Null).

Vorsicht Mit der IsNull-Funktion können Sie feststellen, ob ein Ausdruck den Wert Null enthält. Ausdrücke, die dem Anschein nach den Wert True ergeben könnten, wie z. B. If Var = Null oder If Var <> Null, sind immer False. Dies liegt darin begründet, dass jeder Ausdruck den Wert Null enthaltende Ausdruck selbst den Wert Null hat und daher False ist.

Das folgende Beispiel zeigt die Verwendung der IsNull-Funktion, um festzustellen, ob eine Variable Null enthält:

Dim MeineVar, MeinePrüfung
MeinePrüfung = IsNull(MeineVar)   ' Gibt den Wert False zurück.
MeineVar = Null   ' Zuweisen des Wertes Null.
MeinePrüfung = IsNull(MeineVar)   ' Gibt den Wert True zurück.
MeineVar = Empty   ' Zuweisen des Wertes Empty.
MeinePrüfung = IsNull(MeineVar)   ' Gibt den Wert False zurück.

Anforderungen

Version 1

Siehe auch

IsArray-Funktion | IsDate-Funktion | IsEmpty-Funktion | IsNumeric-Funktion | IsObject-Funktion | VarType-Funktion


IsNumeric-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob ein Ausdruck als Zahl ausgewertet werden kann.

IsNumeric(Ausdruck)

Das Argument Ausdruck kann ein beliebiger Ausdruck sein.

Hinweise

IsNumeric gibt den Wert True zurück, wenn der gesamte Ausdruck als Zahl erkannt wird. Andernfalls wird False zurückgegeben. IsNumeric gibt False zurück, wenn Ausdruck ein Datumsausdruck ist.

Das folgende Beispiel zeigt die Verwendung der IsNumeric-Funktion, um festzustellen, ob eine Variable als Zahl ausgewertet werden kann:

Dim MeineVar, MeineProbe
MeineVar = 53   ' Zuweisen eines Wertes.
MeineProbe = IsNumeric(MeineVar)   ' Gibt den Wert True zurück.
MeineVar = "459.95"   ' Zuweisen eines Wertes.
MeineProbe = IsNumeric(MeineVar)   ' Gibt den Wert True zurück.
MeineVar = "45 Hilfe"   ' Zuweisen eines Wertes.
MeineProbe = IsNumeric(MeineVar)   ' Gibt den Wert False zurück.

Anforderungen

Version 1

Siehe auch

IsArray-Funktion | IsDate-Funktion | IsEmpty-Funktion | IsNull-Funktion | IsObject-Funktion | VarType-Funktion


IsObject-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob ein Ausdruck auf ein gültiges Automatisierungsobjekt verweist.

IsObject(Ausdruck)

Das Argument Ausdruck kann ein beliebiger Ausdruck sein.

Hinweise

IsObject gibt True zurück, wenn Ausdruck eine Variable mit dem Untertyp Object oder ein benutzerdefiniertes Objekt ist. Andernfalls wird False zurückgegeben.

Das folgende Beispiel zeigt die Verwendung der IsObject-Funktion, um festzustellen, ob ein Bezeichner eine Objektvariable darstellt:

Dim MeinInt, MeineProbe, MeinObjekt
Set MeinObjekt = Me
MeineProbe = IsObject(MeinObjekt)   ' Ergibt True.
MeineProbe = IsObject(MeinInt)   ' Ergibt False.

Anforderungen

Version 1

Siehe auch

IsArray-Funktion | IsDate-Funktion | IsEmpty-Funktion | IsNull-Funktion | IsNumeric-Funktion | Set-Anweisung | VarType-Funktion


Join-Funktion

Gibt eine durch Verbinden einer Reihe von Teilzeichenfolgen in einem Array erzeugte Zeichenfolge zurück.

Join(Liste[, Trennzeichen])

Argumente

Liste
Erforderlich. Eindimensionales Array, das die zu verbindenden Teilzeichenfolgen enthält.
Trennzeichen
Optional. Zeichen vom Typ String zur Trennung der Teilzeichenfolgen in der zurückgegebenen Zeichenfolge. Ohne Angabe wird das Leerzeichen (" ") verwendet. Ist Trennzeichen eine Zeichenfolge mit der Länge 0, werden alle Teile ohne Trennzeichen miteinander verbunden.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Join-Funktion, mit der die Teilzeichenfolgen von MeinArray zusammengefasst werden:

Dim MeineZf
Dim MeinArray(3)
MeinArray(0) = "Herr "
MeinArray(1) = "Berti "
MeinArray(2) = "Mustermann "
MeinArray(3) = "III"
MeineZf = Join(MeinArray) ' MeineZf enthält "Herr Berti Mustermann III".

Anforderungen

Version 2

Split-Funktion


LBound-Funktion

Gibt den kleinsten verfügbaren Index für die angegebene Dimension eines Arrays zurück.

LBound(Arrayname[, Dimension])

Argumente

Arrayname
Name der Arrayvariablen gemäß den Standardkonventionen für Namen von Variablen.
Dimension
Ganze Zahl, die angibt, für welche Dimension die untere Grenze zurückgegeben werden soll. Verwenden Sie für die erste Dimension 1, für die zweite Dimension 2 usw. Ohne Angabe von Dimension wird von 1 ausgegangen.

Hinweise

Die LBound-Funktion kann zusammen mit der UBound-Funktion verwendet werden, um die Größe eines Arrays festzulegen. Die UBound-Funktion liefert die Obergrenze einer Arraydimension.

Die Untergrenze für jede Dimension ist stets 0.

Anforderungen

Version 1

Dim-Anweisung | ReDim-Anweisung | UBound-Funktion


LCase-Funktion

Gibt eine Zeichenfolge zurück, bei der alle Buchstaben in Kleinbuchstaben umgewandelt wurden.

LCase(Zeichenfolge)

Das Argument Zeichenfolge ist ein beliebiger gültiger Zeichenfolgenausdruck. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Es werden lediglich Groß- in Kleinbuchstaben umgewandelt. Alle Kleinbuchstaben und sonstigen Zeichen bleiben unverändert.

Das folgende Beispiel zeigt die Verwendung der LCase-Funktion, um Groß- in Kleinbuchstaben zu konvertieren:

Dim MeineZf
Dim ZfKlein
MeineZf = "VBScript"
ZfKlein = LCase(MeineZf)   ' ZfKlein enthält "vbscript".

Anforderungen

Version 1

UCase-Funktion


Left-Funktion

Gibt eine bestimmte Anzahl von Zeichen ab dem ersten (linken) Zeichen einer Zeichenfolge zurück.

Left(Zeichenfolge, Länge)

Argumente

Zeichenfolge
Zeichenfolgenausdruck, aus dem die ersten (linken) Zeichen zurückgegeben werden. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.
Länge
Numerischer Ausdruck, der die Anzahl der zurückzugebenden Zeichen angibt. 0 führt zur Rückgabe einer leeren Zeichenfolge (""). Ist Länge größer oder gleich der Zeichenanzahl in Zeichenfolge, wird die gesamte Zeichenfolge zurückgegeben.

Hinweise

Sie können die Zeichenanzahl in Zeichenfolge mit der Len-Funktion festlegen.

Das folgende Beispiel verwendet die Left-Funktion, um die ersten drei Zeichen von MeineZf zurückzugeben:

Dim MeineZf, ZfLinks
MeineZf = "VBSCript"
ZfLinks = Left(MeineZf, 3) ' ZfLinks enthält "VBS".
Anmerkung Die Funktion (LeftB) wird für Byte-Daten verwendet, die in einer Zeichenfolge enthalten sind. Länge gibt nicht Anzahl der zurückzugebenden Zeichen zurück, sondern die Anzahl der Byte.

Anforderungen

Version 1

Len-Funktion | Mid-Funktion | Right-Funktion


Len-Funktion

Gibt die Anzahl der Zeichen in einer Zeichenfolge oder die zum Speichern einer Variablen erforderlichen Byte zurück.

Len(Zeichenfolge | Variablenname)

Argumente

Zeichenfolge
Ein beliebiger gültiger Zeichenfolgenausdruck. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.
Variablenname
Jeder gültige Variablenname. Wenn Variablennname den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Len-Funktion, um die Anzahl der Buchstaben in einer Zeichenfolge zurückzugeben:

Dim MeineZf
MeineZf = Len("VBSCRIPT") ' MeineZf enthält den Wert 8.

Hinweis Die Funktion (LenB) wird für Bytedaten verwendet, die in einer Zeichenfolge enthalten sind. LenB gibt nicht die Anzahl der Zeichen in einer Zeichenfolge zurück, sondern die Anzahl der Bytes, die zur Darstellung dieser Zeichenfolge verwendet werden.

Anforderungen

Version 1

InStr-Funktion


LoadPicture-Funktion

Gibt ein Bildobjekt zurück. Diese Funktion ist nur auf 32-Bit-Plattformen verfügbar.

LoadPicture(Bildname)

Das Argument Bildname ist ein Zeichenfolgenausdruck, der den Namen der zu ladenden Grafikdatei angibt.

Hinweise

Zu den von LoadPicture lesbaren Grafikformaten zählen u.a.: Bitmap-Dateien (.BMP), Icon-Dateien (.ICO), Run-Length-Encoded-Dateien (.RLE), Windows-Metafiles (.WMF), Enhanced Metafiles (.EMF), GIF-Dateien (.GIF) und JPEG-Dateien (.JPG).

Anforderungen

Version 2


Log-Funktion

Gibt den natürlichen Logarithmus einer Zahl zurück.

Log(Zahl)

Das Argument Zahl kann ein beliebiger zulässiger numerischer Ausdruck mit einem Wert größer als 0 sein.

Hinweise

Der natürliche Logarithmus ist der Logarithmus zur Basis e. Die Konstante e entspricht ungefähr dem Wert 2,718282.

Sie können den Logarithmus zur Basis n für jede Zahl x berechnen, indem Sie den natürlichen Logarithmus von x wie folgt durch den natürlichen Logarithmus von n dividieren:

Logn(x) = Log(x) / Log(n)

Das folgende Beispiel veranschaulicht eine Function-Prozedur zur Berechnung von Logarithmen mit der Basis 10:

Function Log10(X)
   Log10 = Log(X) / Log(10)
End Function

Anforderungen

Version 1

Abgeleitete mathematische Funktionen | Exp-Funktion


LTrim-, RTrim- und Trim-Funktionen

Geben eine Kopie einer Zeichenfolge zurück, die keine führenden Leerzeichen (LTrim), keine nachgestellten Leerzeichen (RTrim) oder weder führende noch nachgestellte Leerzeichen (Trim) enthält.

LTrim(Zeichenfolge)
RTrim(Zeichenfolge)
Trim(Zeichenfolge)

Das Argument Zeichenfolge ist ein beliebiger gültiger Zeichenfolgenausdruck. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Funktionen LTrim, RTrim und Trim, um führende, nachgestellte bzw. führende und nachgestellte Leerzeichen zu entfernen:

Dim MeineVar
MeineVar = LTrim("   vbscript ")   ' MeineVar enthält "vbscript ".
MeineVar = RTrim("   vbscript ")   ' MeineVar enthält "   vbscript".
MeineVar = Trim("   vbscript ")   ' MeineVar enthält "vbscript".

Anforderungen

Version 1

Left-Funktion | Right-Funktion


Mathematische Funktionen

Abgeleitete mathematische Funktionen

Abs-Funktion

Atn-Funktion

Cos-Funktion

Exp-Funktion

Fix-Funktion

Int-Funktion

Log-Funktion

Rnd-Funktion

Sgn-Funktion

Sin-Funktion

Sqr-Funktion

Tan-Funktion


Mid-Funktion

Gibt eine bestimmte Anzahl von Zeichen aus einer Zeichenfolge zurück.

Mid(Zeichenfolge, Anfang[, Länge])

Argumente

Zeichenfolge
Zeichenfolgenausdruck, aus dem Zeichen zurückgegeben werden. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.
Anfang
Position in Zeichenfolge, an der die zurückzugebende Zeichenfolge beginnt. Ist Anfang größer als die Anzahl der Zeichen in Zeichenfolge, gibt Mid eine leere Zeichenfolge ("") zurück.
Länge
Anzahl der zurückzugebenden Zeichen. Wird Länge nicht angegeben oder befinden sich weniger Zeichen im Text (das Zeichen an der Stelle Anfang eingeschlossen), als durch Länge angegeben, werden alle Zeichen ab Anfang bis zum Ende der Zeichenfolge zurückgegeben.

Hinweise

Sie können die Zeichenanzahl in Zeichenfolge mit der Len-Funktion bestimmen.

Das folgende Beispiel verwendet die Mid-Funktion, um - beginnend beim vierten - sechs Zeichen in einer Zeichenfolge zurückzugeben:

Dim MeineVar
MeineVar = Mid("VB Script macht Freude!", 4, 6) ' MeineVar enthält "Script".

Hinweis Eine andere Funktion (MidB) steht für Bytedaten, die in einer Zeichenfolge enthalten sind, zur Verfügung. Die Argumente geben nicht die Anzahl der Zeichen an, sondern die Anzahl der Bytes.

Anforderungen

Version 1

Siehe auch

Left-Funktion | Len-Funktion | LTrim-, RTrim- und Trim-Funktionen | Right-Funktion


Minute-Funktion

Gibt eine ganze Zahl im Bereich von 0 bis 59 zurück, die die Minute in der Stunde darstellt.

Minute(Uhrzeit)

Das Argument Uhrzeit ist ein beliebiger Ausdruck, der eine Uhrzeit darstellen kann. Wenn Uhrzeit den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Minute-Funktion, um die Minute der aktuellen Stunde anzugeben:

Dim MeineVar
MeineVar = Minute(Now)

Anforderungen

Version 1

Siehe auch

Day-Funktion | Hour-Funktion | Now-Funktion | Second-Funktion | Time-Funktion


Month-Funktion

Gibt eine ganze Zahl im Bereich von 1 bis 12 zurück, die den Monat im Jahr darstellt.

Month(Datum)

Das Argument Datum ist ein beliebiger Ausdruck, der ein Datum darstellen kann. Wenn Datum den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Month-Funktion, um den aktuellen Monat zurückzugeben:

Dim MeineVar
MeineVar = Month(Now)  ' MeineVar enthält die Monatszahl des
                       ' aktuellen Monats.

Anforderungen

Version 1

Siehe auch

Date-Funktion | Day-Funktion | Now-Funktion | Weekday-Funktion | Year-Funktion


MonthName-Funktion

Gibt eine Zeichenfolge für den angegebenen Monat zurück.

MonthName(Monat[, Abkürzung])

Argumente

Monat
Erforderlich. Der numerische Wert für den Monat. Beispiel: Januar ist 1, Februar ist 2 usw.
Abkürzung
Optional. Boolescher Wert für die Abkürzung des Monatsnamens. Ohne Angabe ist die Voreinstellung False, d. h. der Name wird nicht abgekürzt.

Hinweise

Das folgende Beispiel zeigt die Verwendung der MonthName-Funktion, um den abgekürzten Namen des Monats für einen Datumsausdruck zurückzugeben:

Dim MeineVar
MeineVar = MonthName(10, True) ' MeineVar enthält "Okt".

Anforderungen

Version 2

WeekdayName-Funktion


MsgBox-Funktion

Zeigt eine Meldung in einem Dialogfeld an, wartet darauf, dass der Benutzer auf eine Schaltfläche klickt, und gibt einen Wert zurück, der anzeigt, auf welche Schaltfläche geklickt wurde.

MsgBox(Eingabeaufforderung[, Schaltflächen][, Titel][, Hilfedatei, Kontext])

Argumente

Eingabeaufforderung
Zeichenfolgenausdruck, der als Meldung im Dialogfeld angezeigt wird. Die maximale Länge von Eingabeaufforderung beträgt etwa 1024 Zeichen, abhängig von der Breite der verwendeten Zeichen. Wenn Eingabeaufforderung mehr als eine Zeile umfasst, können Sie zwei Zeilen jeweils durch ein Wagenrücklaufzeichen (Chr(13)), ein Zeilenvorschubzeichen (Chr(10)) oder eine Kombination aus Wagenrücklauf- und Zeilenvorschubzeichen (Chr(13) & Chr(10)) trennen.
Schaltflächen
Numerischer Ausdruck, der die Summe der Werte für folgende Angaben darstellt: Anzahl und Art der anzuzeigenden Schaltflächen, Art des zu verwendenden Symbols, Angabe der Standardschaltfläche und Verhalten des Meldungsfeldes (gebunden/ungebunden). Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt. Falls nichts angegeben wird, ist der Standardwert für Schaltflächen 0.
Titel
Zeichenfolgenausdruck, der in der Titelleiste des Dialogfeldes angezeigt wird. Wenn Sie Titel nicht angeben, wird der Name der Anwendung in der Titelleiste angezeigt.
Hilfedatei
Zeichenfolgenausdruck, der die Hilfedatei angibt, die für die kontextbezogene Hilfe zum Dialogfeld geöffnet wird. Wenn Hilfedatei angegeben wird, muß Kontext ebenfalls angegeben werden. Nicht verfügbar auf 16-Bit-Plattformen.
Kontext
Numerischer Ausdruck, der die Hilfe-Kontextnummer angibt, die der Hilfeautor dem zugehörigen Hilfethema zugeordnet hat. Wenn Kontext angegeben wird, muss Hilfedatei ebenfalls angegeben werden. Nicht verfügbar auf 16-Bit-Plattformen.

Einstellungen

Die Einstellungen für das Argument Schaltflächen sind:

Konstante | Wert | Beschreibung
vbOKOnly | 0 | Nur Schaltfläche OK anzeigen.
vbOKCancel | 1 | Anzeigen der Schaltflächen OK und Abbrechen.
vbAbortRetryIgnore | 2 | Anzeigen der Schaltflächen Abbrechen, Wiederholen und Ignorieren.
vbYesNoCancel | 3 | Anzeigen der Schaltflächen Ja, Nein und Abbrechen.
vbYesNo | 4 | Anzeigen der Schaltflächen Ja und Nein.
vbRetryCancel | 5 | Anzeigen der Schaltflächen Wiederholen und Abbrechen.
vbCritical | 16 | Anzeigen des Stopp-Symbols.
vbQuestion | 32 | Anzeigen des Fragezeichen-Symbols.
vbExclamation | 48 | Anzeigen des Symbols Warnung.
vbInformation | 64 | Anzeigen des Symbols Information.
vbDefaultButton1 | 0 | Erste Schaltfläche ist Voreinstellung.
vbDefaultButton2 | 256 | Zweite Schaltfläche ist Voreinstellung.
vbDefaultButton3 | 512 | Dritte Schaltfläche ist Voreinstellung.
vbDefaultButton4 | 768 | Vierte Schaltfläche ist Voreinstellung.
vbApplicationModal | 0 | Anwendungsgebunden. Der Benutzer muss auf das Meldungsfeld reagieren, bevor er die Arbeit mit der aktuellen Anwendung fortsetzen kann.
vbSystemModal | 4096 | Systemgebunden. Alle Anwendungen werden unterbrochen, bis der Benutzer auf das Meldungsfeld reagiert.

Die erste Gruppe von Werten (0 - 5) beschreibt Anzahl und Typ der im Dialogfeld angezeigten Schaltflächen, die zweite Gruppe (16, 32, 48, 64) beschreibt die Art des Symbols, die dritte Gruppe (0, 256, 512, 768) bestimmt die voreingestellte Schaltfläche, und die vierte Gruppe (0, 4096) bestimmt, in welcher Form das Meldungsfeld gebunden ist. Verwenden Sie beim Addieren von Zahlen zu einen Gesamtwert für das Argument Schaltflächen nur einen Wert aus jeder Gruppe.

Rückgabewerte

Die MsgBox-Funktion besitzt die folgenden Rückgabewerte:

Konstante | Wert | Schaltfläche
vbOK | 1 | OK
vbCancel | 2 | Abbrechen
vbAbort | 3 | Abbrechen
vbRetry | 4 | Wiederholen
vbIgnore | 5 | Ignorieren
vbYes | 6 | Ja
vbNo | 7 | Nein

Hinweise

Wenn Sie Hilfedatei und Kontext angeben, kann der Benutzer F1 drücken, um das zum Kontext passende Hilfethema anzuzeigen.

Wenn im Dialogfeld die Schaltfläche Abbrechen angezeigt wird, hat das Drücken der ESC-Taste dieselbe Wirkung wie das Klicken auf Abbrechen. Wenn im Dialogfeld die Schaltfläche Hilfe angezeigt wird, wird eine kontextbezogene Hilfe für das Dialogfeld zur Verfügung gestellt. Ein Wert wird aber erst zurückgegeben, wenn auf eine der anderen Schaltflächen geklickt wird.

Wenn die MsgBox-Funktion zusammen mit Microsoft Internet Explorer verwendet wird, enthält der Titel aller angezeigten Dialogfelder immer "VBScript:", um sie von Standardsystemdialogfeldern zu unterscheiden.

Das folgende Beispiel zeigt die Verwendung der MsgBox-Funktion, um ein Meldungsfeld anzuzeigen und einen Wert zurückzugeben, der angibt, auf welche Schaltfläche geklickt wurde:

Dim MeineVar
MeineVar = MsgBox ("Hallo Welt!", 65, "MsgBox-Beispiel")
   ' MeineVar enthält entweder 1 oder 2, je nachdem, auf welche Schaltfläche geklickt wurde.

Anforderungen

Version 1

InputBox-Funktion


Now-Funktion

Gibt das aktuelle Datum und die aktuelle Zeit aus den Einstellungen für das Systemdatum und die Systemzeit auf Ihrem Computer zurück.

Now

Hinweise

Das folgende Beispiel zeigt die Verwendung der Now-Funktion, um das aktuelle Datum und die Zeit zurückzugeben:

Dim MeineVar
MeineVar = Now ' MeineVar enthält das aktuelle Datum und die aktuelle Uhrzeit.

Anforderungen

Version 1

Siehe auch

Date-Funktion | Day-Funktion | Hour-Funktion | Minute-Funktion | Month-Funktion | Second-Funktion | Time-Funktion | Weekday-Funktion | Year-Funktion


Oct-Funktion

Gibt eine Zeichenfolge mit der Oktaldarstellung einer Zahl zurück.

Oct(Zahl)

Das Argument Zahl ist ein beliebiger gültiger Ausdruck.

Hinweise

Wenn Zahl keine ganze Zahl ist, rundet die Funktion den Wert vor der Auswertung auf die nächste ganze Zahl.

Ist Zahl | Rückgabewert von Oct
Null | Null.
Empty | Null (0).
Eine beliebige andere Zahl | Bis zu 11 oktale Zeichen.

Sie können Oktalzahlen direkt angeben, indem Sie &O vor eine Zahl im zulässigen Bereich setzen. &O10 entspricht zum Beispiel der Dezimalzahl 8 in Oktaldarstellung.

Das folgende Beispiel zeigt die Verwendung der Oct-Funktion, um die Oktaldarstellung einer Zahl zurückzugeben:

Dim MeineOktaleZahl
MeineOktaleZahl = Oct(4)     ' Ergibt 4.
MeineOktaleZahl = Oct(8)     ' Ergibt 10.
MeineOktaleZahl = Oct(459)   ' Ergibt 713.

Anforderungen

Version 1

Hex-Funktion


Replace-Funktion

Gibt eine Zeichenfolge zurück, in der eine bestimmte Teilzeichenfolge durch eine andere Zeichenfolge so oft wie angegeben ersetzt wurde.

Replace(Ausdruck, SuchZF, ErsetzenDurch[,Anfang[,Anzahl[,Vergleich]]])

Argumente

Ausdruck
Erforderlich. Zeichenfolgenausdruck, der die zu ersetzende Teilzeichenfolge enthält.
SuchZF
Erforderlich. Zu suchende Teilzeichenfolge.
ErsetzenDurch
Erforderlich. Ersatzteilzeichenfolge.
Anfang
Optional. Position in Ausdruck, an der die Suche nach der Teilzeichenfolge beginnen soll. Ohne Angabe wird 1 angenommen. Muss in Verbindung mit Anzahl verwendet werden.
Anzahl
Optional. Anzahl der auszuführenden Ersetzungen für die Teilzeichenfolge. Ohne Angabe wird die Voreinstellung -1 verwendet, d. h. alle möglichen Ersetzungen werden vorgenommen. Muss in Verbindung mit Anfang verwendet werden.
Vergleich
Optional. Numerischer Wert für die zu verwendende Art des Vergleichs bei der Auswertung von Teilzeichenfolgen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt. Wenn dieser Wert weggelassen wird, ist die Voreinstellung 0, wodurch ein binärer Vergleich durchgeführt wird.

Einstellungen

Das Argument Vergleich kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Rückgabewerte

Replace gibt die folgenden Werte zurück:

Wenn | Replace-Rückgabe
Ausdruck Länge 0 hat | Zeichenfolge mit Länge Null ("").
Ausdruck Null ist | Fehler
SuchZF Länge Null hat | Kopie von Ausdruck
ErsetzenDurch Länge Null hat | Kopie von Ausdruck, in der alle gefundenen SuchZF entfernt sind
Anfang > Len(Ausdruck) | Zeichenfolge mit Länge Null.
Anzahl 0 ist | Kopie von Ausdruck

Hinweise

Die Replace-Funktion liefert eine Zeichenfolge mit den erfolgten Ersetzungen, die mit der Position Anfang beginnt und am Ende der Zeichenfolge Ausdruck aufhört. Sie ist keine Kopie der ursprünglichen Zeichenfolge vom Anfang bis zum Ende.

Das folgende Beispiel zeigt die Verwendung der Replace-Funktion, um eine Zeichenfolge zurückzugeben:

Dim MeineZf
MeineZf = Replace("XXpXXPXXp", "p", "Y")   ' Ein am Anfang der Zeichenfolge beginnender Binärvergleich. Gibt "XXYXXPXXY" zurück.
MeineZf = Replace("XXpXXPXXp", "p", "Y", 3, -1, 1)
  ' Ein an Position 3 der Zeichenfolge beginnender Textvergleich. Gibt "YXXYXXY" zurück.

Anforderungen

Version 2

Filter-Funktion


RGB-Funktion

Gibt eine ganze Zahl zurück, die einen RGB-Farbwert darstellt.

RGB(Rot, Grün, Blau)

Argumente

Rot
Erforderlich. Zahl im Bereich von 0-255, die den Rotanteil der Farbe darstellt.
Grün
Erforderlich. Zahl im Bereich von 0-255, die den Grünanteil der Farbe darstellt.
Blau
Erforderlich. Zahl im Bereich von 0-255, die den Blauanteil der Farbe darstellt.

Hinweise

Anwendungsmethoden und -Eigenschaften, die eine Farbspezifikation akzeptieren, erwarten, dass diese ein Zahl ist, die einen RGB-Farbwert darstellt. Ein RGB-Farbwert gibt die relative Intensität von Rot, Grün und Blau an, um eine bestimmte Farbe anzuzeigen.

Das niederwertige Byte enthält den Wert für Rot, das mittlere Byte den Wert für Grün, und das höherwertige Byte den Wert für Blau.

Für Anwendungen, die eine umgekehrte Bytereihenfolge erfordern, stellt die folgende Funktion die gleiche Information in umgekehrter Bytereihenfolge bereit:

Function UmgRGB(Rot, Gruen, Blau)
   UmgRGB = CLng(Blau + (Gruen * 256) + (Rot * 65536))
End Function

Jedes Argument von RGB größer als 255 wird als 255 angenommen.

Anforderungen

Version 2


Right-Funktion

Gibt eine bestimmte Anzahl von Zeichen vom rechten Teil (dem Ende) einer Zeichenfolge zurück.

Right(Zeichenfolge, Länge)

Argumente

Zeichenfolge
Zeichenfolgenausdruck, von dem die letzten (rechts stehenden) Zeichen zurückgegeben werden. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.
Länge
Numerischer Ausdruck, der die Anzahl der zurückzugebenden Zeichen angibt. 0 führt zur Rückgabe einer leeren Zeichenfolge. Ist Länge größer oder gleich der Zeichenanzahl in Zeichenfolge, wird die gesamte Zeichenfolge zurückgegeben.

Hinweise

Sie können die Zeichenanzahl in Zeichenfolge mit der Len-Funktion bestimmen.

Das folgende Beispiel zeigt die Verwendung der Right-Funktion, um die angegebene Zahl von Zeichen vom rechten Teil einer Zeichenfolge zurückzugeben:

Dim BeliebZf, MeineZf
BeliebZf = "Hallo Welt"      ' Definieren der Zeichenfolge.
MeineZf = Right(BeliebZf, 1)    ' Gibt "t" zurück.
MeineZf = Right(BeliebZf, 6)    ' Gibt "o Welt" zurück.
MeineZf = Right(BeliebZf, 20)   ' Gibt "Hallo Welt" zurück.
Hinweis Eine andere Funktion (RightB) steht für die Bytedaten zur Verfügung, die in einer Zeichenfolge enthalten sind. Länge gibt nicht Anzahl der zurückzugebenden Zeichen zurück, sondern die Anzahl der Bytes.

Anforderungen

Version 1

Left-Funktion | Len-Funktion | Mid-Funktion


Rnd-Funktion

Gibt eine Zufallszahl zurück.

Rnd[(Zahl)]

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein.

Hinweise

Die Rnd-Funktion gibt einen Wert zurück, der kleiner als 1, aber größer oder gleich 0 ist. Der Wert von Zahl bestimmt, wie Rnd eine Zufallszahl generiert:

Zahl | Generierte Zufallszahl
Kleiner als Null | Immer dieselbe Zahl, mit Zahl als Startwert.
Größer als Null | Die nächste Zufallszahl der Folge.
Gleich Null | Die zuletzt generierte Zahl.
Nicht angegeben | Die nächste Zufallszahl der Folge.

Für jeden gegebenen Startwert wird dieselbe Zufallszahlenfolge generiert, weil bei jedem Aufruf der Rnd-Funktion die vorherige Zahl als Startwert für die nächste Zahl in der Folge dient.

Bevor Sie Rnd aufrufen, verwenden Sie die Randomize-Anweisung ohne Argument, um den Zufallszahlengenerator mit einem Startwert zu initialisieren, der auf dem Systemzeitgeber basiert.

Verwenden Sie die folgende Formel, um ganzzahlige Zufallszahlen innerhalb eines bestimmten Bereichs zu erzeugen:

Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)

Obergrenze steht für die größte und Untergrenze für die kleinste Zahl des Bereichs.

Hinweis Wenn Sie Folgen von Zufallszahlen wiederholen möchten, rufen Sie unmittelbar vor dem Aufruf von Randomize mit einem numerischen Argument die Rnd-Funktion mit einem negativen Argument auf. Durch Verwenden von Randomize mit demselben Wert für Zahl wird die vorherige Folge nicht wiederholt.

Anforderungen

Version 1

Randomize-Anweisung


Round-Funktion

Gibt eine auf die angegebene Anzahl Dezimalstellen gerundete Zahl zurück.

Round(Ausdruck[, AnzDezimalstellen])

Argumente

Ausdruck
Erforderlich. Zu rundender numerischer Ausdruck.
AnzDezimalstellen
Optional. Optionale Zahl für die Anzahl der Dezimalstellen, auf die gerundet werden soll. Erfolgt keine Angabe, werden durch die Round-Funktion ganzzahlige Werte zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Round-Funktion, um eine Zahl auf zwei Dezimalstellen zu runden:

Dim MeineVar, pi
pi = 3.14159
MeineVar = Round(pi, 2) ' MeineVar enthält 3,14.

Anforderungen

Version 2

Int-, Fix-Funktionen


ScriptEngine-Funktion (VBScript)

Visual Basic Scripting Edition

ScriptEngine-Funktion

Gibt eine Zeichenfolge mit der gerade verwendeten Skriptsprache zurück.

ScriptEngine

Rückgabewerte

Die ScriptEngine-Funktion kann jeden der folgenden Werte zurückgeben:

Zeichenfolge | Beschreibung
VBScript | Gibt an, dass Microsoft® Visual Basic® Scripting Edition das aktuelle Skriptmodul ist.
JScript | Gibt an, dass Microsoft JScript® das aktuelle Skriptmodul ist.
VBA | Gibt an, dass Microsoft Visual Basic für Applikationen das verwendete Skriptmodul ist.

Hinweise

Das folgende Beispiel zeigt die Verwendung der ScriptEngine-Funktion, um eine Zeichenfolge zurückzugeben, die die verwendete Skriptsprache beschreibt:

Function ScriptModulInfoHolen
   Dim s
   s = ""   ' Erstellt die Zeichenfolge mit den notwendigen Informationen.
   s = ScriptEngine & " Version "
   s = s & ScriptEngineMajorVersion & "."
   s = s & ScriptEngineMinorVersion & "."
   s = s & ScriptEngineBuildVersion
   ScriptModulInfoHolen =  s   ' Gibt die Ergebnisse zurück.
End Function

Anforderungen

Version 2

Siehe auch

ScriptEngineBuildVersion-Funktion | ScriptEngineMajorVersion-Funktion | ScriptEngineMinorVersion-Funktion


ScriptEngineBuildVersion-Funktion (VBScript)

Visual Basic Scripting Edition

ScriptEngineBuildVersion-Funktion

Gibt die Build-Versionsnummer des verwendeten Skriptmoduls zurück.

ScriptEngineBuildVersion

Hinweise

Der Rückgabewert bezieht sich direkt auf die Versionsinformationen in der DLL der verwendeten Skriptsprache.

Das folgende Beispiel zeigt die Verwendung der ScriptEngineBuildVersion-Funktion, um die Build-Versionsnummer des verwendeten Skriptmoduls zurückzugeben:

Function ScriptModulInfoHolen
   Dim s
   s = ""   ' Erstellt die Zeichenfolge mit den notwendigen Informationen.
   s = ScriptEngine & " Version "
   s = s & ScriptEngineMajorVersion & "."
   s = s & ScriptEngineMinorVersion & "."
   s = s & ScriptEngineBuildVersion
   ScriptModulInfoHolen = s   ' Gibt die Ergebnisse zurück.
End Function

Anforderungen

Version 2

Siehe auch

ScriptEngine-Funktion | ScriptEngineMajorVersion-Funktion | ScriptEngineMinorVersion-Funktion


ScriptEngineMajorVersion-Funktion (VBScript)

Visual Basic Scripting Edition

ScriptEngineMajorVersion-Funktion

Gibt die Haupt-Versionsnummer des verwendeten Skriptmoduls zurück.

ScriptEngineMajorVersion

Hinweise

Der Rückgabewert bezieht sich direkt auf die Versionsinformationen in der DLL der verwendeten Skriptsprache.

Das folgende Beispiel zeigt die Verwendung der ScriptEngineMajorVersion-Funktion, um die Versionsnummer des verwendeten Skriptmoduls zurückzugeben:

Function ScriptModulInfoHolen
   Dim s
   s = ""   ' Erstellt die Zeichenfolge mit den notwendigen Informationen.
   s = ScriptEngine & " Version "
   s = s & ScriptEngineMajorVersion & "."
   s = s & ScriptEngineMinorVersion & "."
   s = s & ScriptEngineBuildVersion
   ScriptModulInfoHolen = s   ' Gibt die Ergebnisse zurück.
End Function

Anforderungen

Version 2

Siehe auch

ScriptEngine-Funktion | ScriptEngineBuildVersion-Funktion | ScriptEngineMinorVersion-Funktion


ScriptEngineMinorVersion-Funktion (VBScript)

Visual Basic Scripting Edition

ScriptEngineMinorVersion-Funktion

Gibt die Nebenversionsnummer des verwendeten Skriptmoduls zurück.

ScriptEngineMinorVersion

Hinweise

Der Rückgabewert bezieht sich direkt auf die Versionsinformationen in der DLL der verwendeten Skriptsprache.

Das folgende Beispiel zeigt die Verwendung der ScriptEngineMinorVersion-Funktion, um die Nebenversionsnummer des verwendeten Skriptmoduls zurückzugeben:

Function ScriptModulInfoHolen
   Dim s
   s = ""   ' Erstellt die Zeichenfolge mit den notwendigen Informationen.
   s = ScriptEngine & " Version "
   s = s & ScriptEngineMajorVersion & "."
   s = s & ScriptEngineMinorVersion & ".
   s = s & ScriptEngineBuildVersion
   ScriptModulInfoHolen = s   ' Gibt die Ergebnisse zurück.
End Function

Anforderungen

Version 2

Siehe auch

ScriptEngine-Funktion | ScriptEngineBuildVersion-Funktion | ScriptEngineMajorVersion-Funktion


Second-Funktion

Gibt eine ganze Zahl im Bereich von 0 bis 59 zurück, die die Sekunde in der Minute darstellt.

Second(Uhrzeit)

Das Argument Uhrzeit ist ein beliebiger Ausdruck, der eine Uhrzeit darstellen kann. Wenn Uhrzeit den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Second-Funktion, um die aktuelle Sekunde zurückzugeben:

Dim MeineSek
MeineSek = Second(Now)
   ' MeineSek enthält die z. Z. aktuelle Sekundenzahl.

Anforderungen

Version 1

Siehe auch

Day-Funktion | Hour-Funktion | Minute-Funktion | Now-Funktion | Time-Funktion


SetLocale-Funktion

Legt das globale Gebietsschema fest und gibt das vorherige Gebietsschema zurück.

SetLocale(lcid)

Das Argument lcid kann ein beliebiger gültiger 32-Bit-Wert oder eine Kurzzeichenfolge sein, der/die eine geografische Ländereinstellung eindeutig identifiziert. Erkannte Werte finden Sie im Gebietsschema-ID (LCID)-Diagramm.

Hinweise

Falls lcid Null ist, wird die Ländereinstellung entsprechend der aktuellen Systemeinstellung gesetzt.

Eine Ländereinstellung enthält verschiedene Benutzereinstellungsinformationen, die sich auf die Sprache, das Land bzw. die Region und kulturelle Konventionen des Benutzers beziehen. Die Ländereinstellung legt beispielsweise das Tastaturlayout, die alphabetische Sortierreihenfolge sowie die Formate für Datum, Uhrzeit, Zahlen und Währungen fest.

Das folgende Beispiel veranschaulicht die Verwendung der SetLocale-Funktion. Um diesen Code zu verwenden, fügen Sie das gesamte Beispiel zwischen die <BODY>-Tags einer HTML-Standardseite ein.

Geben Sie ein Datum im britischen Datumsformat ein: <input type="text" id="UKDate" size="20"><p>
Hier ist die US-amerikanische Entsprechung: <input type="text" id="USdate" size="20"><p>
<input type="button" value="Convert" id="schaltflaeche1"><p>
Geben Sie einen Preis im deutschen Währungsformat ein: &nbsp; <input type="text" id="GermanNumber" size="20">
<p>
Hier ist die britische Entsprechung: <input type="text" id="USNumber" size="20"><p>
<input type="button" value="Convert" id="schaltflaeche2"><p>

<script language="vbscript">
Dim aktuellesGebietsschema
' Ruft die aktuelle Ländereinstellung ab
aktuellesGebietsschema = GetLocale

Sub schaltflaeche1_OnClick
  Dim original
  original = SetLocale("en-gb")
  meindatum = CDate(UKDate.value)
  ' Internet Explorer setzt die Ländereinstellung immer auf US-Englisch; verwenden Sie also die
  ' aktuellesGebietsschema-Variable, um die Ländereinstellungen auf US-Englisch zu setzen
  original = SetLocale(aktuellesGebietsschema)
  USDate.value = FormatDateTime(meindatum,vbShortDate)
End Sub

Sub schaltflaeche2_onclick
  Dim original
  original = SetLocale("de")
  meinwert = CCur(GermanNumber.value)
  original = SetLocale("en-gb")
  USNumber.value = FormatCurrency(meinwert)
End Sub

</script>

Gebietsschema-ID (LCID)-Diagramm | GetLocale-Funktion


Sgn-Funktion

Gibt einen ganzzahligen Wert zurück, der das Vorzeichen einer Zahl darstellt.

Sgn(Zahl)

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein.

Rückgabewerte

Die Sgn-Funktion hat die folgenden Rückgabewerte:

Wenn Zahl | Rückgabewert von Sgn
Größer als Null | 1
Gleich Null | 0
Kleiner als Null | -1

Hinweise

Das Vorzeichen des Arguments Zahl bestimmt den Rückgabewert der Sgn-Funktion.

Das folgende Beispiel zeigt die Verwendung der Sgn-Funktion, um das Vorzeichen einer Zahl zu bestimmen:

Dim MeineVar1, MeineVar2, MeineVar3, MeinVorz
MeineVar1 = 12: MeineVar2 = -2.4: MeineVar3 = 0
MeinVorz = Sgn(MeineVar1)   ' Gibt 1 zurück.
MeinVorz = Sgn(MeineVar2)   ' Gibt -1 zurück.
MeinVorz = Sgn(MeineVar3)   ' Gibt 0 zurück.

Anforderungen

Version 1

Abs-Funktion


Sin-Funktion

Berechnet den Sinus eines Winkels.

Sin(Zahl)

Das Argument Zahl kann ein beliebiger numerischer Ausdruck sein, der einen Winkel im Bogenmaß angibt.

Hinweise

Die Funktion Sin berechnet aus einem Winkel den Quotienten von zwei Seiten eines rechtwinkligen Dreiecks. Der Quotient ergibt sich aus dem Längenverhältnis von Gegenkathete zu Hypotenuse. Das Ergebnis liegt im Bereich von -1 bis 1.

Zur Umrechnung von Grad ins Bogenmaß muss die Gradangabe mit pi/180 multipliziert werden. Zur Umrechnung von Bogenmaß in Grad muss das Bogenmaß mit 180/pi multipliziert werden.

Im folgenden Beispiel wird mithilfe der Sin-Funktion der Kosekans eines Winkels berechnet.

Dim MeinWinkel, MeinKosekans
MeinWinkel = 1.3   ' Definiert einen Winkel im Bogenmaß.
MeinKosekans = 1 / Sin(MeinWinkel)   ' Berechnen des Kosekans.

Anforderungen

Version 1

Siehe auch

Abgeleitete mathematische Funktionen | Atn-Funktion | Cos-Funktion | Tan-Funktion


Space-Funktion

Gibt eine Zeichenfolge mit einer bestimmten Anzahl an Leerzeichen zurück.

Space(Zahl)

Das Argument Zahl entspricht der Anzahl gewünschter Leerzeichen in der Zeichenfolge.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Space-Funktion, um eine Zeichenfolge zurückzugeben, die die angegebene Zahl von Leerzeichen enthält:

Dim MeineZf
MeineZf = Space(10)   ' Gibt eine Zeichenfolge mit 10 Leerzeichen zurück.
MeineZf = "Hallo" & Space(10) & "Welt"  ' Fügt 10 Leerzeichen zwischen zwei Zeichenfolgen ein.

Anforderungen

Version 1

String-Funktion


Split-Funktion

Gibt ein nullbasiertes, eindimensionales Array zurück, das eine angegebene Anzahl von Teilzeichenfolgen enthält.

Split(Ausdruck[, Trennzeichen[, Anzahl[, Vergleich]]])

Argumente

Ausdruck
Erforderlich. Zeichenfolgenausdruck mit Teilzeichenfolgen und Trennzeichen. Ist Ausdruck eine Zeichenfolge mit der Länge 0, gibt Split ein leeres Array, d. h. ein Array ohne Elemente und Daten, zurück.
Trennzeichen
Optional. Zeichen zum Identifizieren der Begrenzungen von Teilzeichenfolgen. Ohne Angabe wird das Leerzeichen (" ") als Trennzeichen angenommen. Ist Trennzeichen eine Zeichenfolge mit der Länge Null, wird ein Array mit einem Element, das die ganze Zeichenfolge Ausdruck enthält, zurückgegeben.
Anzahl
Optional. Anzahl der Teilzeichenfolgen, die zurückgegeben werden sollen. -1 zeigt an, dass alle Teilzeichenfolgen zurückgegeben werden.
Vergleich
Optional. Numerischer Wert für die zu verwendende Art des Vergleichs bei der Auswertung von Teilzeichenfolgen. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument Vergleich kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Split-Funktion, um ein aus einer Zeichenfolge erzeugtes Array zurückzugeben. Die Funktion für einen Textvergleich durch (Suche nach dem Trennzeichen) und gibt jede Teilzeichenfolge zurück.

Dim MeineZf, MeinArray, Meldung
MeineZf = "VBScriptXistXtoll!"
MeinArray = Split(MeineZf, "x", -1, 1)
' MeinArray(0) enthält "VBScript".
' MeinArray(1) enthält "ist".
' MeinArray(2) enthält "toll!".
Meldung = MeinArray(0) & " " & MeinArray(1)
Meldung = Meldung   & " " & MeinArray(2)
MsgBox Meldung

Anforderungen

Version 2

Join-Funktion


Sqr-Funktion

Gibt die Quadratwurzel einer Zahl zurück.

Sqr(Zahl)

Das Argument Zahl kann jeder beliebige numerische Ausdruck größer oder gleich 0 sein.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Sqr-Funktion, um die Quadratwurzel einer Zahl zu berechnen:

Dim MeineWurzel
MeineWurzel = Sqr(4)   ' Ergibt 2.
MeineWurzel = Sqr(23)   ' Ergibt 4,79583152331272.
MeineWurzel = Sqr(0)   ' Ergibt 0.
MeineWurzel = Sqr(-4)   ' Löst einen Laufzeitfehler aus.

Anforderungen

Version 1


StrComp-Funktion

Gibt einen Wert zurück, der das Ergebnis eines Zeichenfolgenvergleichs anzeigt.

StrComp(Zeichenfolge1, Zeichenfolge2[, Vergleich])

Argumente

Zeichenfolge1
Erforderlich. Ein beliebiger gültiger Zeichenfolgenausdruck.
Zeichenfolge2
Erforderlich. Ein beliebiger gültiger Zeichenfolgenausdruck.
Vergleich
Optional. Numerischer Wert für die zu verwendende Art des Vergleichs bei der Auswertung von Zeichenfolgen. Wird Vergleich nicht angegeben, wird ein binärer Vergleich durchgeführt. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument Vergleich kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbBinaryCompare | 0 | Führt einen binären Vergleich durch.
vbTextCompare | 1 | Führt einen Textvergleich durch.

Rückgabewerte

Die StrComp-Funktion besitzt die folgenden Rückgabewerte:

Wenn | Rückgabewerte
Zeichenfolge1 kleiner als Zeichenfolge2 ist | -1
Zeichenfolge1 gleich Zeichenfolge2 ist | 0
Zeichenfolge1 größer als Zeichenfolge2 ist | 1
Zeichenfolge1 oder Zeichenfolge2 Null ist | Null

Hinweise

Das folgende Beispiel zeigt die Verwendung der StrComp-Funktion, um das Ergebnis eines Zeichenfolgenvergleichs zurückzugeben. Ist das dritte Argument 1, wird ein Textvergleich ausgeführt. Ist das dritte Argument 0 oder nicht vorhanden, wird ein binärer Vergleich ausgeführt.

Dim MeineZf1, MeineZf2, MeinVergleich
MeineZf1 = "ABCD": MeineZf2 = "abcd"   ' Definieren der Variablen.
MeinVergleich = StrComp(MeineZf1, MeineZf2, 1)   ' Gibt 0 zurück.
MeinVergleich = StrComp(MeineZf1, MeineZf2, 0)   ' Gibt -1 zurück.
MeinVergleich = StrComp(MeineZf2, MeineZf1)   ' Gibt 1 zurück.

Anforderungen

Version 1


String-Funktion

Gibt eine Zeichenfolge der angegebenen Länge mit einem sich wiederholenden Zeichen zurück.

String(Zahl, Zeichen)

Die Syntax der String-Funktion verwendet die folgenden Teile:

Argumente

Zahl
Länge der zurückgegebenen Zeichenfolge. Wenn Zahl den Wert Null enthält, wird Null zurückgegeben.
Zeichen
Ein Zeichencode, welcher das Zeichen angibt, oder ein Zeichenfolgenausdruck, dessen erstes Zeichen zum Erstellen der Rückgabezeichenfolge verwendet wird. Wenn Zeichen den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Wenn Sie für Zeichen eine Zahl größer als 255 angeben, wandelt String die Zahl mit der folgenden Formel in einen gültigen Zeichencode um:

Zeichen Mod 256

Das folgende Beispiel zeigt die Verwendung der String-Funktion, um eine Zeichenfolge mit sich wiederholenden Zeichen in der angegebenen Länge zurückzugeben:

Dim MeineZf
MeineZf = String(5, "*")   ' Ergibt "*****".
MeineZf = String(5, 42)   ' Ergibt "*****".
MeineZf = String(10, "ABC")   ' Ergibt "AAAAAAAAAA".

Anforderungen

Version 1

Space-Funktion


StrReverse-Funktion

Gibt eine Zeichenfolge zurück, in der die Reihenfolge der Zeichen der angegebenen Zeichenfolge umgekehrt wurde.

StrReverse(Zeichenfolge1)

Das Argument Zeichenfolge1 gibt die Zeichenfolge an, in der die Reihenfolge der Zeichen umgekehrt werden soll. Ist Zeichenfolge1 eine Zeichenfolge der Länge Null (""), wird auch eine Zeichenfolge der Länge 0 zurückgegeben. Handelt es sich bei Zeichenfolge1 um Null, tritt ein Fehler auf.

Hinweise

Das folgende Beispiel zeigt die Verwendung der StrReverse-Funktion, um eine Zeichenfolge umgekehrt auszugeben:

Dim MeineZf
MeineZf = StrReverse("VBScript") ' MeineZf enthält "tpircSBV".

Anforderungen

Version 1


Tan-Funktion

Berechnet den Tangens eines Winkels.

Tan(Zahl)

Das Argument Zahl kann ein beliebiger numerischer Ausdruck sein, der einen Winkel im Bogenmaß angibt.

Hinweise

Tan berechnet aus einem Winkel den Quotienten von zwei Seiten eines rechtwinkligen Dreiecks. Der Quotient ist das Längenverhältnis von Gegenkathete zu Ankathete.

Zur Umrechnung von Grad ins Bogenmaß muss die Gradangabe mit pi/180 multipliziert werden. Zur Umrechnung von Bogenmaß in Grad muss das Bogenmaß mit 180/pi multipliziert werden.

Das folgende Beispiel zeigt die Verwendung der Tan-Funktion, um den Kotangens eines Winkels zu berechnen:

Dim MeinWinkel, MeinKotangens
MeinWinkel = 1.3   ' Definiert einen Winkel im Bogenmaß.
MeinKotangens = 1 / Tan(MeinWinkel)   ' Berechnet den Kotangens.

Anforderungen

Version 1

Siehe auch

Abgeleitete mathematische Funktionen | Atn-Funktion | Cos-Funktion | Sin-Funktion


Time-Funktion

Gibt einen Wert vom Typ Variant mit dem Untertyp Date zurück, der die aktuelle Systemzeit angibt.

Time

Hinweise

Das folgende Beispiel zeigt die Verwendung der Time-Funktion, um die aktuelle Systemzeit zurückzugeben:

Dim MeineZeit
MeineZeit = Time   ' Gibt die aktuelle Systemzeit zurück.

Anforderungen

Version 1

Date-Funktion


Timer-Funktion

Gibt die Anzahl der seit 24:00 Uhr (Mitternacht) vergangenen Sekunden an.

Timer

Hinweise

Das folgende Beispiel verwendet die Timer-Funktion, um die benötigte Zeit zum N-maligen Durchlaufen einer For...Next-Schleife zu bestimmen:

Function ZeitMessen(N)
   Dim Beginn, Ende
   Beginn = Timer
   For I = 1 To N
   Next
   Ende = Timer
   ZeitMessen = Ende - Beginn
End Function

Anforderungen

Version 5

Randomize-Anweisung


TimeSerial-Funktion

Gibt einen Wert vom Typ Variant mit dem Untertyp Date zurück, der die Uhrzeit für eine bestimmte Stunde, Minute und Sekunde enthält.

TimeSerial(Stunde, Minute, Sekunde)

Argumente

Stunde
Zahl im Bereich von 0 (00:00) bis 23 (23:00) (je einschließlich) oder ein numerischer Ausdruck.
Minute
Beliebiger numerischer Ausdruck.
Sekunde
Beliebiger numerischer Ausdruck.

Hinweise

Wenn Sie eine Zeit (z. B. 11:59:59) angeben, sollten sich die Zahlen für die Argumente von TimeSerial im jeweils gültigen Bereich befinden, also im Bereich 0-23 für Stunden und 0-59 für Minuten und Sekunden. Alternativ können Sie einen relativen Wert für die einzelnen Argumente mit einem beliebigen numerischen Ausdruck angeben, der eine bestimmte Anzahl an Stunden, Minuten oder Sekunden vor oder nach einem Zeitpunkt angibt.

Das folgende Beispiel zeigt die Verwendung von Ausdrücken anstelle absoluter Zeitwerte. Die TimeSerial-Funktion gibt die Uhrzeit für den Zeitpunkt 15 Minuten vor (-15) der Stunde zurück, die sechs Stunden vor 12 Uhr (12 - 6) liegt. Das Ergebnis ist 5:45:00.

Dim MeineZeit
MeineZeit = TimeSerial(12 - 6, -15, 0) ' Gibt 5:45:00 zurück.

Wenn ein Argument den zulässigen Bereich für das Argument überschreitet, erfolgt ein Übertrag auf die nächstgrößere Einheit. Wenn Sie beispielsweise 75 Minuten angeben, wird dies als eine Stunde und 15 Minuten interpretiert. Wenn aber eines der Argumente außerhalb des Bereichs -32.768 bis 32.767 liegt oder wenn die durch die drei Argumente (direkt oder durch einen Ausdruck) angegebene Zeit außerhalb des zulässigen Bereichs liegt, tritt ein Fehler auf.

Anforderungen

Version 1

Siehe auch

DateSerial-Funktion | DateValue-Funktion | Hour-Funktion | Minute-Funktion | Now-Funktion | Second-Funktion | TimeValue-Funktion


TimeValue-Funktion

Gibt einen Wert vom Typ Variant mit dem Untertyp Date zurück, der die Uhrzeit enthält.

TimeValue(Uhrzeit)

Das Argument Uhrzeit ist normalerweise ein Zeichenfolgenausdruck, der eine Zeit im Bereich von 0:00:00 bis 23:59:59 darstellt. Alternativ können Sie für Uhrzeit einen beliebigen Ausdruck angeben, der eine Zeit aus diesem Bereich ergibt. Wenn Uhrzeit den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Zeitangaben sind in der 24-Stunden-Schreibweise und der 12-Stunden-Schreibweise zulässig. Die Angaben 2:24PM und 14:24 sind daher beide gültige Werte für Uhrzeit. Wenn das Argument Uhrzeit eine Datumsangabe enthält, wird diese von TimeValue nicht zurückgegeben. Wenn Uhrzeit jedoch ein ungültiges Datum enthält, tritt ein Fehler auf.

Das folgende Beispiel verwendet die TimeValue-Funktion, um eine Zeichenfolge in eine Uhrzeit zu konvertieren. Sie können auch mit Datumsliteralen einem Variant direkt eine Uhrzeit zuweisen (z. B. MeineZeit = #16:35:17#).

Dim MeineZeit
MeineZeit = TimeValue("4:35:17 PM")   ' MeineZeit enthält 16:35:17.

Anforderungen

Version 1

Siehe auch

DateSerial-Funktion | DateValue-Funktion | Hour-Funktion | Minute-Funktion | Now-Funktion | Second-Funktion | TimeSerial-Funktion


TypeName-Funktion

Gibt eine Zeichenfolge mit Informationen zum Variant-Untertyp einer Variablen zurück.

TypeName(Variablenname)

Das erforderliche Argument Variablenname kann jede beliebige Variable sein.

Rückgabewerte

Die TypeName-Funktion hat folgende Rückgabewerte:

Wert | Beschreibung
Byte | Bytewert
Integer | Ganzzahliger Wert
Long | Long Integer-Wert
Single | Fließkommawert mit einfacher Genauigkeit
Double | Fließkommawert mit doppelter Genauigkeit
Currency | Währungsbetrag
Decimal | Dezimalwert
Date | Datums- oder Zeitangabe
String | Zeichenfolge
Boolean | Boolescher Wert; True oder False
Empty | Nicht initialisiert
Null | Keine gültigen Daten
<Objekttyp> | Tatsächlicher Typname eines Objekts
Objekt | Allgemeines Objekt
Unknown | Unbekannter Objekttyp
Nothing | Objektvariable, noch ohne Bezug auf Objektinstanz
Error | Fehler

Hinweise

Das folgende Beispiel zeigt die Verwendung der TypeName-Funktion, um Informationen über eine Variable zurückzugeben:

Dim DialogfeldVar(4), MeinTyp
NullVar = Null   ' Weist Nullwert zu.

MeinTyp = TypeName("VBScript")   ' Gibt "String" zurück.
MeinTyp = TypeName(4)            ' Gibt "Integer" zurück.
MeinTyp = TypeName(37.50)        ' Gibt "Double" zurück.
MeinTyp = TypeName(NullVar)      ' Gibt "Null" zurück.
MeinTyp = TypeName(ArrayVar) ' Gibt "Variant()" zurück.

Anforderungen

Version 2

Siehe auch

IsArray-Funktion | IsDate-Funktion | IsEmpty-Funktion | IsNull-Funktion | IsNumeric-Funktion | IsObject-Funktion | VarType-Funktion


UBound-Funktion

Liefert den größten verfügbaren Index für die angegebene Dimension eines Arrays.

UBound(Arrayname[, Dimension])

Argumente

Arrayname
Erforderlich. Name der Arrayvariablen gemäß den Standardkonventionen für Namen von Variablen.
Dimension
Optional. Ganze Zahl, die angibt, für welche Dimension die obere Grenze zurückgegeben werden soll. Verwenden Sie für die erste Dimension 1, für die zweite Dimension 2 usw. Wird Dimension nicht angegeben, wird von 1 ausgegangen.

Hinweise

Die UBound-Funktion kann zusammen mit der LBound-Funktion verwendet werden, um die Größe eines Arrays zu bestimmen. LBound liefert die Untergrenze einer Arraydimension.

Die Untergrenze für jede Dimension ist immer 0. UBound gibt für ein Array mit den folgenden Dimensionen die in der nachfolgenden Tabelle aufgeführten Werte zurück:

Dim A(100,3,4)
Anweisung | Rückgabewert
UBound(A, 1) | 100
UBound(A, 2) | 3
UBound(A, 3) | 4

Anforderungen

Version 1

Dim-Anweisung | LBound-Funktion | ReDim-Anweisung


UCase-Funktion

Gibt eine Zeichenfolge zurück, die in Großbuchstaben umgewandelt wurde.

UCase(Zeichenfolge)

Das Argument Zeichenfolge ist ein beliebiger gültiger Zeichenfolgenausdruck. Wenn Zeichenfolge den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Lediglich Kleinbuchstaben werden in Großbuchstaben umgewandelt. Alle Großbuchstaben und sonstigen Zeichen bleiben unverändert.

Das folgende Beispiel zeigt die Verwendung der UCase-Funktion, um eine Zeichenfolge in Großbuchstaben zu konvertieren:

Dim MeinWort
MeinWort = UCase("Hallo Welt")   ' Gibt "HALLO WELT" zurück.

Anforderungen

Version 1

LCase-Funktion


VarType-Funktion

Gibt einen Wert zurück, der den Untertyp einer Variablen angibt.

VarType(VarName)

Das Argument VarName kann eine beliebige Variable sein.

Rückgabewerte

Die VarType-Funktion gibt die folgenden Werte zurück:

Konstante | Wert | Beschreibung
vbEmpty | 0 | Empty (nicht initialisiert)
vbNull | 1 | Null (ungültigeDaten)
vbInteger | 2 | Ganzzahl
vbLong | 3 | Long Integer
vbSingle | 4 | Fließkommazahl einfacher Genauigkeit
vbDouble | 5 | Fließkommazahl doppelter Genauigkeit
vbCurrency | 6 | Währung
vbDate | 7 | Datum
vbString | 8 | Zeichenfolge
vbObject | 9 | Automatisierungsobjekt
vbError | 10 | Fehler
vbBoolean | 11 | Boolesch
vbVariant | 12 | Variant (nur bei Arrays mit Variant-Werten).
vbDataObject | 13 | Datenzugriffsobjekt
vbByte | 17 | Byte
vbArray | 8192 | Array
Anmerkung Diese Konstanten sind von VBScript festgelegt. Aus diesem Grund können die Namen in Ihrem Code an einer beliebigen Stelle statt der tatsächlichen Werte verwendet werden.

Hinweise

Die VarType-Funktion gibt niemals nur den Wert für das Array zurück. Der Wert wird immer zu einem anderen Wert addiert, um ein Array eines bestimmten Typs anzugeben. Der Wert für den Datentyp Variant wird erst zurückgegeben, wenn es zum Wert für Array addiert wurde, um anzuzeigen, dass das Argument für die VarType-Funktion ein Array ist. Zum Beispiel wird der Wert, der für ein Array aus Ganzzahlen zurückgegeben wird, als 2 + 8192 oder 8194 angegeben. Wenn ein Objekt eine Standardeigenschaft hat, gibt VarType(Objekt) den Typ dieser Standardeigenschaft zurück.

Das folgende Beispiel verwendet die VarType-Funktion, um den Untertyp einer Variablen zu bestimmen.

Dim MeinTest
MeinTest = VarType(300)          ' Gibt 2 zurück.
MeinTest = VarType(#10/19/62#)   ' Gibt 7 zurück.
MeinTest = VarType("VBScript")   ' Gibt 8 zurück.

Anforderungen

Version 1

Siehe auch

IsArray-Funktion | IsDate-Funktion | IsEmpty-Funktion | IsNull-Funktion | IsNumeric-Funktion | IsObject-Funktion | TypeName-Funktion


Weekday-Funktion

Gibt den Wochentag als ganze Zahl zurück.

Weekday(Datum,[ErsterWochentag])

Argumente

Datum
Ein beliebiger Ausdruck , der ein Datum darstellen kann. Wenn Datum den Wert Null enthält, wird Null zurückgegeben.
ErsterWochentag
Eine Konstante, die den ersten Wochentag angibt. Wird kein Wert angegeben, wird vbSunday angenommen.

Einstellungen

Das Argument ErsterWochentag hat die folgenden Einstellungen:

Konstante | Wert | Beschreibung
vbUseSystemDayOfWeek | 0 | Einstellung der NLS (National Language Support)-API verwenden.
vbSunday | 1 | Sonntag
vbMonday | 2 | Montag
vbTuesday | 3 | Dienstag
vbWednesday | 4 | Mittwoch
vbThursday | 5 | Donnerstag
vbFriday | 6 | Freitag
vbSaturday | 7 | Samstag

Rückgabewerte

Die Weekday-Funktion kann einen der folgenden Werte zurückgeben:

Konstante | Wert | Beschreibung
vbSunday | 1 | Sonntag
vbMonday | 2 | Montag
vbTuesday | 3 | Dienstag
vbWednesday | 4 | Mittwoch
vbThursday | 5 | Donnerstag
vbFriday | 6 | Freitag
vbSaturday | 7 | Samstag

Hinweise

Das folgende Beispiel zeigt die Verwendung der Weekday-Funktion, um den Wochentag eines gegebenen Datums anzufordern:

Dim MeinDatum, MeinWochenTag
MeinDatum = #5 April 1974#           ' Datum zuweisen.
MeinWochenTag = Weekday(MeinDatum)   ' MeinWochenTag enthält 6, da MeinDatum einen Freitag darstellt.

Anforderungen

Version 1

Siehe auch

Date-Funktion | Day-Funktion | Month-Funktion | Now-Funktion | Year-Funktion


WeekdayName-Funktion

Gibt eine Zeichenfolge mit dem angegebenen Wochentag zurück.

WeekDayName(Wochentag, Abkürzen, ErsterWochentag)

Argumente

Wochentag
Erforderlich. Der numerische Wert für den Wochentag. Der numerische Wert für jeden Tag ist abhängig von der Einstellung für ErsterWochentag.
Abkürzen
Optional. Boolescher Wert, der angibt, ob der Name des Wochentags abgekürzt werden soll. Ohne weitere Angabe ist die Voreinstellung False, d. h. der Name des Wochentages wird nicht abgekürzt.
ErsterWochentag
Optional. Numerischer Wert, der den ersten Wochentag angibt. Gültige Werte sind im Abschnitt "Einstellungen" aufgeführt.

Einstellungen

Das Argument ErsterWochentag kann die folgenden Werte haben:

Konstante | Wert | Beschreibung
vbUseSystemDayOfWeek | 0 | Einstellung der NLS (National Language Support)-API verwenden.
vbSunday | 1 | Sonntag (Standard)
vbMonday | 2 | Montag
vbTuesday | 3 | Dienstag
vbWednesday | 4 | Mittwoch
vbThursday | 5 | Donnerstag
vbFriday | 6 | Freitag
vbSaturday | 7 | Samstag

Hinweise

Das folgende Beispiel zeigt die Verwendung der WeekDayName-Funktion, um den angegebenen Tag zurückzugeben:

Dim MeinDatum
MeinDatum = WeekDayName(6, True)   ' MeinDatum enthält Fr.

Anforderungen

Version 2

MonthName-Funktion


Year-Funktion

Gibt das Jahr als ganze Zahl zurück.

Year(Datum)

Das Argument Datum ist ein beliebiger Ausdruck, der ein Datum darstellen kann. Wenn Datum den Wert Null enthält, wird Null zurückgegeben.

Hinweise

Das folgende Beispiel zeigt die Verwendung der Year-Funktion, um das Jahr eines gegebenen Datums anzufordern:

Dim MeinDatum, MeinJahr
MeinDatum = #19 Januar 1962#       ' Datum zuweisen.
MeinJahr = Year(MeinDatum)         ' MeinJahr enthält 1962.

Anforderungen

Version 1

Siehe auch

Date-Funktion | Day-Funktion | Month-Funktion | Now-Funktion | Weekday-Funktion


VBScript-Schlüsselwörter

Empty

False

Nothing

Null

True

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Empty

Mit dem Schlüsselwort Empty wird ein nicht initialisierter Variablenwert angegeben. Dies ist jedoch nicht dasselbe wie Null.

Null


False

Das Schlüsselwort False hat einen Wert von 0.

True


Nothing

Das Schlüsselwort Nothing wird in VBScript verwendet, um eine Objektvariable von jedem tatsächlichen Objekt zu trennen. Sie können mit der Set-Anweisung einer Objektvariablen den Wert Nothing zuweisen. Beispiel:

Set MeinObjekt = Nothing

Mehrere Objektvariablen können auf dasselbe Objekt verweisen. Wird Nothing einer Objektvariablen zugewiesen, verweist diese Variable nicht länger auf ein tatsächliches Objekt. Verweisen mehrere Objektvariablen auf dasselbe Objekt, werden mit diesem Objekt über die zugehörigen Variablen zugewiesene Speicher- und Systemressourcen nur freigegeben, nachdem all diese auf Nothing gesetzt wurden; dies wird entweder explizit über Set realisiert oder implizit, nachdem die letzte auf Nothing gesetzte Objektvariable aus dem Gültigkeitsbereich fällt.

Dim-Anweisung | Set-Anweisung


Null

Das Schlüsselwort Null wird verwendet, um anzugeben, dass eine Variable keine gültigen Daten enthält. Dies ist jedoch nicht dasselbe wie Empty.

Empty


True

Das Schlüsselwort True hat einen Wert von -1.

False


Methoden

In diesem Abschnitt

Clear-Methode

Execute-Methode

Raise-Methode

Replace-Methode

Test-Methode

Verwandte Abschnitte

VBScript-Sprachverzeichnisse


Clear-Methode

Löscht die Einstellungen aller Eigenschaften des Err-Objekts.

Objekt.Clear

Das Objekt ist immer das Err-Objekt.

Hinweise

Mit Clear löschen Sie explizit das Err-Objekt, nachdem ein Fehler bearbeitet wurde. Dies ist zum Beispiel erforderlich, wenn Sie On Error Resume Next verwenden und die Fehler erst später verarbeiten. VBScript ruft die Clear-Methode automatisch auf, sobald eine der folgenden Anweisungen ausgeführt wird:

  • On Error Resume Next
  • Exit Sub
  • Exit Function

Das folgende Beispiel zeigt die Verwendung der Clear-Methode.

On Error Resume Next
Err.Raise 6  ' Erzeugt einen Überlauffehler.
MsgBox ("Fehler # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    ' Löscht die Fehlermeldung.

Anforderungen

Version 1

Siehe auch

Description-Eigenschaft | Err-Objekt | Number-Eigenschaft | On Error-Anweisung | Raise-Methode | Source-Eigenschaft

Betrifft: Err-Objekt


Execute-Methode (VBScript)

Visual Basic Scripting Edition

Execute-Methode

Führt die Suche mit regulärem Ausdruck in einer angegebenen Zeichenfolge aus.

Objekt.Execute(Zeichenfolge)

Argumente

Objekt
Erforderlich. Stets der Name eines RegExp-Objekts.
Zeichenfolge
Erforderlich. Die Textzeichenfolge, auf der der reguläre Ausdruck ausgeführt wird.

Hinweise

Das eigentliche Muster für die Suche mit regulärem Ausdruck wird mithilfe der Pattern-Eigenschaft des RegExp-Objekts festgelegt.

Die Execute-Methode gibt eine Matches-Auflistung mit einem Match-Objekt für jede in Zeichenfolge gefundene Entsprechung zurück. Execute gibt eine leere Matches-Auflistung zurück, wenn keine Entsprechung gefunden wurde.

Der folgende Code verdeutlicht die Verwendung der Execute-Methode.

Function RegAusdrTest(Suchmuster, Zeichenfolge)
  Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, RueckgabeZf   ' Variablen erstellen.
  Set regAusdr = New RegExp         ' Erstellt einen regulären Ausdruck.
  regAusdr.Pattern = Suchmuster         ' Legt das Suchmuster fest.
  regAusdr.IgnoreCase = True         ' Ignoriert die Schreibweise.
  regAusdr.Global = True         ' Legt globales Anwenden fest.
  Set Uebereinstimmungen = regEx.Execute(Zeichenfolge)   ' Führt die Suche aus.
  For Each Uebereinstimmung in Uebereinstimmungen      ' Durchläuft die Matches-Auflistung.
    RueckgabeZf = RueckgabeZf & "Entsprechung gefunden bei "
    RueckgabeZf = RueckgabeZf & Match.FirstIndex & ". Wert ist '"
    RueckgabeZf = RueckgabeZf & Uebereinstimmung.Value & "'." & vbCRLF
  Next
  RegAusdrTest = RueckgabeZf
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 5

Siehe auch

Replace-Methode | Test-Methode

Betrifft: RegExp-Objekt


Raise-Methode

Löst einen Laufzeitfehler aus.

Objekt.Raise(Zahl, Quelle, Beschreibung, Hilfedatei, Hilfekontext)

Argumente

Objekt
Stets das Err-Objekt.
Zahl
Ein Wert des Untertyps Long, der den Fehler kennzeichnet. VBScript-Fehler (sowohl integrierte VBScript-Fehler als auch benutzerdefinierte Fehler) liegen im Bereich 0-65535.
Quelle
Ein Zeichenfolgenausdruck, der das Objekt oder die Anwendung bezeichnet, das oder die ursprünglich den Fehler ausgelöst hat. Wenn Sie diese Eigenschaft für ein Automatisierungsobjekt festlegen, verwenden Sie die Form Projekt.Klasse. Wenn kein Ausdruck angegeben wird, wird die Ressourcenkennzeichnung (Programmatic ID) des aktuellen VBScript-Projekts verwendet.
Beschreibung
Ein Zeichenfolgenausdruck, der den Fehler beschreibt. Wenn kein Ausdruck angegeben wird, wird der Wert in Zahl untersucht. Wenn er dem Code eines VBScript-Laufzeitfehlers zugeordnet werden kann, wird die Zeichenfolge, die von VBScript zurückgegeben wurde, für Beschreibung verwendet. Wenn kein VBScript-Fehler dem Wert von Zahl entspricht, wird eine allgemeine Fehlermeldung verwendet.
Hilfedatei
Die vollständige Pfadangabe zur Hilfedatei, in der sich eine Beschreibung zu diesem Fehler befindet. Wird dieser Teil nicht angegeben, verwendet VBScript die vollständigen Angaben zu Laufwerk, Pfad und Dateiname der VBScript-Hilfedatei.
Hilfekontext
Die Kontext-ID gibt ein Thema innerhalb von Hilfedatei an, die Hilfeinformationen zu diesem Fehler bereitstellt. Wird dieser Teil nicht angegeben, wird die Kontext-ID der VBScript-Hilfedatei verwendet, die der entsprechenden number-Eigenschaft (sofern vorhanden) für diesen Fehler entspricht.

Hinweise

Alle Argumente bis auf Zahl sind optional. Wenn Sie dagegen Raise verwenden, ohne Argumente anzugeben, und die Einstellungen der Eigenschaften des Err-Objekts Werte enthalten, die noch nicht gelöscht wurden, werden diese Werte für Ihren Fehler verwendet.

Wenn Sie die number-Eigenschaft in einem Automatisierungsobjekt auf Ihren eigenen Fehlercode einstellen möchten, müssen Sie die Fehlercodenummer zur Konstanten vbObjectError addieren. Um beispielsweise die Fehlernummer 1050 zu erzeugen, weisenSie der Number-Eigenschaft den Wert vbObjectError + 1050 zu.

Das folgende Beispiel zeigt die Verwendung der Raise-Methode.

On Error Resume Next
Err.Raise 6  ' Erzeugt einen Überlauffehler.
MsgBox ("Fehler Nr. " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    ' Löscht die Fehlermeldung.

Anforderungen

Version 1

Siehe auch

Clear-Methode | Description-Eigenschaft | Err-Objekt | Number-Eigenschaft | Source-Eigenschaft

Betrifft: Err-Objekt


Replace-Methode

Ersetzt den bei einer Suche mit regulärem Ausdruck gefundenen Text.

Objekt.Replace(Zeichenfolge1, Zeichenfolge2)

Argumente

Objekt
Erforderlich. Stets der Name eines RegExp-Objekts.
Zeichenfolge1
Erforderlich. Zeichenfolge1 ist die Textzeichenfolge, in der Textersetzungen durchgeführt werden.
Zeichenfolge2
Erforderlich. Zeichenfolge2 ist die ersetzende Textzeichenfolge.

Hinweise

Das eigentliche Muster für den zu ersetzenden Text wird durch Verwendung der Pattern-Eigenschaft des RegExp-Objekts festgelegt.

Die Replace-Methode gibt eine Kopie von Zeichenfolge1 zurück, in der der text aus RegExp.Pattern durch Zeichenfolge2 ersetzt ist. Wird keine Entsprechung gefunden, wird eine nicht geänderte Kopie von Zeichenfolge1 zurückgegeben.

Der folgende Code veranschaulicht die Verwendung der Replace-Methode.

Function ReplaceDemo(Suchmuster, ErsatzZf)
  Dim regAusdr, Zf1                  ' Variablen erstellen.
  Zf1 = "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern."
  Set regAusdr = New RegExp            ' Erstellt einen regulären Ausdruck.
  regAusdr.Pattern = Suchmuster            ' Legt das Suchmuster fest.
  regAusdr.IgnoreCase = True            ' Ignoriert die Groß-/Kleinschreibung.
  regAusdr.Global = True               ' Legt globales Anwenden fest.
  ReplaceDemo = regAusdr.Replace(Zf1, ErsatzZf)   ' Führt die Ersetzung durch.
End Function
MsgBox(ReplaceDemo("Taxi", "Auto"))      ' Ersetzt 'Taxi' durch 'Auto'.

Darüber hinaus kann die Replace-Methode Teilausdrücke in einem Muster ersetzen. Der folgende Aufruf des zuvor beschriebenen Beispiels vertauscht die einzelnen Wortpaare in der ursprünglichen Zeichenfolge:

MsgBox(ReplaceDemo("(\S+)(\s+)(\S+)", "$3$2$1"))   ' Vertauscht die Wortpaare.

Anforderungen

Version 5

Siehe auch

Execute-Methode | Test-Methode

Betrifft: RegExp-Objekt


Test-Methode

Führt eine Suche mit regulärem Ausdruck auf eine angegebene Zeichenfolge aus und gibt einen booleschen Wert zurück, der angibt, ob ein Muster gefunden wurde.

Objekt.Test(Zeichenfolge)

Argumente

Objekt
Erforderlich. Stets der Name eines RegExp-Objekts.
Zeichenfolge
Erforderlich. Die Textzeichenfolge, auf der der reguläre Ausdruck ausgeführt wird.

Hinweise

Das eigentliche Muster für die Suche mit regulärem Ausdruck wird mithilfe der Pattern-Eigenschaft des RegExp-Objekts festgelegt. Die RegExp.Global-Eigenschaft hat keine Auswirkungen auf die Test-Methode.

Die Test-Methode gibt True zurück, wenn ein Muster gefunden wurde, andernfalls False.

Der folgende Code veranschaulicht die Verwendung der Test-Methode.

Function RegAusdrTest(Suchmuster, Zeichenfolge)
  Dim regAusdr, Rueckgabewert            ' Variablen erstellen.
  Set regAusdr = New RegExp         ' Erstellt einen regulären Ausdruck.
  regAusdr.Pattern = Suchmuster         ' Legt das Suchmuster fest.
  regAusdr.IgnoreCase = False      ' Legt Groß-/Kleinschreibung fest.
  Rueckgabewert = regAusdr.Test(Zeichenfolge)      ' Führt den Suchtest aus.
  If Rueckgabewert Then
    RegAusdrTest = "Es wurden eine oder mehrere Entsprechungen gefunden."
  Else
    RegAusdrTest = "Es wurden keine Entsprechung gefunden."
  End If
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 5

Siehe auch

Execute-Methode | Replace-Methode

Betrifft: RegExp-Objekt


Verschiedenes

In diesem Abschnitt

Zeichensatz (0 - 127)

Zeichensatz (128 - 255)

Gebietsschema-ID (LCID)-Diagramm

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Zeichensatz (0 - 127)

In der folgenden Tabelle sind die Nummern 0 - 127 aufgeführt.

Code | Zeichen | Code | Zeichen | Code | Zeichen | Code | Zeichen
0 |  | 32 | [Leer] | 64 | @ | 96 | `
1 |  | 33 | ! | 65 | A | 97 | a
2 |  | 34 | " | 66 | B | 98 | b
3 |  | 35 | # | 67 | C | 99 | c
4 |  | 36 | $ | 68 | D | 100 | d
5 |  | 37 | % | 69 | E | 101 | e
6 |  | 38 | & | 70 | F | 102 | f
7 |  | 39 | ' | 71 | G | 103 | g
8 | ** | 40 | ( | 72 | H | 104 | h
9 | ** | 41 | ) | 73 | I | 105 | i
10 | ** | 42 | * | 74 | J | 106 | j
11 |  | 43 | + | 75 | K | 107 | k
12 |  | 44 | , | 76 | L | 108 | l
13 | ** | 45 | - | 77 | M | 109 | m
14 |  | 46 | . | 78 | N | 110 | n
15 |  | 47 | / | 79 | O | 111 | o
16 |  | 48 | 0 | 80 | P | 112 | p
17 |  | 49 | 1 | 81 | Q | 113 | q
18 |  | 50 | 2 | 82 | R | 114 | r
19 |  | 51 | 3 | 83 | S | 115 | s
20 |  | 52 | 4 | 84 | T | 116 | t
21 |  | 53 | 5 | 85 | U | 117 | u
22 |  | 54 | 6 | 86 | V | 118 | v
23 |  | 55 | 7 | 87 | W | 119 | w
24 |  | 56 | 8 | 88 | X | 120 | x
25 |  | 57 | 9 | 89 | Y | 121 | y
26 |  | 58 | : | 90 | Z | 122 | z
27 |  | 59 | ; | 91 | [ | 123 | {
28 |  | 60 | < | 92 | \ | 124 | |
29 |  | 61 | = | 93 | ] | 125 | }
30 | - | 62 | > | 94 | ^ | 126 | ~
31 |  | 63 | ? | 95 | _ | 127 | 

** Die Werte 8, 9, 10 und 13 werden zu Rücktasten-, Tabulator-, Zeilenvorschub- bzw. Wagenrücklaufzeichen konvertiert. Sie können grafisch zwar nicht dargestellt werden, haben jedoch, je nach verwendeter Anwendung, Auswirkungen auf die visuelle Darstellung von Text.

 Werden auf diesem System nicht unterstützt.

Siehe auch

Zeichensatz (128 - 255)


Zeichensatz (128 - 255)

In der folgenden Tabelle sind die Nummern 128 -255 aufgeführt.

Code | Zeichen | Code | Zeichen | Code | Zeichen | Code | Zeichen
128 | € | 160 | [Leer] | 192 | À | 224 | à
129 |  | 161 | ¡ | 193 | À | 225 | á
130 | ‚ | 162 | ¢ | 194 | Â | 226 | â
131 | ƒ | 163 | £ | 195 | Ã | 227 | ã
132 | ‚‚ | 164 | ¤ | 196 | Ä | 228 | ä
133 | … | 165 | ¥ | 197 | Å | 229 | å
134 | † | 166 | ¦ | 198 | Æ | 230 | æ
135 | ‡ | 167 | § | 199 | Ç | 231 | ç
136 | ˆ | 168 | ¨ | 200 | È | 232 | è
137 | ‰ | 169 | © | 201 | É | 233 | é
138 | Š | 170 | ª | 202 | Ê | 234 | ê
139 | ‹ | 171 | ‹‹ | 203 | Ë | 235 | ë
140 | Œ | 172 | ¬ | 204 | Ì | 236 | ì
141 |  | 173 |  | 205 | Í | 237 | í
142 | Ž | 174 | ® | 206 | Î | 238 | î
143 |  | 175 | ¯ | 207 | Ï | 239 | ï
144 |  | 176 | ° | 208 | Ð | 240 | ð
145 | ' | 177 | ± | 209 | Ñ | 241 | ñ
146 | ' | 178 | ² | 210 | Ò | 242 | ò
147 | " | 179 | ³ | 211 | Ó | 243 | ó
148 | " | 180 | ´ | 212 | Ô | 244 | ô
149 | · | 181 | µ | 213 | Õ | 245 | õ
150 | – | 182 | ¶ | 214 | Ö | 246 | ö
151 | — | 183 | · | 215 | × | 247 | ÷
152 | ˜ | 184 | ¸ | 216 | Ø | 248 | ø
153 | ™ | 185 | ¹ | 217 | Ù | 249 | ù
154 | š | 186 | º | 218 | Ú | 250 | ú
155 | › | 187 | ›› | 219 | Û | 251 | û
156 | œ | 188 | ¼ | 220 | Ü | 252 | ü
157 |  | 189 | ½ | 221 | Ý | 253 | ý
158 | ž | 190 | ¾ | 222 | Þ | 254 | þ
159 | Ÿ | 191 | ¿ | 223 | ß | 255 | ÿ

 Werden auf diesem System nicht unterstützt.

Siehe auch

Zeichensatz (0 - 127)


Gebietsschema-ID (LCID)-Diagramm

In der folgenden Tabelle sind Gebietsschema-IDs (LCIDs) aufgeführt.

Beschreibung des Gebietsschemas | Kurzzeichenfolge | Hexadezimalwert | Dezimalwert | Beschreibung des Gebietsschemas | Kurzzeichenfolge | Hexadezimalwert | Dezimalwert
Afrikaans | af | 0x0436 | 1078 | Jiddisch | yi | 0x043D | 1085
Albanisch | sq | 0x041C | 1052 | Katalanisch | ca | 0x0403 | 1027
Arabisch - Ägypten | ar-eg | 0x0C01 | 3073 | Koreanisch | ko | 0x0412 | 1042
Arabisch - Algerien | ar-dz | 0x1401 | 5121 | Kroatisch | hr | 0x041A | 1050
Arabisch - Bahrain | ar-bh | 0x3C01 | 15361 | Lettisch | lv | 0x0426 | 1062
Arabisch - Irak | ar-iq | 0x0801 | 2049 | Litauisch | lt | 0x0427 | 1063
Arabisch - Jemen | ar-ye | 0x2401 | 9217 | Malaiisch – Brunei | ms-bn | 0x083E | 2110
Arabisch - Jordanien | ar-jo | 0x2C01 | 11265 | Malaiisch - Malaysia | ms-my | 0x043E | 1086
Arabisch - Kuwait | ar-kw | 0x3401 | 13313 | Maltesisch | mt | 0x043A | 1082
Arabisch - Libanon | ar-lb | 0x3001 | 12289 | Marathi | mr | 0x044E | 1102
Arabisch - Libyen | ar-ly | 0x1001 | 4097 | Niederländisch - Belgien | nl-be | 0x0813 | 2067
Arabisch - Marokko | ar-ma | 0x1801 | 6145 | Niederländisch – Niederlande | nl-nl | 0x0413 | 1043
Arabisch - Oman | ar-om | 0x2001 | 8193 | Norwegisch - Bokmål | no-no | 0x0414 | 1044
Arabisch - Qatar | ar-qa | 0x4001 | 16385 | Norwegisch – Nynorsk | no-no | 0x0814 | 2068
Arabisch - Saudi-Arabien | ar-sa | 0x0401 | 1025 | Polnisch | pl | 0x0415 | 1045
Arabisch - Syrien | ar-sy | 0x2801 | 10241 | Portugiesisch - Brasilien | pt-br | 0x0416 | 1046
Arabisch - Tunesien | ar-tn | 0x1C01 | 7169 | Portugiesisch - Portugal | pt-pt | 0x0816 | 2070
Arabisch – V.A.E. | ar-ae | 0x3801 | 14337 | Rätoromanisch | rm | 0x0417 | 1047
Armenisch | hy | 0x042B | 1067 | Rumänisch - Moldawien | ro-mo | 0x0818 | 2072
Aserbaidschanisch – Kyrillisch | az-az | 0x082C | 2092 | Rumänisch - Rumänien | ro | 0x0418 | 1048
Aserbaidschanisch – Lateinisch | az-az | 0x042C | 1068 | Russisch | ru | 0x0419 | 1049
Baskisch | eu | 0x042D | 1069 | Russisch - Moldawien | ru-mo | 0x0819 | 2073
Bulgarisch | bg | 0x0402 | 1026 | Sanskrit | sa | 0x044F | 1103
Chinesisch – SAR Hongkong | zh-hk | 0x0C04 | 3076 | Schwedisch - Finnland | sv-fi | 0x081D | 2077
Chinesisch – SAR Macao | zh-mo | 0x1404 | 5124 | Schwedisch - Schweden | sv-se | 0x041D | 1053
Chinesisch - Singapur | zh-sg | 0x1004 | 4100 | Serbisch - Kyrillisch | sr-sp | 0x0C1A | 3098
Chinesisch - Taiwan | zh-tw | 0x0404 | 1028 | Serbisch – Lateinisch | sr-sp | 0x081A | 2074
Chinesisch – VR China | zh-cn | 0x0804 | 2052 | Setswana | tn | 0x0432 | 1074
Dänisch | da | 0x0406 | 1030 | Slowakisch | sk | 0x041B | 1051
Deutsch - Deutschland | de-de | 0x0407 | 1031 | Slowenisch | sl | 0x0424 | 1060
Deutsch – Liechtenstein | de-li | 0x1407 | 5127 | Sorbisch | sb | 0x042E | 1070
Deutsch - Luxemburg | de-lu | 0x1007 | 4103 | Spanisch – Argentinien | es-ar | 0x2C0A | 11274
Deutsch - Österreich | de-at | 0x0C07 | 3079 | Spanisch - Bolivien | es-bo | 0x400A | 16394
Deutsch - Schweiz | de-ch | 0x0807 | 2055 | Spanisch - Chile | es-cl | 0x340A | 13322
Englisch - Australien | en-au | 0x0C09 | 3081 | Spanisch - Costa Rica | es-cr | 0x140A | 5130
Englisch - Belize | en-bz | 0x2809 | 10249 | Spanisch - Dominikanische Republik | es-do | 0x1C0A | 7178
Englisch - Großbritannien und Nordirland | en-gb | 0x0809 | 2057 | Spanisch - Ecuador | es-ec | 0x300A | 12298
Englisch - Irland | en-ie | 0x1809 | 6153 | Spanisch - El Salvador | es-sv | 0x440A | 17418
Englisch - Jamaika | en-jm | 0x2009 | 8201 | Spanisch - Guatemala | es-gt | 0x100A | 4106
Englisch - Kanada | en-ca | 0x1009 | 4105 | Spanisch - Honduras | es-hn | 0x480A | 18442
Englisch – Karibik | en-cb | 0x2409 | 9225 | Spanisch - Kolumbien | es-co | 0x240A | 9226
Englisch - Neuseeland | en-nz | 0x1409 | 5129 | Spanisch - Mexiko | es-mx | 0x080A | 2058
Englisch – Philippinen | en-ph | 0x3409 | 13321 | Spanisch - Nicaragua | es-ni | 0x4C0A | 19466
Englisch - Südafrika | en-za | 0x1C09 | 7177 | Spanisch - Panama | es-pa | 0x180A | 6154
Englisch - Trinidad | en-tt | 0x2C09 | 11273 | Spanisch - Paraguay | es-py | 0x3C0A | 15370
Englisch - USA | en-us | 0x0409 | 1033 | Spanisch - Peru | es-pe | 0x280A | 10250
Estnisch | et | 0x0425 | 1061 | Spanisch - Puerto Rico | es-pr | 0x500A | 20490
Färöisch | fo | 0x0438 | 1080 | Spanisch - Spanien | es-es | 0x0C0A | 1034
Farsi | fa | 0x0429 | 1065 | Spanisch - Uruguay | es-uy | 0x380A | 14346
Finnisch | fi | 0x040B | 1035 | Spanisch - Venezuela | es-ve | 0x200A | 8202
FJR-Mazedonisch | mk | 0x042F | 1071 | Suaheli | sw | 0x0441 | 1089
Französisch - Belgien | fr-be | 0x080C | 2060 | Sutu | sx | 0x0430 | 1072
Französisch - Frankreich | fr-fr | 0x040C | 1036 | Tamilisch | ta | 0x0449 | 1097
Französisch - Kanada | fr-ca | 0x0C0C | 3084 | Tatarisch | tt | 0X0444 | 1092
Französisch - Luxemburg | fr-lu | 0x140C | 5132 | Thai | th | 0x041E | 1054
Französisch - Schweiz | fr-ch | 0x100C | 4108 | Tschechisch | cs | 0x0405 | 1029
Gälisch – Irland | gd-ie | 0x083C | 2108 | Tsonga | ts | 0x0431 | 1073
Gälisch - Schottland | gd | 0x043C | 1084 | Türkisch | tr | 0x041F | 1055
Griechisch | el | 0x0408 | 1032 | Ukrainisch | uk | 0x0422 | 1058
Hebräisch | he | 0x040D | 1037 | Ungarisch | hu | 0x040E | 1038
Hindi | hi | 0x0439 | 1081 | Urdu | ur | 0x0420 | 1056
Indonesisch | id | 0x0421 | 1057 | Usbekisch – Kyrillisch | uz-uz | 0x0843 | 2115
Isländisch | is | 0x040F | 1039 | Usbekisch – Lateinisch | uz-uz | 0x0443 | 1091
Italienisch - Italien | it-it | 0x0410 | 1040 | Vietnamesisch | vi | 0x042A | 1066
Italienisch - Schweiz | it-ch | 0x0810 | 2064 | Weißrussisch | be | 0x0423 | 1059
Japanisch | ja | 0x0411 | 1041 | Xhosa | xh | 0x0434 | 1076
 |  |  |  | Zulu | zu | 0x0435 | 1077


Objekte und Auflistungen

In diesem Abschnitt

Class-Objekt

Err-Objekt

Matches-Auflistung

Match-Objekt

Regular Expression (RegExp)-Objekt

SubMatches-Auflistung

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Class-Objekt

Das Objekt, das mithilfe der Class-Anweisung erstellt wird. Gewährt Zugriff auf die Ereignisse der Klasse.

Hinweise

Sie können eine Variable nicht explizit zu einem Class-Typ deklarieren. Bei VBScript wird unter dem Begriff Klassenobjekt ein beliebiges Objekt verstanden, das mithilfe der Class-Anweisung von VBScript festgelegt wurde.

Nachdem Sie eine Klassendefinition mithilfe der Class-Anweisung erstellt haben, können Sie eine Instanz dieser Klasse mit der folgenden Formel erstellen:

Dim X
Set X = New Klassenname

Da VBScript eine late-bound-Sprache (Bindung erfolgt zur Laufzeit) ist, können Sie folgende Aktionen nicht durchführen:

Dim X as New Klassenname

oder

Dim X
X = New Klassenname

oder

Set X = New Scripting.FileSystemObject

Ereignisse

Ereignisse des Class-Objekts

Anforderungen

Version 5

Class-Anweisung | Dim-Anweisung | Set-Anweisung


Ereignisse des Class-Objekts

Das Class-Objekt ermöglicht den Zugriff auf die Ereignisse der Klasse.

Ereignisse

Initialize-Ereignis

Terminate-Ereignis


Matches-Auflistung

Auflistung von Match-Objekten aus Suche mit regulärem Ausdruck.

Hinweise

Eine Matches-Auflistung enthält einzelne Match-Objekte und kann nur mit der Execute-Methode des RegExp-Objekts erstellt werden. Die einzige Eigenschaft einer Matches-Auflistung ist gleichermaßen wie die der einzelnen Match-Objekte schreibgeschützt.

Wird ein regulärer Ausdruck ausgeführt, werden keine oder mehr Match-Objekte ausgegeben. Jedes Match-Objekt gewährt Zugriff auf eine mit dem regulären Ausdruck gefundene Zeichenfolge, deren Länge sowie auf den Index, in dem die Entsprechung gefunden wurde.

Der folgende Code veranschaulicht, wie eine Matches-Auflistung über die Suche mit einem regulärem Ausdruck angefordert wird und wie die Auflistung durchlaufen werden soll:

Function RegAusTest(Muster, Zeichenfolge)
   Dim regAus, Uebereinstimmung, Uebereinstimmungen   ' Erstellt Variablen.
   Set regAus = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAus.Pattern = Muster   ' Legt das Muster fest.
   regAus.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAus.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAus.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Matches-Auflistung.
      RetStr = RetStr & "Entsprechung gefunden bei "
      RetStr = RetStr & Uebereinstimmung.FirstIndex & ". Wert ist '"
      RetStr = RetStr & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusTest = RetStr
End Function
MsgBox(RegAusTest("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 1

Siehe auch

For Each...Next-Anweisung | Match-Objekt | RegExp-Objekt | SubMatches-Auflistung


Err-Objekt

Enthält Informationen zu Laufzeitfehlern. Akzeptiert die Methoden Raise und Clear zum Auslösen und Löschen von Laufzeitfehlern.

Hinweise

Das Err-Objekt ist ein integriertes Objekt mit globalem Gültigkeitsbereich. Sie müssen keine Instanz dieses Objekts in Ihrem Code erstellen. Die Eigenschaften des Err-Objekts werden durch den Auslöser eines Fehlers festgelegt: Visual Basic, ein Automatisierungsobjekt oder der VBScript-Programmierer.

Die Standardeigenschaft des Err-Objekts ist Number. Err.Number enthält eine Ganzzahl und kann in einem Automatisierungsobjekt verwendet werden, um einen SCODE zurückzugeben.

Tritt ein Laufzeitfehler auf, werden die Eigenschaften des Err-Objekts mit Informationen gefüllt, die den Fehler eindeutig identifizieren und zur Bearbeitung des Fehlers verwendet werden können. Mit der Raise-Methode können Sie einen Laufzeitfehler in Ihrem Code auslösen.

Die Eigenschaften des Err-Objekts werden auf Null oder Zeichenfolgen mit Nulllänge ("") zurückgesetzt, nachdem eine On Error Resume Next-Anweisung innerhalb einer Fehlerbehandlungsroutine auftritt. Die Clear-Methode kann verwendet werden, um Err explizit zurückzusetzen.

Das folgende Beispiel veranschaulicht die Verwendung des Err-Objekts:

On Error Resume Next
Err.Raise 6   ' Erzeugt einen Überlauffehler.
MsgBox ("Fehler Nr. " & CStr(Err.Number) & " " & Err.Description)
Err.Clear      ' Löscht die Fehlermeldung.

Eigenschaften und Methoden

Eigenschaften und Methoden des Err-Objekts

Anforderungen

Version 1

On Error-Anweisung


Eigenschaften und Methoden des Err-Objekts

Das Err-Objekt enthält Informationen zu Laufzeitfehlern.

Eigenschaften

Description-Eigenschaft

HelpContext-Eigenschaft

HelpFile-Eigenschaft

Number-Eigenschaft

Source-Eigenschaft

Methoden

Clear-Methode

Raise-Methode


Match-Objekt

Bietet Zugriff auf die schreibgeschützten Eigenschaften einer Suche mit regulärem Ausdruck.

Hinweise

Ein Match-Objekt kann nur mithilfe der Execute-Methode des RegExp-Objekts erstellt werden, wodurch eigentlich eine Auflistung von Match-Objekten zurückgegeben wird. Alle Eigenschaften von Match-Objekten sind schreibgeschützt.

Wird ein regulärer Ausdruck ausgeführt, werden keine oder mehr Match-Objekte ausgegeben. Jedes Match-Objekt gewährt Zugriff auf eine mit regulärem Ausdruck gefundene Zeichenfolge, deren Länge sowie auf den Index, an dem die Entsprechung gefunden wurde.

Der folgende Code veranschaulicht die Verwendung des Match-Objekts:

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Variablen erstellen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Legt das Suchmuster fest.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Übereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung " & I & " gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Eigenschaften

Eigenschaften des Match-Objekts

Anforderungen

Version 5

Matches-Auflistung | RegExp-Objekt | SubMatches-Auflistung


Eigenschaften des Match-Objekts

Das Match-Objekt ermöglicht den Zugriff auf die schreibgeschützten Eigenschaften einer Suche mit einem regulären Ausdruck.

Eigenschaften

FirstIndex-Eigenschaft

Length-Eigenschaft

Value-Eigenschaft


RegExp-Objekt

Bietet Unterstützung einfacher regulärer Ausdrücke.

Hinweise

Der folgende Code veranschaulicht die Verwendung des RegExp-Objekts.

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Erstellt Variablen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Setzt das Muster.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Übereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest("is.", "IS1 is2 IS3 is4"))

Eigenschaften und Methoden

Eigenschaften und Methoden des Regular Expression-Objekts

Anforderungen

Version 5

Match-Objekt | Matches-Auflistung


Eigenschaften und Methoden des Regular Expression-Objekts

Das Regular Expression-Objekt bietet Unterstützung für einfache reguläre Ausdrücke.

Eigenschaften

Global-Eigenschaft

IgnoreCase-Eigenschaft

Pattern-Eigenschaft

Methoden

Execute-Methode

Replace-Methode

Test-Methode


SubMatches-Auflistung

Auflistung der submatch-Zeichenfolgen des regulären Ausdrucks.

Hinweise

Eine SubMatches-Auflistung enthält einzelne Submatch-Zeichenfolgen und kann nur mit einer Execute-Methode des RegExp-Objekts erstellt werden. Die Eigenschaften der SubMatches-Auflistung sind schreibgeschützt.

Wird ein regulärer Ausdruck ausgeführt, können keine oder mehrere Submatch-Objekte das Ergebenis sein, wenn die Teilausdrücke in Klammern eingeschlossen werden. Jedes Element in der SubMatches-Auflistung ist eine Zeichenfolge, die mit einem regulären Ausdruck ermittelt und gefunden wird.

Der folgende Code veranschaulicht, wie eine Submatches-Auflistung über die Suche mit einem regulären Ausdruck angefordert wird und wie auf die einzelnen Mitglieder zugegriffen werden soll:

Function SubMatchTest(EingZeichenfolge)
  Dim oRe, oMatch, oMatches
  Set oRe = New RegAusdr
  ' Sucht nach einer E-Mail-Adresse (kein perfekter RegAusdr)
  oRe.Pattern = "(\w+)@(\w+)\.(\w+)"
  ' Überträgt Matches-Auflistung
  Set oMatches = oRe.Execute(EingZeichenfolge)
  ' Überträgt erstes Element in der Matches-Auflistung
  Set oMatch = oMatches(0)
  ' Erstellt Ergebniszeichenfolge.
  ' Das Match-Objekt ist die gesamte Entsprechung - dragon@xyzzy.com
  retStr = "E-Mail-Adresse lautet: " & oMatch & vbNewline
  ' Überträgt Teile der Adresse, die teilweise entsprachen.
  retStr = retStr & "E-Mail-Alias lautet: " & oMatch.SubMatches(0)  ' dragon
  retStr = retStr & vbNewline
  retStr = retStr & "Unternehmen lautet: " & oMatch. SubMatches(1)' xyzzy
  SubMatchTest = retStr
End Function

MsgBox(SubMatchTest("Bitte senden Sie Ihre Mail an dragon@xyzzy.com. Danke!"))

Anforderungen

Version 5.5

Siehe auch

For Each...Next-Anweisung | Match-Objekt | Matches-Auflistung |RegExp-Objekt


Operatoren

In diesem Abschnitt

Operatorvorrang

Operatoren: Zusammenfassung

Arithmetische Operatoren

Vergleichsoperatoren

Verkettungsoperatoren

Logische Operatoren

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Operatorvorrang (VBScript)

Visual Basic Scripting Edition

Operatorvorrang

Treten mehrere Operatoren in einem Ausdruck auf, wird jeder Teil in einer vorbestimmten Reihenfolge ausgewertet und aufgelöst. Diese wird als Operatorvorrang bezeichnet. Sie können den Operatorvorrang mit Klammern übergehen und die Auswertung von Bestandteilen eines Ausdruckes vor anderen Bestandteilen erzwingen. Operationen innerhalb von Klammern werden immer vor Operationen außerhalb von Klammern ausgeführt. Innerhalb der Klammern gilt jedoch der normale Operatorvorrang.

Wenn Ausdrücke Operatoren aus verschiedenen Kategorien enthalten, werden zuerst arithmetische, dann Vergleichs- und schließlich logische Operatoren ausgewertet. Vergleichsoperatoren haben alle denselben Rang, d. h. sie werden von links nach rechts in der Reihenfolge ihres Erscheinens ausgewertet. Arithmetische und logische Operatoren werden nach der folgenden Rangfolge ausgewertet:

Arithmetisch | Vergleich | Logisch
Negation (-) | Gleich (=) | Not
Potenzieren (^) | Ungleich (<>) | And
Multiplikation und Division (*, /) | Kleiner als (<) | Or
Ganzzahl-Division (\) | Größer als (>) | Xor
Modulo (Mod) | Kleiner oder gleich (<=) | Eqv
Addition und Subtraktion (+, -) | Größer oder gleich (>=) | Imp
Zeichenfolgenverkettung (&) | Is | &

Treten Multiplikation und Division zusammen in einem Ausdruck auf, wird jede Operation entsprechend ihres Auftretens von links nach rechts ausgewertet. Desgleichen wird beim Auftreten von Addition und Subtraktion in einem Ausdruck jede Operation entsprechend ihrem Auftreten von links nach rechts ausgewertet.

Der Operator zur Zeichenfolgenverkettung (&) ist kein arithmetischer Operator, er liegt in der Rangfolge jedoch hinter den arithmetischen und vor den Vergleichsoperatoren. Der Is-Operator ist ein Vergleichsoperator für Objektverweise. Er vergleicht weder Objekte noch deren Werte, sondern prüft lediglich, ob zwei Objektverweise auf dasselbe Objekt verweisen.

Anforderungen

Version 1

Is-Operator | Operatoren: Zusammenfassung


Operatoren: Zusammenfassung (VBScript)

Visual Basic Scripting Edition

Operatoren: Zusammenfassung

Arithmetische Operatoren

Operatoren zum Ausführen von mathematischen Berechnungen.

Logische Operatoren

Operatoren zum Ausführen von logischen Operationen.

Vergleichsoperatoren

Operatoren zum Durchführen von Vergleichen.

Verkettungsoperatoren

Operatoren zum Kombinieren von Zeichenfolgen.

Zuweisungsoperator

Operator für die Zuweisung eines Wertes zu einer Eigenschaft oder Variablen.

Operatorvorrang


Additionsoperator (+) (VBScript)

Visual Basic Scripting Edition

Additionsoperator (+)

Addiert zwei Zahlen miteinander.

Ergebnis = Ausdruck1 + Ausdruck2

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Sie können den Operator + auch zum Verketten zweier Zeichenfolgen verwenden, sollten dazu aber vorzugsweise den Operator & verwenden. Dadurch schließen Sie Mehrdeutigkeiten aus und erstellen Code, der sich selbst dokumentiert.

Wenn Sie den Operator + verwenden, können Sie nicht immer bestimmen, ob eine Addition oder eine Zeichenverkettung erfolgt.

Die zugrunde liegenden Untertypen der Ausdrücke bestimmen das Verhalten des Operators + auf folgende Weise:

Wenn | Ergebnis
Beide Ausdrücke numerisch sind | Addition
Beide Ausdrücke Zeichenfolgen sind | Verkettung
Ein Ausdruck numerisch, der andere eine Zeichenfolge ist | Addition

Handelt es sich bei einem oder beiden Ausdrücken um Null-Ausdrücke, ist Ergebnis gleich Null. Sind beide Ausdrücke Empty, ist Ergebnis ein Integer-Untertyp. Ist jedoch nur ein Ausdruck Empty, wird der andere Ausdruck unverändert als Ergebnis zurückgegeben.

Anforderungen

Version 1

Siehe auch

Arithmetische Operatoren | Minusoperator (-) | Operatoren: Zusammenfassung | Operatorvorrang | Verkettungsoperator (&) | Verkettungsoperatoren


And-Operator

Führt eine logische Konjunktion zweier Ausdrücke durch.

Ergebnis = Ausdruck1 And Ausdruck2

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Das Argument Ergebnis ist nur dann True, wenn tatsächlich beide Ausdrücke True sind. Sobald einer der beiden Ausdrücke False ist, ist das Ergebnis ebenfalls False. Die folgende Tabelle zeigt, wie Ergebnis festgelegt wird:

Ist Ausdruck1 | Und ist Ausdruck2 | Dann ist Ergebnis
True | True | True
True | False | False
True | Null | Null
False | True | False
False | False | False
False | Null | False
Null | True | Null
Null | False | False
Null | Null | Null

Der Operator And führt darüber hinaus einen bitweisen Vergleich gleich positionierter Bits in zwei numerischen Ausdrücken durch und setzt das zugehörige Bit in Ergebnis gemäß der folgenden Tabelle:

Ist Bit in Ausdruck1 | Und ist Bit in Ausdruck2 | Dann ist Bit in Ergebnis
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

Anforderungen

Version 1

Siehe auch

Logische Operatoren | Not-Operator | Operatoren: Zusammenfassung | Operatorvorrang | Or-Operator | Xor-Operator


Zuweisungsoperator (=) (VBScript)

Visual Basic Scripting Edition

Zuweisungsoperator (=)

Weist einer Variablen oder einer Eigenschaft einen Wert zu.

Variable = Wert

Argumente

Variable
Jede Variable oder schreibbare Eigenschaft.
Wert
Jedes numerische- oder Zeichenfolgenliteral, jede Konstante oder jeder Ausdruck.

Hinweise

Bei dem Namen links des Gleichheitszeichens kann es sich um einfache skalierbare Variablen oder Elemente eines Arrays handeln. Bei Eigenschaften auf der linken Seite des Gleichheitszeichens kann es sich nur um solche handeln, die bei Laufzeit nicht schreibgeschützt sind.

Anforderungen

Version 1

Siehe auch

Operatoren: Zusammenfassung | Operatorvorrang | Set-Anweisung | Vergleichsoperatoren


Verkettungsoperator (&)

Erzwingt eine Zeichenfolgenverkettung zweier Ausdrücke.

Ergebnis = Ausdruck1 & Ausdruck2

Argumente

Ergebnis
Beliebige Variable
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Wenn es sich bei Ausdruck nicht um eine Zeichenfolge handelt, wird diese in einen String-Untertyp konvertiert. Sind beide Ausdrücke Null, ist Ergebnis ebenfalls Null. Ist jedoch lediglich ein Ausdruck gleich Null, wird dieser Ausdruck bei einer Verkettung mit dem anderen Ausdruck als Nulllängenzeichenfolge ("") behandelt. Ausdrücke, die Empty sind, werden ebenfalls als Nulllängenzeichenfolgen behandelt.

Anforderungen

Version 1

Siehe auch

Operatoren: Zusammenfassung | Operatorvorrang | Verkettungsoperatoren


Divisionsoperator (/) (VBScript)

Visual Basic Scripting Edition

Divisionsoperator (/)

Dividiert zwei Zahlen und gibt ein Fließkommaergebnis zurück.

Ergebnis = Zahl1 / Zahl2

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Handelt es sich bei einem oder beiden Ausdrücken um Null-Ausdrücke, ist Ergebnis gleich Null. Ausdrücke, die Empty sind, werden als 0 interpretiert.

Anforderungen

Version 1

Siehe auch

Arithmetische Operatoren | Ganzzahl-Divisionsoperator (\) | Multiplikationsoperator (*) | Operatoren: Zusammenfassung | Operatorvorrang


Eqv-Operator

Führt eine logische Äquivalenz auf zwei Ausdrücken aus.

Ergebnis = Ausdruck1 Eqv Ausdruck2

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Hat einer der beiden Ausdrücke den Wert Null, ist Ergebnis ebenfalls Null. Ist keiner der Ausdrücke Null, ist das jeweilige Ergebnis der folgenden Tabelle zu entnehmen:

Ist Ausdruck1 | Und ist Ausdruck2 | Dann ist Ergebnis
True | True | True
True | False | False
False | True | False
False | False | True

Der Operator Eqv führt darüber hinaus einen bitweisen Vergleich gleich positionierter Bits in zwei numerischen Ausdrücken durch und setzt das zugehörige Bit in Ergebnis gemäß der folgenden Tabelle:

Ist Bit in Ausdruck1 | Und ist Bit in Ausdruck2 | Dann ist Bit in Ergebnis
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

Anforderungen

Version 1

Siehe auch

Imp-Operator | Logische Operatoren | Operatoren: Zusammenfassung | Operatorvorrang


Exponentialoperator (^)

Erhebt eine Zahl zur Potenz eines Exponenten.

Ergebnis = Zahl^Exponent

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl
Beliebiger numerischer Ausdruck.
Exponent
Beliebiger numerischer Ausdruck.

Hinweise

Zahl kann nur einen negativen Wert haben, wenn Exponent ein Ganzzahlwert ist. Werden mehrere Potenzierungen in einem einzigen Ausdruck durchgeführt, werden die ^ Operatoren nacheinander von links nach rechts ausgewertet.

Handelt es sich bei Zahl oder Exponent um Null-Ausdrücke, ist Ergebnis ebenfalls Null.

Anforderungen

Version 1

Siehe auch

Arithmetische Operatoren | Operatoren: Zusammenfassung | Operatorvorrang


Imp-Operator

Führt eine logische Implikation auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 Imp Ausdruck2

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Die folgende Tabelle zeigt, wie Ergebnis festgelegt wird:

Ist Ausdruck1 | Und ist Ausdruck2 | Dann ist Ergebnis
True | True | True
True | False | False
True | Null | Null
False | True | True
False | False | True
False | Null | True
Null | True | True
Null | False | Null
Null | Null | Null

Der Imp-Operator führt einen bitweisen Vergleich gleich positionierter Bits in zwei numerischen Ausdrücken durch und setzt das zugehörige Bit in Ergebnis gemäß der folgenden Tabelle:

Ist Bit in Ausdruck1 | Und ist Bit in Ausdruck2 | Dann ist Bit in Ergebnis
0 | 0 | 1
0 | 1 | 1
1 | 0 | 0
1 | 1 | 1

Anforderungen

Version 1

Siehe auch

Eqv-Operator | Logische Operatoren | Operatoren: Zusammenfassung | Operatorvorrang


Ganzzahl-Divisionsoperator (\)

Dividiert zwei Zahlen miteinander und gibt das Ergebnis als Ganzzahl zurück.

Ergebnis = Zahl1\Zahl2

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Vor einer Division werden numerische Ausdrücke auf Byte-, Integer- oder Long-Untertypenausdrücke gerundet.

Ist einer der Ausdrücke gleich Null, ist Ergebnis ebenfalls Null. Ausdrücke, die Empty sind, werden als 0 interpretiert.

Anforderungen

Version 1

Siehe auch

Arithmetische Operatoren | Divisionsoperator (/) | Multiplikationsoperator (*) | Operatoren: Zusammenfassung | Operatorvorrang


Is-Operator

Vergleicht zwei Objektverweisvariablen miteinander.

Ergebnis = Objekt1 Is Objekt2

Argumente

Ergebnis
Beliebige numerische Variable.
Objekt1
Beliebiger Objektname.
Objekt2
Beliebiger Objektname.

Hinweise

Wenn sowohl Objekt1 als auch Objekt2 auf dasselbe Objekt verweisen, ist das Ergebnis True, andernfalls ist Ergebnis False. Zwei Variablen können auf mehrere Arten auf dasselbe Objekt verweisen.

Im folgenden Beispiel verweist A nach der Zuweisung auf dasselbe Objekt wie B:

Set A = B

Nach den folgenden Zuweisungen verweisen A und B auf dasselbe Objekt wie C:

Set A = C
Set B = C

Anforderungen

Version 1

Siehe auch

Operatoren: Zusammenfassung | Operatorvorrang | Vergleichsoperatoren


Mod-Operator

Dividiert zwei Zahlen und gibt nur den Rest zurück.

Ergebnis = Zahl1 Mod Zahl2

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Der Modulo-Operator (oder Rest-Operator) dividiert Zahl1 durch Zahl2, rundet dabei Fließkommawerte in ganze Zahlen und gibt den Rest als Ergebnis zurück. Das Ergebnis des folgenden Ausdruckes (A) ist zum Beispiel 5.

A = 19 Mod 6.7

Ist einer der Ausdrücke gleich Null, ist Ergebnis ebenfalls Null. Ausdrücke, die Empty sind, werden als 0 interpretiert.

Anforderungen

Version 1

Siehe auch

Arithmetische Operatoren | Operatoren: Zusammenfassung | Operatorvorrang


Multiplikationsoperator (*) (VBScript)

Visual Basic Scripting Edition

Multiplikationsoperator (*)

Multipliziert zwei Zahlen miteinander.

Ergebnis = Zahl1*Zahl2

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Handelt es sich bei einem oder beiden Ausdrücken um Null-Ausdrücke, ist Ergebnis gleich Null. Ist einer der beiden Ausdrücke Empty, wird dieser als 0 interpretiert.

Anforderungen

Version 1

Siehe auch

Arithmetische Operatoren | Ganzzahl-Divisionsoperator (\) | Operatoren: Zusammenfassung | Operatorvorrang


Not-Operator

Führt eine logische Negation auf einem Ausdruck durch.

Ergebnis = Not Ausdruck

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck
Beliebiger Ausdruck.

Hinweise

Die folgende Tabelle zeigt, wie Ergebnis festgelegt wird:

Ist Ausdruck | Dann ist Ergebnis
True | False
False | True
Null | Null

Darüber hinaus invertiert der Not-Operator die einzelnen Bits einer (beliebigen) Variablen und legt die jeweiligen Bits in Ergebnis gemäß der folgenden Tabelle fest:

Ist Bit in Ausdruck | Dann ist Bit in Ergebnis
0 | 1
1 | 0

Anforderungen

Version 1

Siehe auch

And-Operator | Logische Operatoren | Operatoren: Zusammenfassung | Operatorvorrang | Or-Operator | Xor-Operator


Or-Operator

Führt eine logische Disjunktion auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 Or Ausdruck2

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Ist einer der beiden Ausdrücke True, ist das Ergebnis ebenfalls True. Die folgende Tabelle zeigt, wie Ergebnis festgelegt wird:

Ist Ausdruck1 | Und ist Ausdruck2 | Dann ist Ergebnis
True | True | True
True | False | True
True | Null | True
False | True | True
False | False | False
False | Null | Null
Null | True | True
Null | False | Null
Null | Null | Null

Der Or-Operator führt darüber hinaus einen bitweisen Vergleich gleich positionierter Bits in zwei numerischen Ausdrücken durch und setzt das zugehörige Bit in Ergebnis gemäß der folgenden Tabelle:

Ist Bit in Ausdruck1 | Und ist Bit in Ausdruck2 | Dann ist Bit in Ergebnis
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

Anforderungen

Version 1

Siehe auch

And-Operator | Logische Operatoren | Not-Operator | Operatoren: Zusammenfassung | Operatorvorrang | Xor-Operator


Minusoperator (-) (VBScript)

Visual Basic Scripting Edition

Minusoperator (-)

Ermittelt die Differenz zwischen zwei Zahlen oder gibt den negativen Wert eines numerischen Ausdruckes an.

Syntax 1

Ergebnis = Zahl1-Zahl2

Syntax 2

-Zahl

Argumente

Ergebnis
Beliebige numerische Variable.
Zahl
Beliebiger numerischer Ausdruck.
Zahl1
Beliebiger numerischer Ausdruck.
Zahl2
Beliebiger numerischer Ausdruck.

Hinweise

Bei Syntax 1 wird der Minusoperator zur Bestimmung der Differenz zweier Zahlen durch arithmetische Subtraktion eingesetzt. Bei Syntax 2 wird der Minusoperator als unärer Negationsoperator zur Anzeige des negativen Wertes eines Ausdruckes verwendet.

Handelt es sich bei einem oder beiden Ausdrücken um Null-Ausdrücke, ist Ergebnis gleich Null. Ist einer der beiden Ausdrücke Empty, wird dieser als 0 interpretiert.

Anforderungen

Version 1

Siehe auch

Additionsoperator (+) | Arithmetische Operatoren | Operatoren: Zusammenfassung | Operatorvorrang


Xor-Operator

Führt einen logischen Ausschluss auf zwei Ausdrücken durch.

Ergebnis = Ausdruck1 Xor Ausdruck2

Argumente

Ergebnis
Beliebige numerische Variable.
Ausdruck1
Beliebiger Ausdruck.
Ausdruck2
Beliebiger Ausdruck.

Hinweise

Ist genau ein einziger Ausdruck True, ist das Ergebnis ebenfalls True. Ist jedoch einer der beiden Ausdrücke Null, ist Ergebnis ebenfalls Null. Ist keiner der Ausdrücke Null, ist das jeweilige Ergebnis der folgenden Tabelle zu entnehmen:

Ist Ausdruck1 | Und ist Ausdruck2 | Dann ist Ergebnis
True | True | False
True | False | True
False | True | True
False | False | False

Der Xor-Operator führt darüber hinaus einen bitweisen Vergleich gleich positionierter Bits in zwei numerischen Ausdrücken durch und setzt das zugehörige Bit in Ergebnis gemäß der folgenden Tabelle:

Ist Bit in Ausdruck1 | Und ist Bit in Ausdruck2 | Dann ist Bit in Ergebnis
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

Anforderungen

Version 1

Siehe auch

And-Operator | Logische Operatoren | Not-Operator | Operatoren: Zusammenfassung | Operatorvorrang | Or-Operator


Arithmetische Operatoren

Additionsoperator (+)

Divisionsoperator (/)

Exponentialoperator (^)

Ganzzahl-Divisionsoperator (\)

Minusoperator (-)

Mod-Operator

Multiplikationsoperator (*)

Verkettungsoperatoren


Vergleichsoperatoren (VBScript)

Visual Basic Scripting Edition

Vergleichsoperatoren

Dienen zum Vergleichen von Ausdrücken.

Ergebnis = Ausdruck1 Vergleichsoperator Ausdruck2
Ergebnis = Objekt1 Is Objekt2

Bestandteile

Ergebnis
Eine numerische Variable.
Ausdruck
Ein Ausdruck.
Vergleichsoperator
Ein Vergleichsoperator.
Objekt
Ein Objektname.

Hinweise

Der Is-Operator hat eine spezielle Bedeutung und unterscheidet sich in der Funktionalität von den Operatoren in der folgenden Tabelle. Die Tabelle enthält eine Liste der Vergleichsoperatoren und die Bedingungen, unter denen das Ergebnis True, False oder Null wird:

Operator | Beschreibung | True, falls | False, falls | Null, falls
< | Kleiner als | Ausdruck1 < Ausdruck2 | Ausdruck1 >= Ausdruck2 | Ausdruck1 oder Ausdruck2 = Null
<= | Kleiner oder gleich | Ausdruck1 <= Ausdruck2 | Ausdruck1 > Ausdruck2 | Ausdruck1 oder Ausdruck2 = Null
> | Größer als | Ausdruck1 > Ausdruck2 | Ausdruck1 <= Ausdruck2 | Ausdruck1 oder Ausdruck2 = Null
>= | Größer oder gleich | Ausdruck1 >= Ausdruck2 | Ausdruck1 < Ausdruck2 | Ausdruck1 oder Ausdruck2 = Null
= | Gleich | Ausdruck1 = Ausdruck2 | Ausdruck1 <> Ausdruck2 | Ausdruck1 oder Ausdruck2 = Null
<> | Ungleich | Ausdruck1 <> Ausdruck2 | Ausdruck1 = Ausdruck2 | Ausdruck1 oder Ausdruck2 = Null

Beim Vergleich zweier Ausdrücke ist nicht immer offensichtlich, ob die Ausdrücke als Zahlen oder als Zeichenfolgen verglichen werden.

Aus der folgenden Tabelle können Sie ersehen, wie abhängig vom zugrunde liegenden Untertyp Ausdrücke verglichen werden bzw. wie das Ergebnis aussieht:

Wenn | Dann
Beide Ausdrücke numerisch sind | Numerischer Vergleich.
Beide Ausdrücke Zeichenfolgen sind | Durchführung eines Zeichenfolgenvergleichs.
Ein Ausdruck numerisch, der andere eine Zeichenfolge ist | Ist der numerische Ausdruck kleiner als der Zeichenfolgenausdruck.
Ein Ausdruck den Wert Empty hat, und der andere numerisch ist | Numerischer Vergleich, wobei 0 für den Empty-Ausdruck verwendet wird.
Ein Ausdruck den Wert Empty hat, der andere eine Zeichenfolge ist | Zeichenfolgenvergleich, wobei eine Nullzeichenfolge ("") für den Empty-Ausdruck verwendet wird.
Beide Ausdrücke den Wert Empty haben | Sind die Ausdrücke gleich.

Anforderungen

Version 1

Siehe auch

Zuweisungsoperator (=) | Is-Operator | Operatoren: Zusammenfassung | Operatorvorrang


Verkettungsoperatoren

Additionsoperator (+)

Verkettungsoperator (&)


Logische Operatoren

And-Operator

Not-Operator

Or-Operator

Xor-Operator


Eigenschaften

In diesem Abschnitt

Description-Eigenschaft

FirstIndex-Eigenschaft

Global-Eigenschaft

HelpContext-Eigenschaft

HelpFile-Eigenschaft

IgnoreCase-Eigenschaft

Length-Eigenschaft

Number-Eigenschaft

Pattern-Eigenschaft

Source-Eigenschaft

Value-Eigenschaft

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Description-Eigenschaft (VBScript)

Visual Basic Scripting Edition

Description-Eigenschaft

Gibt eine beschreibende Zeichenfolge zu einem Fehler zurück oder legt sie fest.

Objekt.Description [=Zeichenfolgenausdruck]

Argumente

Objekt
Stets das Err-Objekt.
Zeichenfolgenausdruck
Ein Zeichenfolgenausdruck, der eine Beschreibung des Fehlers enthält.

Hinweise

Die Description-Eigenschaft enthält eine Kurzbeschreibung des Fehlers. Verwenden Sie diese Eigenschaft, um den Benutzer über einen Fehler zu informieren, den Sie nicht beheben können oder möchten. Weisen Sie beim Erstellen eines benutzerdefinierten Fehlers eine Kurzbeschreibung des Fehlers dieser Eigenschaft zu. Wird Description nicht angegeben und entspricht der Number-Wert einem VBScript-Laufzeitfehler, wird die dem Fehler zugeordnete Beschreibungszeichenfolge zurückgegeben.

On Error Resume Next
Err.Raise 6   ' Erzeugt einen Überlauffehler.
MsgBox ("Fehler Nr. " & CStr(Err.Number) & ", " & Err.Description)
Err.Clear   ' Löscht die Fehlermeldung.

Anforderungen

Version 1

Siehe auch

Err-Objekt | HelpContext-Eigenschaft | HelpFile-Eigenschaft | Number-Eigenschaft | Source-Eigenschaft

Betrifft: Err-Objekt


FirstIndex-Eigenschaft

Gibt die Position in einer Suchzeichenfolge zurück, an der eine Entsprechung gefunden wurde.

Objekt.FirstIndex

Objekt ist stets ein Match-Objekt.

Hinweise

Die FirstIndex-Eigenschaft verwendet einen nullbasierten Versatz vom Anfang der Suchzeichenfolge. Das heißt, dass das erste Zeichen in einer Zeichenfolge das Zeichen Nummer 0 ist. Der folgende Code veranschaulicht die Verwendung der FirstIndex-Eigenschaft.

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Variablen erstellen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Legt das Suchmuster fest.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Übereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung " & I & " gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 5

Siehe auch

Length-Eigenschaft | Value-Eigenschaft

Betrifft: Match-Objekt


Global-Eigenschaft (VBScript)

Visual Basic Scripting Edition

Global-Eigenschaft

Legt einen Boolean-Wert fest, der angibt, ob ein Muster mit allen oder nur einer Entsprechung in einer gesuchten Zeichenfolge übereinstimmen soll, oder gibt diesen zurück.

Objekt.Global [= True | False ]

Das Argument Objekt ist stets ein RegExp-Objekt. Der Wert der Global-Eigenschaft ist True, wenn sich die Suche auf die gesamte Zeichenfolge bezieht, andernfalls False. Voreinstellung ist False.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Global-Eigenschaft (ändern Sie den der Global-Eigenschaft zugewiesenen Wert, um die Auswirkungen zu sehen):

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Variablen erstellen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Legt das Suchmuster fest.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Uebereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 5

Siehe auch

IgnoreCase-Eigenschaft | Pattern-Eigenschaft

Betrifft: RegExp-Objekt


HelpContext-Eigenschaft

Gibt die Kontext-ID eines Themas in einer Hilfedatei zurück oder legt eine Kontext-ID fest.

Objekt.HelpContext [= Kontext-ID]

Argumente

Objekt
Erforderlich. Stets das Err-Objekt.
Kontext-ID
Optional. Eine gültige Kennung für ein Hilfethema in der Hilfedatei.

Hinweise

Wenn eine Hilfedatei in HelpFile angegeben ist, wird die HelpContext-Eigenschaft verwendet, um automatisch das bezeichnete Hilfethema anzuzeigen. Wenn sowohl HelpFile als auch HelpContext keinen Wert enthalten, wird der Wert der Number-Eigenschaft überprüft. Wenn es sich um einen Wert eines VBScript-Laufzeitfehlers handelt, wird die Kontext-ID der VBScript-Hilfe für diesen Fehler verwendet. Entspricht die Number-Eigenschaft keinem VBScript-Fehler, wird das Inhaltsverzeichnis der VBScript-Hilfedatei angezeigt.

Der folgende Code veranschaulicht die Verwendung der HelpContext-Eigenschaft:

On Error Resume Next
Dim Meldung
Err.Clear
Err.Raise 6   ' Erzeugt einen Überlauffehler.
Err.Helpfile = "MeineHilfe.hlp"
Err.HelpContext = MeineKontextID
If Err.Number <> 0 Then
   Meldung = "Drücken Sie F1, oder klicken Sie auf Hilfe, um das Hilfethema aus " & Err.Helpfile & " für" & _
   " den folgenden Hilfekontext einzublenden: " & Err.HelpContext
   MsgBox Meldung, , "Fehler: " & Err.Description, Err.Helpfile, Err.HelpContext
End If

Anforderungen

Version 2

Siehe auch

Description-Eigenschaft | HelpFile-Eigenschaft | Number-Eigenschaft | Source-Eigenschaft

Betrifft: Err-Objekt


HelpFile-Eigenschaft

Legt den vollständigen Pfad zu einer Hilfedatei fest oder gibt ihn zurück.

Objekt.HelpFile [= Kontext-ID]

Argumente

Objekt
Erforderlich. Stets das Err-Objekt.
Kontext-ID
Optional. Vollständiger Pfad zur Hilfedatei.

Hinweise

Ist eine Hilfedatei in HelpFile angegeben, wird sie automatisch aufgerufen, wenn der Benutzer im Dialogfeld der Fehlermeldung die Schaltfläche Hilfe wählt (oder die F1-Taste drückt). Wenn die HelpContext-Eigenschaft eine gültige Kontext-ID für die angegebene Datei enthält, wird das entsprechende Thema automatisch angezeigt. Wird kein Pfad für HelpFile angegeben, wird die VBScript-Hilfedatei angezeigt.

On Error Resume Next
Dim Meldung
Err.Clear
Err.Raise 6   ' Erzeugt einen Überlauffehler.
Err.Helpfile = "MeineHilfe.hlp"
Err.HelpContext = MeineKontextID
If Err.Number <> 0 Then
   Meldung = "Drücken Sie F1, oder klicken Sie auf Hilfe, um das Hilfethema aus " & Err.Helpfile & " für" & _
   " den folgenden Hilfekontext einzublenden: " & Err.HelpContext
   MsgBox Meldung, , "Fehler: " & Err.Description, Err.Helpfile, Err.HelpContext
End If

Anforderungen

Version 2

Siehe auch

Description-Eigenschaft | HelpContext-Eigenschaft | Number-Eigenschaft | Source-Eigenschaft

Betrifft: Err-Objekt


IgnoreCase-Eigenschaft

Legt einen Boolean-Wert fest, der anzeigt, ob bei einer Mustersuche die Groß-/Kleinschreibung relevant ist, oder gibt diesen zurück.

Objekt.IgnoreCase [= True | False ]

Das Argument Objekt ist stets ein RegExp-Objekt. Der Wert der IgnoreCase-Eigenschaft ist False, wenn bei der Suche die Schreibweise relevant ist, andernfalls True. Voreinstellung ist False.

Hinweise

Der folgende Code veranschaulicht die Verwendung der IgnoreCase-Eigenschaft (ändern Sie den der IgnoreCase-Eigenschaft zugewiesen Wert, um die Auswirkungen zu sehen):

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Variablen erstellen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Legt das Suchmuster fest.
   regAusdr.IgnoreCase = True   ' Groß-/Kleinschreibung ignorieren.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Übereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 5.5

Siehe auch

Global-Eigenschaft | Pattern-Eigenschaft

Betrifft: RegExp-Objekt


Length-Eigenschaft

Gibt die Länge einer Entsprechung in einer Suchzeichenfolge zurück.

Objekt.Length

Objekt ist stets ein Match-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Length-Eigenschaft:

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen   ' Erstellt Variablen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Legt das Suchmuster fest.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Liste der Uebereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung " & I & " gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Länge der Übereinstimmung ist "
      Rueckgabe = Rueckgabe & Uebereinstimmung.Length
      Rueckgabe = Rueckgabe & " Zeichen." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 5

Siehe auch

FirstIndex-Eigenschaft | Value-Eigenschaft

Betrifft: Match-Objekt


Number-Eigenschaft (VBScript)

Visual Basic Scripting Edition

Number-Eigenschaft

Gibt einen numerischen Wert zurück oder legt einen numerischen Wert fest, der einen Fehler angibt. Number ist die Standardeigenschaft des Err-Objekts.

Objekt.Number [= Fehlernummer]

Argumente

Objekt
Stets das Err-Objekt.
Fehlernummer
Eine Ganzzahl, die eine VBScript-Fehlernummer oder einen SCODE-Fehlerwert darstellt.

Hinweise

Soll ein benutzerdefinierter Fehler von einem Automatisierungsobjekt zurückgegeben werden, setzen Sie Err.Number, indem Sie die als Fehlercode ausgewählte Zahl der vbObjectError-Konstante hinzufügen.

Der folgende Code veranschaulicht die Verwendung der Number-Eigenschaft:

On Error Resume Next
Err.Raise vbObjectError + 1, "IrgendeinObjekt"    ' Erzeugt einen Objektfehler.
MsgBox ("Fehler Nr. " & CStr(Err.Number) & " " & Err.Description)
Err.Clear   ' Löscht die Fehlermeldung.

Anforderungen

Version 1

Siehe auch

Description-Eigenschaft | HelpContext-Eigenschaft | HelpFile-Eigenschaft | Err-Objekt | Source-Eigenschaft

Betrifft: Err-Objekt


Pattern-Eigenschaft

Legt das Suchmuster eines regulären Ausdruckes fest oder gibt dieses zurück.

Objekt.Pattern [= "Suchzeichenfolge"]

Argumente

Objekt
Erforderlich. Stets eine RegExp-Objektvariable.
Suchzeichenfolge
Optional. Regulärer Zeichenfolgenausdruck, nach dem gesucht wird. Kann Zeichen für reguläre Ausdrücke enthalten (siehe Tabelle im Abschnitt "Einstellungen").

Einstellungen

Beim Erstellen von Mustern für reguläre Ausdrücke werden Sonderzeichen und Folgen verwendet. Die folgende Tabelle beschreibt diese verwendbaren Zeichen und Zeichenfolgen und führt ein Beispiel auf.

Zeichen | Beschreibung
\ | Markiert das folgende Zeichen als Sonder- oder wortgenaues (literales) Zeichen. Beispielsweise entspricht "n" dem Zeichen "n". "\n" entspricht einem Zeilenumbruchzeichen. Die Folge "\\" entspricht "\", und "\(" entspricht "(".
^ | Entspricht dem Anfang der Eingabe.
$ | Entspricht dem Ende der Eingabe.
* | Entspricht dem vorhergehenden Zeichen kein oder mehrere Male. Beispielsweise entspricht "zo*" entweder "z" oder "zoo".
+ | Entspricht dem vorhergehenden Zeichen ein oder mehrere Male. "zo+" entspricht beispielsweise "zoo", nicht aber "z".
? | Entspricht dem vorhergehenden Zeichen kein- oder einmal. Beispielsweise entspricht "a?eu?" dem "eu" in "neuer".
. | Entspricht allen Einzelzeichen außer einem Zeilenumbruchzeichen.
(Muster) | Entspricht Muster und speichert die Entsprechung. Die übereinstimmende Teilzeichenfolge kann aus der sich ergebenden Matches-Auflistung unter Verwendung von Item [0]...[n] abgerufen werden. Verwenden Sie zum Abgleichen von in Klammern ( ) gesetzten Zeichen "\(" oder "\)".
x|y | Entspricht entweder x oder y. Beispielsweise entspricht "sch|blau" entweder "sch" oder "blau". "(sch|b)lau" entspricht "schlau" oder "blau".
{n} | n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht "o{2}" nicht dem "o" in "Robert", jedoch den ersten beiden "o" in "Booooot".
{n,} | n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Zum Beispiel entspricht "o{2,}" nicht dem "o" in "Robert", aber allen "o" in "Booooot". "o{1,}" ist äquivalent mit "o+". "o{0,}" ist äquivalent mit "o*".
{n,m} | m und n sind nicht negative Ganzzahlen. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht "o{1,3}" den ersten drei "o" in "Boooooot". "o{0,1}" ist äquivalent mit "o?".
[xyz] | Eine Gruppe von Zeichen. Entspricht einem beliebigen der enthaltenen Zeichen. "[abc]" entspricht z. B. dem "a" in "fallen".
[^xyz] | Eine Gruppe ausgeschlossener Zeichen. Entspricht allen nicht enthaltenen Zeichen. "[^abc]" entspricht z. B. dem "f" in "fallen".
[a-z] | Ein Zeichenbereich. Entspricht allen Zeichen im angegebenen Bereich. Beispielsweise entspricht "[a-z]" allen alphabetischen Zeichen in Kleinschreibung des Bereichs "a" bis "z".
[^m-z] | Ein ausgeschlossener Bereich an Zeichen. Entspricht allen Zeichen, die im angegebenen Bereich nicht enthalten sind. Zum Beispiel entspricht "[^m-z]" allen Zeichen, die im Bereich "m" bis "z" nicht enthalten sind.
\b | Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen. "er\b" entspricht beispielsweise dem "er" in "neuer", nicht jedoch dem "er" in "verb".
\B | Entspricht einer Nichtwortgrenze. "ee*r\B" entspricht dem "eer" in "leeren".
\d | Entspricht einer Ziffer. Äquivalent zu [0-9].
\D | Entspricht einer Nichtziffer. Äquivalent zu [^0-9].
\f | Entspricht einem Seitenvorschubzeichen.
\n | Entspricht einem Zeilenumbruchzeichen.
\r | Entspricht einem Wagenrücklaufzeichen.
\s | Entspricht beliebigen Leerräumen wie Leerzeichen, Tabulator, Seitenvorschub usw. Äquivalent zu "[ \f\n\r\t\v]".
\S | Entspricht beliebigen Nichtleerräumen. Äquivalent zu "[^ \f\n\r\t\v]".
\t | Entspricht einem Tabulatorzeichen.
\v | Entspricht einem vertikalen Tabulatorzeichen.
\w | Entspricht allen alphabetischen Zeichen einschließlich Unterstrich. Äquivalent zu "[A-Za-z0-9_]".
\W | Entspricht allen nicht alphabetischen Zeichen. Äquivalent zu "[^A-Za-z0-9_]".
\Zahl | Entspricht Zahl, wenn Zahl eine positive Ganzzahl ist. Ein Rückverweis auf gespeicherte Entsprechungen. "(.)\1" entspricht z. B. zwei aufeinander folgenden identischen Zeichen.
\n | Entspricht n, wobei n ein oktaler Escape-Wert ist. Oktale Escape-Werte können 1, 2 oder 3 Stellen aufweisen. Beispielsweise entspricht sowohl "\11" als auch "\011" dem Tabulatorzeichen. "\0011" ist äquivalent zu "\001" & "1". Oktale Escape-Werte dürfen 256 nicht überschreiten, da andernfalls nur die ersten beiden Stellen den Ausdruck enthalten. Ermöglicht die Verwendung von ASCII-Codes in regulären Ausdrücken.
\xn | Entspricht n, wobei n ein hexadezimaler Escape-Wert ist. Hexadezimale Escape-Werte können nur genau zwei Stellen aufweisen. "\x41" entspricht beispielsweise "A". "\x041" ist äquivalent zu "\x04" & "1". Ermöglicht die Verwendung von ASCII-Codes in regulären Ausdrücken.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Pattern-Eigenschaft.

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Variablen erstellen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Legt das Suchmuster fest.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Übereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest ("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 2

Siehe auch

Global-Eigenschaft | IgnoreCase-Eigenschaft

Betrifft: RegExp-Objekt


Source-Eigenschaft (VBScript)

Visual Basic Scripting Edition

Source-Eigenschaft

Gibt den Namen des Objekts oder der Anwendung zurück, das/die ursprünglich den Fehler ausgelöst hat, oder legt den Namen fest.

Objekt.Source [= Zeichenfolgenausdruck]

Argumente

Objekt
Stets das Err-Objekt.
Zeichenfolgenausdruck
Ein Zeichenfolgenausdruck, der die Anwendung identifiziert, die den Fehler ausgelöst hat.

Hinweise

Die Source-Eigenschaft gibt einen Zeichenfolgenausdruck an, der den Namen der Klasse des Objekts oder die Ressourcen-ID des Objekts darstellt, das den Fehler ursprünglich ausgelöst hat. Mit Source stellen Sie Benutzern Informationen zur Verfügung, wenn der Code den Fehler, der in einem Objekt ausgelöst wurde, auf das der Code zugegriffen hat, nicht verarbeiten kann. Wenn Sie zum Beispiel auf Microsoft Excel zugreifen und der Fehler Division durch Null ausgelöst wird, setzt Microsoft Excel Err.Number auf den internen Excel-Fehlercode für diesen Fehler und Source auf Excel.Application. Wenn der Fehler von einem anderen Objekt ausgelöst wird, das von Microsoft Excel aufgerufen wird, fängt Microsoft Excel den Fehler ab und setzt Err.Number auf den internen Excel-Fehlercode für Division durch Null. Allerdings bleiben die anderen Eigenschaften des Err-Objekts (einschließlich Source) in dem Zustand, in den sie durch das Objekt versetzt wurden, das den Fehler ausgelöst hat.

Source enthält immer den Namen des Objekts, das den Fehler ursprünglich ausgelöst hat. Ihr Code kann versuchen, den Fehler entsprechend der Fehlerdokumentation des verwendeten Objekts zu verarbeiten. Wenn Ihre Fehlerbehandlungsroutine erfolglos bleibt, können Sie die Informationen des Err-Objekts verwenden, um dem Benutzer eine Beschreibung des Fehlers zu geben. Mit Source und den anderen Err-Eigenschaften können Sie den Benutzer darüber informieren, welches Objekt den Fehler ursprünglich verursacht hat, wie dieses Objekt den Fehler beschreibt usw.

Wenn Sie einen Fehler aus dem Code auslösen, ist Source die Ressourcen-ID Ihrer Anwendung.

Der folgende Code zeigt die Verwendung der Source-Eigenschaft.

On Error Resume Next
Err.Raise 6   ' Erzeugt einen Überlauffehler.
MsgBox ("Fehler Nr. " & CStr(Err.Number) & " " & Err.Description & " " & Err.Source)
Err.Clear   ' Löscht die Fehlermeldung.

Anforderungen

Version 1

Siehe auch

Description-Eigenschaft | Err-Objekt | HelpContext-Eigenschaft | HelpFile-Eigenschaft | Number-Eigenschaft | On Error-Anweisung

Betrifft: Err-Objekt


Value-Eigenschaft

Gibt den Wert oder Text einer Entsprechung zurück, der in einer Suchzeichenfolge gefunden wurde.

Objekt.Value

Objekt ist stets ein Match-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Value-Eigenschaft.

Function RegAusdrTest(Suchmuster, Zeichenfolge)
   Dim regAusdr, Uebereinstimmung, Uebereinstimmungen, Rueckgabe   ' Erstellt Variablen.
   Set regAusdr = New RegExp   ' Erstellt einen regulären Ausdruck.
   regAusdr.Pattern = Suchmuster   ' Setzt das Muster.
   regAusdr.IgnoreCase = True   ' Ignoriert die Schreibweise.
   regAusdr.Global = True   ' Legt globales Anwenden fest.
   Set Uebereinstimmungen = regAusdr.Execute(Zeichenfolge)   ' Führt die Suche aus.
   For Each Uebereinstimmung in Uebereinstimmungen   ' Durchläuft die Auflistung der Übereinstimmungen.
      Rueckgabe = Rueckgabe & "Entsprechung " & I & " gefunden bei "
      Rueckgabe = Rueckgabe & Uebereinstimmung.FirstIndex & ". Wert ist '"
      Rueckgabe = Rueckgabe & Uebereinstimmung.Value & "'." & vbCRLF
   Next
   RegAusdrTest = Rueckgabe
End Function
MsgBox(RegAusdrTest("is.", "IS1 is2 IS3 is4"))

Anforderungen

Version 1

Siehe auch

FirstIndex-Eigenschaft | Length-Eigenschaft

Betrifft: Match-Objekt


Anweisungen

In diesem Abschnitt

Call-Anweisung

Class-Anweisung

Const-Anweisung

Dim-Anweisung

Do...Loop-Anweisung

Erase-Anweisung

Execute-Anweisung

ExecuteGlobal-Anweisung

Exit-Anweisung

For Each...Next-Anweisung

For...Next-Anweisung

Function-Anweisung

If...Then...Else-Anweisung

On Error-Anweisung

Option Explicit-Anweisung

Private-Anweisung

Property Get-Anweisung

Property Let-Anweisung

Property Set-Anweisung

Public-Anweisung

Randomize-Anweisung

ReDim-Anweisung

Rem-Anweisung

Select Case-Anweisung

Set-Anweisung

Sub-Anweisung

While...Wend-Anweisung

With-Anweisung

Verwandte Abschnitte

VBScript-Sprachverzeichnis


Call-Anweisung

Überträgt die Steuerung auf eine Sub- oder Function-Prozedur.

[Call] Name [(ArgumentListe)]

Argumente

Call
Optionales Schlüsselwort. Falls angegeben, muss ArgumentListe in Klammern hinzugefügt werden. Beispiel:

Call MeineProzedur(0)

Name
Erforderlich. Der Name der aufzurufenden Prozedur.
ArgumentListe
Optional. Durch Kommata getrennte Auflistung von Variablen, Arrays oder Ausdrücken, die an die Prozedur übergeben werden sollen.

Hinweise

Es ist nicht erforderlich, das Schlüsselwort Call beim Aufrufen einer Prozedur zu verwenden. Wenn Sie jedoch das Schlüsselwort Call zum Aufrufen einer Prozedur verwenden, die Argumente benötigt, muss ArgumentListe in Klammern eingeschlossen werden. Wird das Schlüsselwort Call nicht eingegeben, dürfen Sie die Klammern um Argumentliste ebenfalls nicht eingeben. Wenn Sie die Call-Syntax verwenden, um eine intrinsische oder benutzerdefinierte Funktion aufzurufen, wird der Rückgabewert der Funktion verworfen.

Call MeineFunktion("Hallo Welt!")
Function MeineFunktion(Text)
   MsgBox Text
End Function

Anforderungen

Version 1


Class-Anweisung

Deklariert sowohl den Namen einer Klasse als auch eine Definition der Variablen, Eigenschaften und Methoden, die in der Klasse enthalten sind.

Class Name
    Anweisungen
End Class

Argumente

Name
Erforderlich. Name der Klasse gemäß den Standardkonventionen für Namen von Variablen.
Anweisungen
Erforderlich. Eine oder mehrere Anweisungen, die die Variablen, Eigenschaften und Methoden der Klasse festlegen.

Hinweise

Innerhalb eines Class-Blockes werden Elemente mithilfe der entsprechenden Deklarationsanweisung als Private oder Public deklariert. Als Private deklarierte Elemente sind nur im Class-Block sichtbar. Als Public deklarierte Elemente sind sowohl im Class-Block als auch im Code außerhalb des Class-Blockes sichtbar. Elemente, die nicht explizit als Private oder Public deklariert wurden, sind standardmäßig Public. Als Public innerhalb des Klassenblockes deklarierte Prozeduren (Sub oder Function) werden zu Methoden dieser Klasse. Public-Variablen dienen genauso als Eigenschaften für die Klasse wie Eigenschaften, die mithilfe von Property Get, Property Let und Property Set explizit deklariert wurden. Standardeigenschaften und -methoden für die Klasse werden in deren Deklarationen mithilfe des Schlüsselwortes Default definiert. Weitere Informationen zur Verwendung dieses Schlüsselwortes finden Sie unter den jeweiligen Themen der einzelnen Deklarationsanweisungen.

Anforderungen

Version 5

Siehe auch

Dim-Anweisung | Function-Anweisung | Private-Anweisung | Property Get-Anweisung | Property Let-Anweisung | Property Set-Anweisung | Public-Anweisung | Set-Anweisung | Sub-Anweisung


Const-Anweisung

Deklariert Konstanten zur Verwendung anstelle von Literalwerten.

[Public | Private] Const KonstName = Ausdruck

Argumente

Public
Optional. Schlüsselwort auf Skriptebene zur Deklaration von Konstanten, die in allen Prozeduren und Skripten verfügbar sind. In Prozeduren nicht erlaubt.
Private
Optional. Schlüsselwort auf Skriptebene zur Deklaration von Konstanten, die nur innerhalb des Skriptes verfügbar sind, in dem sie deklariert wurden. In Prozeduren nicht erlaubt.
KonstName
Erforderlich. Name der Konstanten gemäß den Standardkonventionen für Namen von Variablen.
Ausdruck
Erforderlich. Literalwert oder andere Konstante oder eine Kombination daraus, die arithmetische oder logische Operatoren außer Is enthält.

Hinweise

Konstanten sind standardmäßig Public. Innerhalb von Prozeduren sind Konstanten immer Private, und ihr Gültigkeitsbereich kann nicht geändert werden. Innerhalb eines Skriptes kann die Voreinstellung für den Gültigkeitsbereich einer Konstanten auf Skriptebene mit dem Schlüsselwort Private geändert werden.

Zur Kombination von mehreren Konstantendeklarationen in der gleichen Zeile trennen Sie die Konstantenzuweisungen durch ein Komma. Werden Konstantendeklarationen auf diese Weise kombiniert, bezieht sich das Schlüsselwort Public oder Private (falls verwendet) auf alle diese Konstanten.

In Konstantendeklarationen dürfen Sie keine Variablen, benutzerdefinierten Funktionen oder intrinsische VBScript-Funktionen (wie z. B. Chr) verwenden. Laut Definition können diese keine Konstanten sein. Sie können auch keine Konstante aus einem Ausdruck erstellen, der einen Operator enthält, d. h., es sind nur einfache Konstanten erlaubt. Innerhalb einer Sub- oder Function-Prozedur deklarierte Konstanten sind nur lokal in dieser Prozedur gültig. Eine außerhalb einer Prozedur deklarierte Konstante gilt in dem ganzen Skript, in dem sie deklariert wurde. An allen Stellen, an denen Sie einen Ausdruck verwenden können, können Sie auch Konstanten einsetzen. Der folgende Code veranschaulicht die Verwendung der Const-Anweisung:

Const MeineVar = 459   ' Konstanten sind standardmäßig Public.
Private Const MeineZf = "HILFE"   ' Deklariert eine Private-Konstante.
Const MeineZf = "Hallo", MeineZahl = 3,4567   ' Deklariert mehrere Konstanten in der gleichen Zeile.
Anmerkung Mithilfe von Konstanten können Ihre Skripte selbstdokumentierend und einfach zu ändern sein. Im Gegensatz zu Variablen können Konstanten nicht versehentlich geändert werden, während Ihr Skript ausgeführt wird.

Anforderungen

Version 5

Siehe auch

Dim-Anweisung | Function-Anweisung | Private-Anweisung | Public-Anweisung | Sub-Anweisung


Dim-Anweisung

Deklariert Variablen und reserviert Speicherplatz für sie.

Dim VarName[([Dimensionen])][, VarName[([Dimensionen])]] . . .

Argumente

VarName
Name der Variablen gemäß den Standardkonventionen für Namen von Variablen.
Dimensionen
Dimensionen einer Arrayvariablen. Bis zu 60 Dimensionen gleichzeitig sind zulässig. Die folgende Syntax wird für das Argument Dimensionen verwendet:

Obergrenze [,Obergrenze] . . .

Die Untergrenze der Elementzahl ist immer Null.

Hinweise

Variablen, die mit Dim auf Skriptebene deklariert wurden, stehen allen Prozeduren des Skriptes zur Verfügung. Auf Prozedurebene deklarierte Variablen stehen nur innerhalb der Prozedur zur Verfügung.

Die Dim-Anweisung in Kombination mit einem leeren Klammernpaar deklariert ein dynamisches Array. Nach einer solchen Deklaration können Sie mit der ReDim-Anweisung innerhalb einer Prozedur die Anzahl der Dimensionen und Elemente definieren. Wenn Sie eine Dimension für eine Arrayvariable mit einer weiteren Deklaration ändern möchten, die Größe des Arrays aber bereits explizit mit einer Dim-Anweisung festgelegt wurde, tritt ein Fehler auf.

Anmerkung Wenn Sie die Dim-Anweisung in einer Prozedur verwenden, setzen Sie sie am besten an den Anfang der Prozedur.

Der folgende Code veranschaulicht die Verwendung der Dim-Anweisung:

Dim Namen(9)              ' Deklariert ein Array mit 10 Elementen.
Dim Namen()               ' Deklariert ein dynamisches Array.
Dim MeineVar, MeineZahlen ' Deklariert zwei Variablen.

Anforderungen

Version 1

Siehe auch

Private-Anweisung | Public-Anweisung | ReDim-Anweisung | Set-Anweisung


Do...Loop-Anweisung

Wiederholt einen Block mit Anweisungen, solange eine Bedingung True ist oder bis eine Bedingung True wird.

Do [{While | Until} Bedingung]
    [Anweisungen]
    [Exit Do]
    [Anweisungen]
Loop

Sie können auch die folgende Syntax verwenden:

Do
    [Anweisungen]
    [Exit Do]
    [Anweisungen]
Loop [{While | Until} Bedingung]

Argumente

Bedingung
Numerischer oder Zeichenfolgenausdruck, der True oder False zurückgibt. Hat Bedingung den Wert Null, wird Bedingung als False interpretiert.
Anweisungen
Eine oder mehrere Anweisungen, die wiederholt werden, während bzw. bis Bedingung True ist.

Hinweise

Exit Do ist nur innerhalb einer Do...Loop-Kontrollstruktur zulässig und stellt eine Alternative zum Verlassen von Do...Loop dar. Exit Do-Anweisungen können an beliebiger Stelle und beliebig oft in Do...Loop verwendet werden. Exit Do wird oft in Zusammenhang mit der Auswertung einer Bedingung (beispielsweise If...Then) eingesetzt und überträgt die Steuerung an die erste Anweisung, die auf Loop folgt.

In geschachtelten Do...Loop-Anweisungen übergibt Exit Do die Steuerung an die Schleife der nächsthöheren Schachtelungsebene.

Der folgende Code veranschaulicht die Verwendung der Do...Loop-Anweisung:

Do Until StdAntwort = vbNo
   MeineZahl = Int (6 * Rnd + 1)   ' Erzeugt eine zufällige Ganzzahl zwischen 1 und 6.
   StdAntwort = MsgBox (MeineZahl & " Möchten Sie eine weitere Zahl?", vbYesNo)
Loop

Dim Test, Zaehler
Test = True: Zaehler = 0      ' Initialisiert die Variablen.
Do                            ' Äußere Schleife.
   Do While Zaehler < 20      ' Innere Schleife.
      Zaehler = Zaehler + 1      ' Zähler inkrementieren.
      If Zaehler = 10 Then      ' Wenn die Bedingung erfüllt ist, ...
         Test = False         ' wird der Wert von Test auf False gesetzt.
         Exit Do              ' Beendet die innere Schleife.
      End If
   Loop
Loop Until Test = False      ' Beendet die äußere Schleife sofort.

Anforderungen

Version 1

Siehe auch

Exit-Anweisung | For...Next-Anweisung | While...Wend-Anweisung


Erase-Anweisung

Initialisiert die Elemente von Arrays fester Größe neu und gibt den von einem dynamischen Array belegten Speicherplatz frei.

Erase Array

Das Argument Array ist der Name der Arrayvariablen, die gelöscht werden soll.

Hinweise

Sie sollten wissen, ob es sich um ein (normales) Array mit fester Größe oder ein dynamisches Array handelt, da sich Erase je nach Arraytyp unterschiedlich verhält. Erase gibt bei Arrays mit fester Größe keinen Speicherplatz frei. Erase legt darüber hinaus die Elemente in Arrays mit fester Größe folgendermaßen fest:

Arraytyp | Wirkung von Erase auf Arrayelemente
Numerisch, feste Größe | Alle Elemente erhalten den Wert Null.
Zeichenfolgen, feste Größe | Alle Elemente werden auf Nulllänge ("") gesetzt.
Objekte | Alle Elemente erhalten den Sonderwert Nothing.

Erase gibt den von dynamischen Arrays verwendeten Speicher frei. Vor dem nächsten Verweis auf das dynamische Array aus dem Programm müssen Sie die Dimensionen der Arrayvariablen mit einer ReDim-Anweisung neu deklarieren.

Der folgende Code veranschaulicht die Verwendung der Erase-Anweisung.

Dim FestesArray(9)
Dim DynamischesArray()
ReDim DynamischesArray(9)   ' Weist Speicherplatz zu.
Erase FestesArray   ' Initialisiert die einzelnen Elemente neu.
Erase DynamischesArray   ' Gibt den vom Array verwendeten Speicher frei.

Anforderungen

Version 1

Dim-Anweisung | Nothing | ReDim-Anweisung


Execute-Anweisung

Führt eine oder mehrere angegebene Anweisungen aus.

Execute Anweisung

Das erforderliche Argument Anweisung ist ein Zeichenfolgenausdruck, der eine oder mehrere auszuführende Anweisungen enthält. Sie können mehrere Anweisungen in das Argument Anweisung einschließen, indem Sie diese durch Doppelpunkte oder eingebettete Zeilenumbrüche voneinander trennen.

Hinweise

In VBScript kann x = y auf zweierlei Weise interpretiert werden. Die erste Möglichkeit ist eine Zuweisungsanweisung, bei der x der Wert von y zugewiesen wird. Die zweite Interpretation ist ein Ausdruck, der überprüft, ob x und y den gleichen Wert haben. In diesem Fall wird Ergebnis der Wert True zugewiesen; sind sie nicht gleich, ist Ergebnis False. Die Execute-Anweisung verwendet stets die erste Interpretation, wohingegen bei der Eval-Methode die zweite verwendet wird.

Anmerkung Bei Microsoft® JScript™ besteht keine Verwechslungsgefahr zwischen Zuweisungen und Vergleichen, da Zuweisungsoperator (=) und Vergleichsoperator (==) unterschiedlich sind.

Der Kontext, in dem die Execute-Anweisung aufgerufen wird, legt fest, welche Objekte und Variablen für den auszuführenden Code verfügbar sind. Im Gültigkeitsbereich liegende Objekte und Variablen sind für Code verfügbar, der in einer Execute-Anweisung ausgeführt wird. Es ist jedoch wichtig, dass beim Ausführen von Code, der eine Prozedur erstellt, diese Prozedur nicht den Gültigkeitsbereich der Prozedur übernimmt, in der der Code steht.

Wie bei jeder Prozedur ist der Gültigkeitsbereich der neuen Prozedur global und übernimmt alle Elemente in den globalen Gültigkeitsbereich. Im Gegensatz zu anderen Prozeduren fällt der zugehörige Kontext nicht in den globalen Gültigkeitsbereich, sodass er nur in dem Kontext der Prozedur ausgeführt werden kann, in dem die Execute-Anweisung aufgetreten ist. Wird jedoch dieselbe Execute-Anweisung außerhalb einer Prozedur (d. h. im globalen Gültigkeitsbereich) aufgerufen, werden nicht nur alle Elemente in den globalen Gültigkeitsbereich übernommen, sondern sie kann auch von einer beliebigen Stelle aus aufgerufen werden, da der Kontext global ist. Das folgende Beispiel veranschaulicht dieses Verhalten:

Dim X   ' Deklariert X im globalen Gültigkeitsbereich.
X = "Global"   ' Weist globalem X einen Wert zu.
Sub Proz1   ' Deklariert die Prozedur.
   Dim X   ' Deklariert X im lokalen Gültigkeitsbereich.
   X = "Lokal"   ' Weist lokalem X einen Wert zu.
            ' Die Execute-Anweisung erstellt hier eine
            ' Prozedur, die beim Aufruf X ausgibt.
            ' Das globale X wird ausgegeben, da Proz2
            ' alles im globalen Gültigkeitsbereich übernimmt.
   Execute "Sub Proz2: document.write X: End Sub"
   document.write Eval("X")   ' Gibt lokales X aus.
   Proz2   ' Ruft Proz2 im Proz1-Gültigkeitsbereich auf.
End Sub
Proz2   ' Diese Zeile verursacht einen Fehler, da
        ' Proz2 außerhalb von Proz1 nicht verfügbar ist.
Proz1   ' Ruft Proz1 auf.
   Execute "Sub Proz2: document.write X: End Sub"
Proz2   ' Dieser Aufruf funktioniert, da Proz2
        ' nun global zur Verfügung steht.

Das folgende Beispiel zeigt, wie die Execute-Anweisung umgeschrieben werden kann, damit Sie nicht die gesamte Prozedur in Anführungszeichen einschließen müssen:

S = "Sub Proz2" & vbCrLf
S = S & "   document.write X" & vbCrLf
S = S & "End Sub"
Execute S

Anforderungen

Version 1

Eval-Funktion | ExecuteGlobal-Anweisung


ExecuteGlobal-Anweisung

Führt eine oder mehrere angegebene Anweisungen im globalen Namensraum eines Skriptes aus.

ExecuteGlobal Anweisung

Das erforderliche Argument Anweisung ist ein Zeichenfolgenausdruck, der eine oder mehrere Ausführungsanweisungen enthält. Sie können mehrere Anweisungen in das Argument Anweisung einschließen, indem Sie diese durch Doppelpunkte oder eingebettete Zeilenumbrüche voneinander trennen.

Hinweise

In VBScript kann x = y auf zweierlei Weise interpretiert werden. Die erste Interpretation ist als eine Zuweisungsanweisung, bei der x der Wert y zugewiesen wird, und die zweite Interpretation ist als ein Ausdruck, der testet, ob x und y denselben Wert haben. Ist dies der Fall, ist Ergebnis True; ist dies nicht der Fall, ist Ergebnis False. Die ExecuteGlobal-Anweisung verwendet stets die erste Interpretation, wohingegen die Eval-Methode stets die zweite Interpretation verwendet.

Anmerkung Bei Microsoft® JScript™ besteht keine Verwechslungsgefahr zwischen Zuweisungen und Vergleichen, da Zuweisungsoperator (=) und Vergleichsoperator unterschiedlich sind.

Alle mit ExecuteGlobal verwendeten Anweisungen werden im globalen Namensraum eines Skriptes ausgeführt. Damit ist es möglich, dem Programm Code hinzuzufügen, auf den jede Prozedur zugreifen kann. So kann z. B. eine VBScript Class-Anweisung zur Laufzeit ausgeführt werden, und Funktionen können anschließend neue Instanzen der Klasse erstellen.

Das Hinzufügen von Prozeduren und Klassen zur Laufzeit kann nützlich sein, bringt jedoch auch die Gefahr mit sich, dass zur Laufzeit globale Variablen und Funktionen überschrieben werden. Da dies erhebliche Programmierprobleme verursachen kann, ist die ExecuteGlobal-Anweisung mit Vorsicht zu verwenden. Verwenden Sie besser die Execute-Anweisung, wenn Sie auf eine Variable oder Funktion nicht außerhalb einer Prozedur zugreifen müssen. Diese wirkt sich nur auf den Namensraum der aufrufenden Funktion aus.

Das folgende Beispiel veranschaulicht die Verwendung der ExecuteGlobal-Anweisung, wenn Sie auf eine Variable oder Funktion nicht außerhalb einer Prozedur zugreifen müssen. Diese wirkt sich nur auf den Namensraum der aufrufenden Funktion aus:

Dim X         ' Deklariert X im globalen Gültigkeitsbereich.
X = "Global"      ' Weist globalem X einen Wert zu.
Sub Proz1   ' Deklariert die Prozedur.
  Dim X      ' Deklariert X im lokalen Gültigkeitsbereich.
  X = "Local"   ' Weist lokalem X einen Wert zu.
         ' Die Execute-Anweisung erstellt hier eine
         ' Prozedur, die beim Aufruf X ausgibt.
         ' Das globale X wird ausgegeben, da Proz2
         ' alles im globalen Gültigkeitsbereich übernimmt.
  ExecuteGlobal "Sub Proz2: Gibt X aus: End Sub"
  Print Eval("X")   ' Gibt lokales X aus.
  Proz2      ' Ruft Proz2 im globalen Gültigkeitsbereich auf
         ' Daher wird "Global" ausgegeben.
End Sub
Proz2         ' Diese Zeile verursacht einen Fehler, da
         ' Proz2 außerhalb von Proz1 nicht verfügbar ist.
Proz1         ' Ruft Proz1 auf.
  Execute "Sub Proz2: Gibt X aus: End Sub"
Proz2         ' Dieser Aufruf funktioniert, da Proz2
         ' nun global zur Verfügung steht.

Das folgende Beispiel zeigt, wie die ExecuteGlobal-Anweisung umgeschrieben werden kann, damit Sie nicht die gesamte Prozedur in Anführungszeichen einschließen müssen:

S = "Sub Proz2" & vbCrLf
S = S & "  Gibt X aus" & vbCrLf
S = S & "End Sub"
ExecuteGlobal S

Anforderungen

Version 1


Exit-Anweisung

Beendet die Ausführung eines durch Do...Loop, For...Next, Function oder Sub definierten Codeblockes.

Exit Do
Exit For
Exit Function
Exit Property
Exit Sub

Sie können die Exit-Anweisung mit folgender Syntax verwenden:

Anweisung | Beschreibung
Exit Do | Eine Möglichkeit zum Verlassen einer Do...Loop-Anweisung. Die Anweisung ist nur innerhalb einer Do...Loop-Anweisung zulässig. Exit Do gibt die Steuerung an die erste Anweisung im Anschluss an die Loop-Anweisung weiter. In geschachtelten Do...Loop-Anweisungen übergibt Exit Do die Steuerung an die Schleife der nächsthöheren Schachtelungsebene.
Exit For | Eine Möglichkeit zum Verlassen einer For-Schleife. Kann nur bei einer For...Next- oder For Each...Next-Schleife verwendet werden. Exit For gibt die Steuerung an die erste Anweisung im Anschluss an die Next-Anweisung weiter. In geschachtelten For-Schleifen übergibt Exit For die Steuerung an die Schleife der nächsthöheren Schachtelungsebene.
Exit Function | Beendet die umgebende Function-Prozedur mit sofortiger Wirkung. Das Programm setzt die Ausführung mit der Anweisung fort, die dem Aufruf der Function-Prozedur folgt.
Exit Property | Beendet die umgebende Property-Prozedur mit sofortiger Wirkung. Die Ausführung wird mit der Anweisung fortgesetzt, die dem Aufruf der Property-Prozedur folgt.
Exit Sub | Beendet die umgebende Sub-Prozedur mit sofortiger Wirkung. Das Programm setzt die Ausführung mit der Anweisung fort, die dem Aufruf der Sub-Prozedur folgt.

Der folgende Code veranschaulicht die Verwendung der Exit-Anweisung:

Sub Zufallsschleife
   Dim I, MeineZahl
   Do   ' Startet unbegrenzte Schleife.
      For I = 1 To 1000   ' Legt 1000 Schleifendurchläufe fest.
         MeineZahl = Int(Rnd * 100)   ' Generiert Zufallszahlen.
         Select Case MeineZahl   ' Wertet Zufallszahlen aus.
            Case 17: MsgBox "MeineZahl ist 17"
               Exit For   ' Beendet For...Next, wenn MeineZahl = 17.
            Case 29: MsgBox "MeineZahl ist 29"
               Exit Do   ' Beendet Do...Loop, wenn MeineZahl = 29.
            Case 54: MsgBox "MeineZahl ist 54"
               Exit Sub   ' Beendet Sub-Prozedur, wenn MeineZahl = 54.
            End Select
      Next
   Loop
End Sub

Anforderungen

Version 1

Siehe auch

Do...Loop-Anweisung | For Each...Next-Anweisung | For...Next-Anweisung | Function-Anweisung | Sub-Anweisung


For Each...Next-Anweisung

Wiederholt eine Reihe von Anweisungen für alle Elemente eines Arrays oder einer Auflistung.

For Each Element In Gruppe
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next [Element]

Argumente

Element
Variable zum Durchlaufen der Elemente der Auflistung oder des Arrays. Bei Auflistungen sind für Element nur Variablen vom Typ Variant, allgemeine Variablen vom Typ Object oder spezielle Variablen für Automatisierungsobjekte zulässig. Bei Arrays sind für Element nur Variablen vom Typ Variant zulässig.
Gruppe
Name einer Objektauflistung oder eines Arrays.
Anweisungen
Eine oder mehrere Anweisungen, die für jedes Element in Gruppe ausgeführt werden.

Hinweise

Der For Each-Block wird ausgeführt, wenn sich mindestens ein Element in Gruppe befindet. In diesem Fall führt das Programm alle Anweisungen in der Schleife für das erste Element in Gruppe aus. Die Schleife wird für alle Elemente in Gruppe wiederholt, bis sich keine Elemente mehr in Gruppe befinden. Dann verlässt das Programm die Schleife und setzt die Ausführung mit der Anweisung fort, die auf die Next-Anweisung folgt.

Exit For ist nur innerhalb einer For Each...Next- oder For...Next-Kontrollstuktur zulässig und stellt eine Alternative zum Verlassen der Struktur dar. Exit For kann an beliebiger Stelle und beliebig oft in der Schleife verwendet werden. Exit For wird oft in Zusammenhang mit der Auswertung einer Bedingung (zum Beispiel If...Then) eingesetzt und weist das Programm an, die Ausführung mit der ersten Anweisung im Anschluss an Next fortzusetzen.

Sie können For Each...Next-Schleifen schachteln, indem Sie eine For Each...Next-Schleife innerhalb einer anderen verwenden. Das Argument Element muss jedoch für alle Schleifen eindeutig sein.

Anmerkung Wird Element in einer Next-Anweisung nicht angegeben, wird die Ausführung dennoch fortgesetzt. Eine Next-Anweisung vor der zugehörigen For-Anweisung führt zu einem Fehler.

Der folgende Code veranschaulicht die Verwendung der For Each...Next-Anweisung:

Function OrdnerlisteAnzeigen(Ordnerangabe)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(Ordnerangabe)
   Set fc = f.Files
   For Each f1 in fc
      s = s & f1.name
      s = s & "<BR>"
   Next
   OrdnerlisteAnzeigen = s
End Function

Anforderungen

Version 2

Siehe auch

Do...Loop-Anweisung | Exit-Anweisung | For...Next-Anweisung | While...Wend-Anweisung


For...Next-Anweisung

Wiederholt eine Gruppe von Anweisungen, bis ein Schleifenzähler einen bestimmten Wert erreicht.

For Zähler = Anfang To Ende [Step Schritt]
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next

Argumente

Zähler
Numerische Variable, die als Schleifenzähler verwendet wird. Ein Element eines Arrays oder eines benutzerdefinierten Typs ist an dieser Stelle nicht zulässig.
Anfang
Startwert von Zähler.
Ende
Endwert von Zähler.
Schritt
Schrittweite, um die Zähler bei jedem Schleifendurchlauf verändert wird. Der Standardwert für Schritt ist 1, falls kein Wert angegeben wird.
Anweisungen
Eine oder mehrere Anweisungen zwischen For und Next, die so oft wie angegeben wiederholt werden.

Hinweise

Das Argument Schritt kann positiv oder negativ sein. Der Wert des Arguments Schritt hat folgende Auswirkungen auf die Schleifenausführung:

Wert | Schleifenausführung
Positiv oder 0 | Wenn Zähler <= Ende
Negativ | Wenn Zähler >= Ende

Nachdem im ersten Schleifendurchlauf alle Anweisungen ausgeführt wurden, addiert das Programm Schritt zum Wert von Zähler hinzu. Die Anweisungen in der Schleife werden dann entweder erneut ausgeführt (aufgrund desselben Tests, der auch zu Beginn des ersten Durchlaufs durchgeführt wurde), oder das Programm beendet die Schleife und setzt die Ausführung mit der Anweisung fort, die auf die Next-Anweisung folgt.

Anmerkung Wenn Sie den Wert von Zähler innerhalb einer Schleife ändern, erschwert dies das Verständnis und das Testen des Codes.

Exit For ist nur innerhalb einer For Each...Next- oder For...Next-Kontrollstruktur zulässig und stellt eine Alternative zum Verlassen der Kontrollstruktur da. Exit For kann an beliebiger Stelle und beliebig oft in der Schleife verwendet werden. Exit For wird oft in Zusammenhang mit der Auswertung einer Bedingung (zum Beispiel If...Then) eingesetzt und weist das Programm an, die Ausführung mit der ersten Anweisung hinter Next fortzusetzen.

Sie können For...Next-Schleifen schachteln, indem Sie eine For...Next-Schleife in eine andere setzen. Verwenden Sie für jede Schleife einen eindeutigen Variablennamen als Zähler. Die folgende Konstruktion ist korrekt:

For I = 1 To 10
      For J = 1 To 10
            For K = 1 To 10
            . . .
            Next
      Next
Next

Anforderungen

Version 1

Siehe auch

Do...Loop-Anweisung | Exit-Anweisung | For Each...Next-Anweisung | While...Wend-Anweisung


Function-Anweisung

Deklariert Namen, Argumente und Code, die den Rumpf einer Function-Prozedur bilden.

[Public [Default] | Private] Function Name [(ArgListe)]
    [Anweisungen]
    [Name = Ausdruck]
    [Exit Function]
    [Anweisungen]
    [Name = Ausdruck]
End Function

Argumente

Public
Gibt an, dass auf die Function-Prozedur von allen anderen Prozeduren in allen Skripten zugegriffen werden kann.
Default
Wird nur mit einem Schlüsselwort Public in einem Class-Block verwendet, um anzugeben, dass die Function-Prozedur die Standardmethode für die Klasse ist. Ist mehr als eine Default-Prozedur in einer Klasse angegeben, tritt ein Fehler auf.
Private
Gibt an, dass nur Prozeduren in dem Skript, in denen sie deklariert wurde, auf die Function-Prozedur zugreifen können, oder wenn die Funktion Element einer Klasse ist, nur andere Prozeduren in dieser Klasse.
Name
Name der Function-Prozedur gemäß den Standardkonventionen für Namen von Variablen.
ArgListe
Variablenliste mit den Argumenten, die an die Function-Prozedur beim Aufruf übergeben werden. Mehrere Variablen werden durch Kommata voneinander getrennt.
Anweisungen
Eine beliebige Gruppe auszuführender Anweisungen im Rumpf einer Function-Prozedur.
Ausdruck
Rückgabewert von Function.

Das Argument ArgListe verwendet die folgende Syntax und die folgenden Teile:

[ByVal | ByRef] VarName[( )]

Argumente

ByVal
Gibt an, dass das Argument als Wert übergeben wird.
ByRef
Gibt an, dass das Argument als Verweis übergeben wird.
VarName
Name der Variablen, die das Argument darstellt, gemäß den Standardkonventionen für den Namen von Variablen.

Hinweise

Auf Function-Prozeduren kann standardmäßig von allen anderen Prozeduren aus zugegriffen werden, wenn dies nicht explizit durch Public oder Private angegeben wird, das heißt, sie sind für alle anderen Prozeduren im Skript sichtbar. Der Wert lokaler Variablen in Function wird zwischen Aufrufen der Prozedur nicht zwischengespeichert.

Sie können eine Function-Prozedur nicht innerhalb einer anderen Prozedur festlegen (z. B. Sub oder Property Get).

Die Exit Function-Anweisung führt zur sofortigen Beendigung der Function-Prozedur. Die Programmausführung wird mit der Anweisung fortgesetzt, die auf die Anweisung folgt, welche die Function-Prozedur aufgerufen hat. In einer Function-Prozedur kann eine beliebige Anzahl von Exit Function-Anweisungen an beliebiger Stelle vorkommen.

Ähnlich wie eine Sub-Prozedur ist eine Function-Prozedur eine separate Prozedur, die Argumente übernehmen, eine Reihe von Anweisungen ausführen und die Werte ihrer Argumente ändern kann. Im Unterschied zu einer Sub-Prozedur können Sie eine Function-Prozedur auf der rechten Seite eines Ausdrucks auf gleiche Weise verwenden wie eine intrinsische Funktion, wie z. B. Sqr, Cos oder Chr, wenn Sie den von der Funktion zurückgegebenen Wert verwenden möchten.

Sie rufen eine Function-Prozedur in einem Ausdruck über den Funktionsnamen auf, gefolgt von der Argumentliste in Klammern. Unter Call-Anweisung finden Sie spezifische Informationen über das Aufrufen von Function-Prozeduren.

Vorsicht Function-Prozeduren können rekursiv sein; d. h. sie können sich selbst aufrufen, um eine bestimmte Aufgabe durchzuführen. Rekursionen können jedoch zu Stapelüberlauffehlern führen.

Um aus einer Funktion einen Wert zurückzugeben, weisen Sie den Wert dem Funktionsnamen zu. Innerhalb der Prozedur kann eine beliebige Anzahl solcher Zuweisungen an beliebiger Stelle auftreten. Wird Name kein Wert zugewiesen, gibt die Prozedur einen Standardwert zurück: Eine numerische Funktion gibt 0 zurück, und eine Zeichenfolgenfunktion gibt eine Zeichenfolge der Länge Null ("") zurück. Eine Funktion, die einen Objektverweis zurückgibt, liefert als Standardwert Nothing, falls Name kein Objektverweis zugewiesen wurde (durch Set) innerhalb der Function.

Das folgende Beispiel zeigt, wie einer Funktion namens BinaerSuche ein Rückgabewert zugewiesen wird. In diesem Fall wird dem Namen der Wert False zugewiesen, um anzuzeigen, dass der gesuchte Wert nicht gefunden wurde.

Function BinaerSuche(. . .)
      . . .
      ' Wert nicht gefunden. Gibt einen False-Wert zurück.
      If unten > oben Then
            BinaerSuche = False
            Exit Function
      End If
      . . .
End Function

Es gibt zwei Arten von Variablen, die in Function-Prozeduren verwendet werden: solche, die innerhalb der Prozedur explizit deklariert werden, und andere. Variablen, die explizit in einer Prozedur deklariert werden (mit Dim oder gleichwertiger Anweisung) sind immer prozedurlokal. Variablen, die verwendet, aber nicht explizit innerhalb einer Prozedur deklariert werden, sind ebenfalls lokal, es sei denn, sie wurden auf einer höheren Ebene außerhalb der Prozedur explizit deklariert.

Vorsicht Eine Prozedur kann eine nicht explizit in der Prozedur deklarierte Variable zwar verwenden, jedoch können Namenskonflikte auftreten, falls ein anderes auf Skriptebene definiertes Element denselben Namen hat. Verwendet Ihre Prozedur eine nicht deklarierte Variable mit einem Namen, der dem Namen einer anderen Prozedur, Konstanten oder Variablen entspricht, wird davon ausgegangen, dass Ihre Prozedur auf diesen Skriptebenennamen verweist. Verwenden Sie eine Option Explicit-Anweisung, um solche Konflikte zu vermeiden und eine explizite Deklaration von Variablen zu erzwingen.
Vorsicht VBScript ordnet u. U. arithmetische Ausdrücke anders an, um die interne Effizienz zu erhöhen. Vermeiden Sie die Verwendung von Function-Prozeduren in einem arithmetischen Ausdruck, wenn die Funktion den Wert von Variablen im selben Ausdruck ändert.

Anforderungen

Version 1

Siehe auch

Call-Anweisung | Dim-Anweisung | Exit-Anweisung | Nothing | Set-Anweisung | Sub-Anweisung


If...Then...Else-Anweisung

Wertet einen Ausdruck aus und führt in Abhängigkeit vom Ergebnis eine Reihe von Anweisungen aus.

If Bedingung Then Anweisungen [Else elseAnweisungen ]

Sie können auch die folgende flexiblere Syntax verwenden:

If Bedingung Then
   [Anweisungen]
[ElseIf Bedingung-n Then
   [elseifAnweisungen]] . . .
[Else
   [elseAnweisungen]]
End If

Argumente

Bedingung
Ein oder mehrere Ausdrücke der beiden folgenden Arten:

Numerischer Ausdruck oder Zeichenfolgenausdruck, der als Ergebnis True oder False liefert. Hat Bedingung den Wert Null, wird Bedingung als False interpretiert.

Ein Ausdruck der Form TypeOf Objektname Is Objekttyp. Objektname ist eine Objektreferenz und Objekttyp ein beliebiger gültiger Objekttyp. Der Ausdruck ist True, wenn Objektname den Objekttyp hat, der durch Objekttyp angegeben wird; andernfalls ist das Ergebnis False.

Anweisungen
Eine Anweisung oder mehrere durch Doppelpunkte voneinander getrennte Anweisungen, die ausgeführt werden, wenn Bedingung den Wert True hat.
Bedingung-n
Dieselbe Bedeutung wie Bedingung.
elseifAnweisungen
Eine oder mehrere Anweisungen, die ausgeführt werden, wenn die zugehörige Bedingung (Bedingung-n) True ergibt.
elseAnweisungen
Eine oder mehrere Anweisungen, die ausgeführt werden, wenn keine der Bedingungen (Bedingung oder Bedingung-n) den Wert True ergibt.

Hinweise

Die einzeilige Variante (erste Syntax) bietet sich bei einfachen Tests an. Die Blockvariante (zweite Syntax) ist dagegen strukturierter und flexibler als die einzeilige Variante und kann in der Regel leichter gelesen, gepflegt und getestet werden.

Anmerkung Die einzeilige Syntax erlaubt die Ausführung mehrerer Anweisungen als Ergebnis einer If...Then-Entscheidung. Dazu müssen sich aber alle Anweisungen in einer Zeile befinden und durch Doppelpunkte voneinander getrennt sein, wie in der folgenden Zeile:
If A > 10 Then A = A + 1 : B = B + A : C = C + B

Beim Ausführen eines If-Blockes (zweite Syntax) wird Bedingung getestet. Ist Bedingung True, werden die auf Then folgenden Anweisungen ausgeführt. Ist Bedingung False, werden die einzelnen ElseIf (sofern vorhanden) nacheinander ausgewertet. Wird eine Bedingung als True ausgewertet, werden die auf das dazugehörige Then folgenden Anweisungen ausgeführt. Ist keine der ElseIf-Anweisungen True (oder sind keine ElseIf-Klauseln vorhanden), werden die auf Else folgenden Anweisungen ausgeführt. Nach Ausführung der Anweisungen, die auf Then oder Else folgen, wird die Ausführung mit den Anweisungen fortgesetzt, die auf End If folgen.

Die Else- und ElseIf-Klauseln sind optional. In einem If-Block können Sie beliebig viele ElseIf-Abschnitte verwenden. Nach einer Else-Klausel sind jedoch keine ElseIf-Klauseln zulässig. If-Anweisungsblöcke können geschachtelt werden, d. h. wiederum selbst If-Blöcke enthalten.

Der Code im Anschluss an das Schlüsselwort Then entscheidet darüber, ob es sich bei der Anweisung um einen If-Block handelt oder nicht. Befindet sich hinter Then in derselben Zeile weiterer Code (Kommentare ausgenommen), handelt es sich um eine einzeilige If-Anweisung.

Eine Anweisung für einen If-Block muss die erste Anweisung in einer Zeile sein. Der If-Block muss mit einer End If-Anweisung beendet werden.

Anforderungen

Version 1


On Error-Anweisung

Aktiviert oder deaktiviert die Fehlerbehandlung.

On Error Resume Next
On Error GoTo 0

Hinweise

Wenn Sie in Ihrem Code keine On Error Resume Next-Anweisung verwenden, kann jeder Laufzeitfehler bewirken, dass eine Fehlermeldung angezeigt und die Codeausführung beendet wird. Das tatsächliche Verhalten wird jedoch von dem Host bestimmt, der den Code ausführt. Der Host kann manchmal entscheiden, solche Fehler anders zu behandeln. In einigen Fällen wird beim Auftreten des Fehlers der Script Debugger aufgerufen. In anderen Fällen wird möglicherweise übersehen, dass ein Fehler auftrat, da der Host den Benutzer nicht informiert. Auch dies richtet sich allein danach, wie der Host aufgetretene Fehler behandelt.

Innerhalb einer bestimmten Prozedur ist ein Fehler nicht unbedingt schwerwiegend, wenn an irgendeiner Stelle im Aufrufstapel die Fehlerbehandlung aktiviert ist. Wenn in einer Prozedur die lokale Fehlerbehandlung nicht aktiviert ist und ein Fehler auftritt, geht die Steuerung durch den Stapel zurück, bis eine Prozedur mit aktivierter Fehlerbehandlung gefunden wird. Nun wird der Fehler verarbeitet. Wenn im Stapel keine Prozedur mit aktivierter Fehlerbehandlung gefunden wird, wird eine Fehlermeldung angezeigt und die Ausführung wird beendet, oder der Host behandelt den Fehler entsprechend.

Das Programm setzt nach einer On Error Resume Next-Anweisung die Ausführung mit der Anweisung fort, die unmittelbar auf die Anweisung folgt, die den Laufzeitfehler verursacht hat, oder mit der Anweisung, die unmittelbar auf den letzten Aufruf einer anderen Prozedur folgt, in der die On Error Resume Next-Anweisung enthalten ist. Dadurch kann das Programm die Ausführung trotz eines Laufzeitfehlers fortsetzen, und Sie können die Fehlerbehandlung direkt im Anschluss an eine Fehler verursachende Anweisung durchführen anstatt an eine andere Stelle innerhalb der Prozedur zu verzweigen. Sie können dann die Fehlerbehandlungsroutine direkt innerhalb der Prozedur integrieren.

Eine On Error Resume Next-Anweisung wird inaktiv, wenn eine andere Prozedur aufgerufen wird, weshalb Sie in jeder aufgerufenen Routine eine On Error Resume Next-Anweisung ausführen sollten, wenn Sie die Fehlerbehandlung direkt in der jeweiligen Routine durchführen möchten. Wenn eine Prozedur beendet wird, kehrt die Fehlerbehandlung zu dem Verfahren zurück, das vor dem Eintreten in die gerade beendete Prozedur in Kraft war.

Verwenden Sie On Error GoTo 0, um die Fehlerbehandlung zu deaktivieren, wenn Sie sie vorher mit On Error Resume Next aktiviert haben.

Das folgende Beispiel veranschaulicht die Verwendung der On Error Resume Next-Anweisung.

On Error Resume Next
Err.Raise 6   ' Erzeugt einen Überlauffehler.
MsgBox "Fehler Nr. " & CStr(Err.Number) & " " & Err.Description
Err.Clear   ' Löscht die Fehlermeldung.

Anforderungen

Version 1

Err-Objekt | Exit-Anweisung


Option Explicit-Anweisung

Erzwingt die explizite Deklaration aller Variablen in einem Skript.

Option Explicit

Hinweise

Wird die Option Explicit-Anweisung verwendet, muss sie im jeweiligen Skript vor allen Anweisungen stehen.

Wenn Sie die Option Explicit-Anweisung verwenden, müssen alle Variablen explizit mit den Anweisungen Dim, Private, Public oder ReDim deklariert werden. Wenn Sie einen nicht deklarierten Variablennamen verwenden, tritt ein Fehler auf.

Anmerkung Mit Option Explicit vermeiden Sie falsch geschriebene Namen bereits bestehender Variablen oder Verwechslungen im Code bei unklarem Gültigkeitsbereich von Variablen.

Der folgende Code veranschaulicht die Verwendung der Option Explicit-Anweisung.

Option Explicit   ' Erzwingt explizites Deklarieren von Variablen.
Dim MeineVar   ' Deklariert eine Variable.
MeinInt = 10   ' Nicht deklarierte Variable verursacht einen Fehler.
MeineVar = 10   ' Deklarierte Variable verursacht keinen Fehler.

Anforderungen

Version 1


Private-Anweisung

Deklariert private Variablen und reserviert Speicherplatz. Deklariert in einem Class-Block private Variablen.

Private VarName[([Dimensionen])][, VarName[([Dimensionen])]] . . .

Argumente

VarName
Name der Variablen gemäß den Standardkonventionen für Namen von Variablen.
Dimensionen
Dimensionen einer Arrayvariablen. Bis zu 60 Dimensionen gleichzeitig sind zulässig. Die folgende Syntax wird für das Argument Dimensionen verwendet:

Obergrenze [, Obergrenze] . . .

Die Untergrenze der Elementzahl ist immer Null.

Hinweise

Private-Variablen sind nur in dem Skript verfügbar, in dem sie deklariert wurden.

Einer Variablen, die auf ein Objekt verweist, muss ein vorhandenes Objekt mit der Set-Anweisung zugeordnet sein, bevor sie eingesetzt werden kann. Bis zur eigentlichen Objektzuordnung wird die deklarierte Objektvariable als Empty initialisiert.

Sie können die Private-Anweisung mit leeren Klammern auch zum Deklarieren von dynamischen Arrays einsetzen. Verwenden Sie dann anschließend die ReDim-Anweisung innerhalb einer Prozedur, um die Anzahl der Dimensionen und Elemente in diesem Array festzulegen. Wenn Sie versuchen, die Dimension einer Arrayvariablen, deren Größe explizit in einer Private-, Public- oder Dim-Anweisung angegeben war, neu zu deklarieren, tritt ein Fehler auf.

Anmerkung Wenn Sie die Private-Anweisung in einer Prozedur verwenden, sollten Sie sie nach der allgemeinen Programmierpraxis an den Anfang der Prozedur stellen.

Der folgende Code veranschaulicht die Verwendung der Private-Anweisung.

Private MeineZahl   ' Private Variant-Variable.
Private MeinArray(9)   ' Private Arrayvariable.
   ' Mehrere Private-Deklarationen von Variant-Variablen.
Private MeineZahl, MeineVar, DeineZahl

Anforderungen

Version 1

Siehe auch

Dim-Anweisung | Public-Anweisung | ReDim-Anweisung | Set-Anweisung


Property Get-Anweisung

Deklariert in einem Class-Block den Namen, Argumente sowie den Code, die den Rumpf einer Property-Prozedur bilden, die den Wert einer Eigenschaft liest (zurückgibt).

[Public [Default]| Private] Property Get Name [(ArgListe)]
    [Anweisungen]
    [[Set] Name = Ausdruck]
    [Exit Property]
    [Anweisungen]
    [[Set] Name = Ausdruck]
End Property

Argumente

Public
Gibt an, dass alle anderen Prozeduren in sämtlichen Skripten auf die Property Get-Prozedur zugreifen können.
Default
Wird nur mit dem Schlüsselwort Public verwendet, um anzugeben, dass es sich bei der in der Property Get-Prozedur festgelegten Eigenschaft um die standardmäßige Eigenschaft für die Klasse handelt.
Private
Gibt an, dass auf die Property Get-Prozedur nur von Prozeduren in dem Class-Block zugegriffen werden kann, in dem sie deklariert wurde.
Name
Name der Property Get-Prozedur gemäß den Standardkonventionen für Namen von Variablen, mit der Ausnahme, dass der Name mit einer Property Let- oder Property Set-Prozedur im selben Class-Block übereinstimmen kann.
ArgListe
Auflistung von Variablen, die Argumente darstellen und an die Property Get-Prozedur weitergeleitet werden, wenn diese aufgerufen wird. Mehrere Argumente werden voneinander durch Kommata getrennt. Der Name der einzelnen Argumente in einer Property Get-Prozedur muss dem zugehörigen Argument in einer Property Let-Prozedur (sofern vorhanden) entsprechen.
Anweisungen
Eine beliebige Gruppe von Anweisungen, die innerhalb des Rumpfs einer Property Get-Prozedur auszuführen sind.
Set
Schlüsselwort, das beim Zuweisen eines Objekts als Rückgabewert einer Property Get-Prozedur verwendet wird.
Ausdruck
Rückgabewert der Property Get-Prozedur.

Hinweise

Auf Property Get-Prozeduren kann standardmäßig von allen anderen Prozeduren aus zugegriffen werden, wenn dies nicht explizit durch Public oder Private angegeben wird, das heißt, sie sind für alle anderen Prozeduren im Skript sichtbar. Der Wert lokaler Variablen in der Property Get-Prozedur wird zwischen Aufrufen der Prozedur nicht zwischengespeichert.

Sie können eine Property Get-Prozedur nicht innerhalb einer anderen Prozedur (z. B. Function oder Property Let) festlegen.

Die Exit Property-Anweisung führt zur sofortigen Beendigung einer Property Get-Prozedur. Die Programmausführung wird mit der Anweisung fortgeführt, die auf die Anweisung folgt, die die Property Get-Prozedur aufgerufen hat. In einer Property Get-Prozedur kann eine beliebige Anzahl von Exit Property-Anweisungen an beliebiger Stelle stehen.

Ähnlich wie eine Sub- bzw. Property Let- ist eine Property Get-Prozedur eine separate Prozedur, die Argumente übernehmen, eine Reihe von Anweisungen durchführen und die Werte ihrer Argumente ändern kann. Im Gegensatz zu einer Sub- und Property Let-Prozedur können Sie eine Property Get-Prozedur auf der rechten Seite eines Ausdrucks auf die gleiche Weise verwenden wie Function oder einen Eigenschaftennamen, wenn Sie den Wert einer Eigenschaft zurückgeben möchten.

Anforderungen

Version 5

Siehe auch

Class-Anweisung | Dim-Anweisung | Exit-Anweisung | Function-Anweisung | Private-Anweisung | Property Let-Anweisung | Property Set-Anweisung | Public-Anweisung | Set-Anweisung | Sub-Anweisung


Property Let-Anweisung

Deklariert in einem Class-Block den Namen, Argumente sowie den Code, die den Rumpf einer Property-Prozedur bilden, die den Wert einer Eigenschaft zuweist (festlegt).

[Public | Private] Property Let Name ([ArgListe,] Wert)
    [Anweisungen]
    [Exit Property]
    [Anweisungen]
End Property

Argumente

Public
Gibt an, dass auf die Property Let-Prozedur von allen anderen Prozeduren in allen Skripten zugegriffen werden kann.
Private
Gibt an, dass auf die Property Let-Prozedur nur von Prozeduren in dem Class-Block zugegriffen werden kann, in dem sie deklariert wurde.
Name
Name der Property Let-Prozedur gemäß den Standardkonventionen für Namen von Variablen, mit der Ausnahme, dass der Name mit einer Property Get- oder Property Set-Prozedur im selben Class-Block übereinstimmen kann.
ArgListe
Auflistung von Variablen, die Argumente darstellen und an die Property Let-Prozedur übergeben werden, wenn diese aufgerufen wird. Mehrere Argumente werden voneinander durch Kommata getrennt. Der Name der einzelnen Argumente in einer Property Let-Prozedur muss dem zugehörigen Argument in einer Property Get-Prozedur entsprechen. Darüber hinaus weist die Property Let-Prozedur stets ein Argument mehr als seine zugehörige Property Get-Prozedur auf. Das Argument ist der der Eigenschaft zugewiesene Wert.
Wert
Variable, die den einer Eigenschaft zuzuweisenden Wert enthält. Wird die Prozedur aufgerufen, steht dieses Argument auf der rechten Seite des aufrufenden Ausdrucks.
Anweisungen
Eine beliebige Gruppe von Anweisungen, die innerhalb des Rumpfs einer Property Let-Prozedur auszuführen sind.

Hinweise

Auf Property Let-Prozeduren kann standardmäßig von allen anderen Prozeduren aus zugegriffen werden, wenn dies nicht explizit durch Public oder Private angegeben wird, das heißt, sie sind für alle anderen Prozeduren im Skript sichtbar. Der Wert lokaler Variablen in einer Property Let-Prozedur wird zwischen Aufrufen der Prozedur nicht zwischengespeichert.

Sie können eine Property Let-Prozedur nicht innerhalb einer anderen Prozedur (z. B. Function oder Property Get) festlegen.

Die Exit Property-Anweisung führt zur sofortigen Beendigung einer Property Let-Prozedur. Die Programmausführung wird mit der Anweisung fortgeführt, die auf die Anweisung folgt, die die Property Let-Prozedur aufgerufen hat. In einer Property Let-Prozedur kann eine beliebige Anzahl von Exit Property-Anweisungen an beliebiger Stelle stehen.

Anmerkung Jede Property Let-Anweisung muss mindestens ein Argument für die festzulegende Prozedur festlegen. Dieses Argument (bzw. bei mehreren das letzte) enthält den eigentlichen Wert, der der Eigenschaft zugewiesen werden soll, wenn die von der Property Let-Anweisung festgelegte Prozedur aufgerufen wird. Dieses Argument wird in der vorhergehenden Syntax als Wert bezeichnet.

Ähnlich wie eine Function- bzw. Property Get- ist eine Property Let-Prozedur eine separate Prozedur, die Argumente übernehmen, eine Reihe von Anweisungen durchführen und die Werte ihrer Argumente ändern kann. Im Gegensatz zu einer Function- und Property Get-Prozedur, die beide einen Wert zurückgeben, können Sie eine Property Let-Prozedur nur auf der linken Seite eines Eigenschaftenzuweisungsausdrucks verwenden.

Anforderungen

Version 5

Siehe auch

Class-Anweisung | Dim-Anweisung | Exit-Anweisung | Function-Anweisung | Private-Anweisung | Property Get-Anweisung | Property Set-Anweisung | Public-Anweisung | Set-Anweisung | Sub-Anweisung


Property Set-Anweisung

Deklariert in einem Class-Block den Namen, Argumente sowie den Code, die den Rumpf einer Property-Prozedur bilden, die den Verweis auf ein Objekt festlegt.

[Public | Private] Property Set Name([ArgListe,] Verweis)
   [Anweisungen]
   [Exit Property]
   [Anweisungen]
End Property

Argumente

Public
Gibt an, dass alle anderen Prozeduren in sämtlichen Skripten auf die Property Set-Prozedur zugreifen können.
Private
Gibt an, dass von anderen Prozeduren auf die Property Set-Prozedur nur in dem Class-Block zugegriffen werden kann, in dem sie deklariert wurde.
Name
Name der Property Set-Prozedur gemäß den Standardkonventionen für Namen von Variablen, mit der Ausnahme, dass der Name mit einer Property Get- oder Property Let-Prozedur im selben Class-Block übereinstimmen kann.
ArgListe
Auflistung von Variablen, die Argumente darstellen und an die Property Set-Prozedur übergeben werden, wenn diese aufgerufen wird. Mehrere Argumente werden voneinander durch Kommata getrennt. Darüber hinaus weist die Property Set-Prozedur stets ein Argument mehr als seine zugehörige Property Get-Prozedur auf. Das Argument ist das der Eigenschaft zugewiesene Objekt.
Verweis
Variable, die den Objektverweis enthält, der auf der rechten Seite der Objektverweiszuweisung verwendet wird.
Anweisungen
Eine beliebige Gruppe von Anweisungen, die innerhalb des Rumpfs einer Property Set-Prozedur auszuführen sind.

Hinweise

Auf Property Set-Prozeduren kann standardmäßig von allen anderen Prozeduren aus zugegriffen werden, wenn dies nicht explizit durch Public oder Private angegeben wird, das heißt, sie sind für alle anderen Prozeduren im Skript sichtbar. Der Wert lokaler Variablen in einer Property Set-Prozedur wird zwischen Aufrufen der Prozedur nicht zwischengespeichert.

Sie können eine Property Set-Prozedur nicht innerhalb einer anderen Prozedur (z. B. Function oder Property Let) festlegen.

Die Exit Property-Anweisung führt zur sofortigen Beendigung einer Property Set-Prozedur. Die Programmausführung wird mit der Anweisung fortgeführt, die auf die Anweisung folgt, die die Property Set-Prozedur aufgerufen hat. In einer Property Set-Prozedur kann eine beliebige Anzahl von Exit Property-Anweisungen an beliebiger Stelle stehen.

Anmerkung Jede Property Set-Anweisung muss mindestens ein Argument für die festzulegende zugehörige Prozedur definieren. Dieses Argument (bzw. bei mehreren das letzte) enthält den eigentlichen Objektverweis für die Eigenschaft, wenn die von der Property Set-Anweisung festgelegte Prozedur aufgerufen wird. Dieses Argument wird in der vorhergehenden Syntax als Verweis bezeichnet.

Ähnlich wie eine Function- bzw. Property Get-Prozedur ist eine Property Set-Prozedur eine separate Prozedur, die Argumente übernehmen, eine Reihe von Anweisungen durchführen und die Werte ihrer Argumente ändern kann. Im Gegensatz zu einer Function- und Property Get-Prozedur, die beide einen Wert zurückgeben, können Sie eine Property Set-Prozedur nur auf der linken Seite einer Objektverweiszuweisung (Set-Anweisung) verwenden.

Anforderungen

Version 5

Siehe auch

Class-Anweisung | Dim-Anweisung | Exit-Anweisung | Function-Anweisung | Private-Anweisung | Property Get-Anweisung | Property Let-Anweisung | Public-Anweisung | Set-Anweisung | Sub-Anweisung


Public-Anweisung

Deklariert allgemeine Variablen und reserviert Speicherplatz für sie. Deklariert in einem Class-Block private Variablen.

Public VarName[([Dimensionen])][, VarName[([Dimensionen])]] . . .

Argumente

VarName
Name der Variablen gemäß den Standardkonventionen für Namen von Variablen.
Dimensionen
Dimensionen einer Arrayvariablen. Bis zu 60 Dimensionen gleichzeitig sind zulässig. Die folgende Syntax wird für das Argument Dimensionen verwendet:

Obergrenze [, Obergrenze] . . .

Die Untergrenze der Elementzahl ist immer Null.

Hinweise

Public-Variablen stehen allen Prozeduren in allen Skripten zur Verfügung.

Einer Variablen, die auf ein Objekt verweist, muss ein vorhandenes Objekt mit der Set-Anweisung zugeordnet werden, bevor sie verwendet werden kann. Bis zur eigentlichen Objektzuordnung wird die deklarierte Objektvariable mit Empty initialisiert.

Sie können die Public-Anweisung mit leeren Klammern auch zum Deklarieren von dynamischen Arrays einsetzen. Verwenden Sie dann anschließend die ReDim-Anweisung innerhalb einer Prozedur, um die Anzahl der Dimensionen und Elemente in diesem Array festzulegen. Wenn Sie versuchen, die Dimension einer Arrayvariablen, deren Größe explizit in einer Private-, Public- oder Dim-Anweisung angegeben war, neu zu deklarieren, tritt ein Fehler auf.

Der folgende Code veranschaulicht die Verwendung der Public-Anweisung:

Public MeineZahl   ' Public-Variant-Variable.
Public MeinArray(9)   ' Public-Arrayvariable.
   ' Mehrere Public-Deklarationen von Variant-Variablen.
Public MeineZahl, MeineVar, DeineZahl

Anforderungen

Version 1

Siehe auch

Dim-Anweisung | Private-Anweisung | ReDim-Anweisung | Set-Anweisung


Randomize-Anweisung

Initialisiert den Zufallszahlengenerator.

Randomize[Zahl]

Das Argument Zahl kann ein beliebiger gültiger numerischer Ausdruck sein.

Hinweise

Randomize verwendet Zahl als Startwert zum Initialisieren des Zufallszahlengenerators der Rnd-Funktion. Wenn Sie Zahl nicht angeben, wird der vom Systemzeitgeber zurückgegebene Wert als neuer Startwert verwendet.

Wird Randomize nicht verwendet, verwendet die Rnd-Funktion (ohne Argumente) beim ersten Aufruf dieselbe Zahl als Startwert. Danach verwendet sie die zuletzt erzeugte Zahl als Startwert.

Anmerkung Wenn Sie Folgen von Zufallszahlen wiederholen möchten, rufen Sie unmittelbar vor dem Aufruf von Randomize mit einem numerischen Argument die Rnd-Funktion mit einem negativen Argument auf. Durch Verwenden von Randomize mit demselben Wert für Zahl wird die vorherige Folge nicht wiederholt.

Der folgende Code veranschaulicht die Verwendung der Randomize-Anweisung.

Dim MeinWert, Antwort
Randomize   ' Initialisiert den Zufallszahlengenerator.
Do Until Antwort = vbNo
   MeinWert = Int((6 * Rnd) + 1)   ' Erzeugt eine Zufallszahl zwischen 1 und 6.
   MsgBox MeinWert
   Antwort = MsgBox ("Erneut würfeln? ", vbYesNo)
Loop

Anforderungen

Version 1

Rnd-Funktion | Timer-Funktion


ReDim-Anweisung

Deklariert dynamische Arrayvariablen und reserviert Speicherplatz auf Prozedurebene (neu).

ReDim [Preserve] VarName(Dimensionen) [, VarName(Dimensionen)] . . .

Argumente

Preserve
Die Daten in einem bestehenden Array bleiben erhalten, wenn die Größe der letzten Dimension geändert wird.
VarName
Name der Variablen gemäß den Standardkonventionen für Namen von Variablen.
Dimensionen
Dimensionen einer Arrayvariablen. Bis zu 60 Dimensionen gleichzeitig können deklariert werden. Die folgende Syntax wird für das Argument Dimensionen verwendet:

Obergrenze [, Obergrenze] . . .

Die Untergrenze der Elementzahl ist immer Null.

Hinweise

Die ReDim-Anweisung dient zum Festlegen oder Ändern der Größe eines dynamischen Arrays, das bereits formal mit einer Private, Public oder Dim-Anweisung und einem leeren Klammernpaar (ohne Indizes für die Dimensionen) deklariert wurde. Sie können die ReDim-Anweisung mehrmals verwenden, um die Anzahl der Elemente und Dimensionen in einem Array zu ändern.

Mit dem Schlüsselwort Preserve können Sie nur die Größe der letzten Arraydimension ändern, nicht aber die Anzahl der Dimensionen. Wenn das Array zum Beispiel nur eine Dimension hat, können Sie die Größe dieser Dimension ändern, weil es die letzte und einzige Dimension ist. Hat das Array jedoch mindestens zwei Dimensionen, können Sie lediglich die Größe der letzten Dimension ändern, wenn der Inhalt des Arrays erhalten bleiben soll.

Das folgende Beispiel veranschaulicht, wie Sie die letzte Dimension eines dynamischen Arrays vergrößern können, ohne bereits bestehende Daten im Array zu löschen.

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
Anmerkung Wenn Sie ein Array verkleinern, gehen die Daten in den entfernten Elementen verloren.

Bei der Initialisierung von Variablen wird eine numerische Variable mit 0 und eine Zeichenfolgevariable mit einer Zeichenfolge der Länge Null ("") initialisiert. Einer Variablen, die auf ein Objekt verweist, muss ein vorhandenes Objekt mit der Set-Anweisung zugeordnet werden, bevor sie verwendet werden kann. Solange sie keinem Objekt zugewiesen ist, hat die deklarierte Objektvariable den Sonderwert Nothing.

Anforderungen

Version 1

Dim-Anweisung | Set-Anweisung


Rem-Anweisung

Markiert erläuternde Kommentare in einem Programm.

Rem Kommentar

oder

' Kommentar

Das Argument Kommentar entspricht dem Text des einzufügenden Kommentars. Zwischen dem Schlüsselwort Rem und dem Argument Kommentar muss ein Leerzeichen stehen.

Hinweise

Wie in den Syntaxbeispielen gezeigt, können Sie ein Apostroph (') anstelle des Schlüsselwortes Rem verwenden. Das Schlüsselwort Rem im Anschluss an andere Anweisungen in einer Zeile muss durch einen Doppelpunkt von den anderen Anweisungen getrennt sein. Bei einem Apostroph ist der Doppelpunkt hinter anderen Anweisungen nicht erforderlich.

Der folgende Code veranschaulicht die Verwendung der Anweisung Rem.

Dim MeinKommentar1, MeinKommentar2
MeinKommentar1 = "Hallo" : Rem Kommentar nach einer Anweisung, getrennt durch einen Doppelpunkt.
MeinKommentar2 = "Und Tschüß" ' Dies ist auch ein Kommentar; es wird kein Doppelpunkt benötigt.
Rem Kommentar in einer Zeile ohne Code; es wird kein Doppelpunkt benötigt.

Anforderungen

Version 1


Select Case-Anweisung

Führt abhängig vom Wert eines Ausdrucks eine von mehreren Anweisungsgruppen aus.

Select Case Testausdruck
    [Case Ausdruckliste-n
        [Anweisungen-n]] . . .
    [Case Else Ausdruckliste-n
        [elseAnweisungen]]
End Select

Argumente

Testausdruck
Ein beliebiger numerischer Ausdruck oder Zeichenfolgenausdruck.
Ausdruckliste-n
Erforderlich, falls Case angegeben wird. Eine durch Kommata getrennte Liste mit einem oder mehreren Ausdrücken.
Anweisungen-n
Eine oder mehrere Anweisungen, die ausgeführt werden, wenn Testausdruck mit einem der Ausdrücke in Ausdruckliste-n übereinstimmt.
elseAnweisungen
Eine oder mehrere Anweisungen, die ausgeführt werden, wenn Testausdruck mit keinem der Ausdrücke in den Case-Klauseln übereinstimmt.

Hinweise

Wenn Testausdruck mit einem der Ausdrücke in einer Case-Ausdruckliste übereinstimmt, werden die Anweisungen dieser Case-Klausel bis zur nächsten Case-Klausel (oder bei der letzten Case-Klausel bis zu End Select) ausgeführt. Anschließend setzt das Programm die Ausführung mit der Anweisung im Anschluss an End Select fort. Wenn Testausdruck mit einem der Ausdrücke in der Ausdruckliste mehrerer Case-Klauseln übereinstimmt, werden nur die Anweisungen nach der ersten Übereinstimmung ausgeführt.

Die Case Else-Klausel wird verwendet, um die Anweisungen in elseAnweisungen auszuführen, wenn Testausdruck mit keinem Ausdruck in der Ausdruckliste keiner der Case-Klauseln übereinstimmt. Die Case Else-Anweisung ist optional, sollte aber in keinem Select Case-Block fehlen, damit unvorhergesehene Werte von Testausdruck verarbeitet werden können. Wenn Sie keine Case Else-Anweisung angeben und keine Case-Ausdruckliste mit Testausdruck übereinstimmt, setzt das Programm die Ausführung mit der Anweisung im Anschluss an End Select fort.

Select Case-Anweisungen können in sich geschachtelt sein. Jede Select Case-Anweisung muss eine zugehörige End Select-Anweisung besitzen.

Der folgende Code veranschaulicht die Verwendung der Select Case-Anweisung.

Dim Farbe, MeineVar
Sub HintergrundAendern(Farbe)
   MeineVar = lcase(Farbe)
   Select Case MeineVar
      Case "rot"    document.bgColor = "red"
      Case "grün"   document.bgColor = "green"
      Case "blau"   document.bgColor = "blue"
      Case Else     MsgBox "Andere Farbe aussuchen"
   End Select
End Sub

Anforderungen

Version 1

If...Then...Else-Anweisung


Set-Anweisung

Weist einen Objektverweis einer Variablen oder einer Eigenschaft zu oder ordnet einen Prozedurverweis einem Ereignis zu.

Set ObjektVar = {Objektausdruck | New Klassenname | Nothing}

-oder-

Set Objekt.Ereignis = GetRef(ProzName)

Argumente

ObjektVar
Erforderlich. Name der Variablen oder Eigenschaft; entspricht standardmäßigen Benennungskonventionen.
Objektausdruck
Optional. Ausdruck, der aus einem Objektnamen, einer weiteren deklarierten Variable desselben Objekttyps oder einer Funktion bzw. Methode besteht, die ein Objekt desselben Objekttyps zurückgibt.
New
Schlüsselwort, das zum Erstellen einer neuen Instanz einer Klasse verwendet wird. Enthält ObjektVar einen Verweis auf ein Objekt, wird dieser Verweis freigegeben, wenn der neue zugewiesen wird. Das Schlüsselwort New kann nur für das Erstellen einer Instanz einer Klasse verwendet werden.
Klassenname
Optional. Name der zu erstellenden Klasse. Eine Klasse und ihre Elemente werden mithilfe der Class-Anweisung festgelegt.
Nothing
Optional. Hebt die Zuordnung von ObjektVar zu einem bestimmten Objekt oder einer bestimmten Klasse auf. Wird ObjektVar Nothing zugewiesen, werden alle System- und Speicherressourcen freigegeben, die zum Objekt gehören, auf das zuvor verwiesen wurde, wenn keine anderen Variablen darauf verweisen.
Objekt
Erforderlich. Name des Objekts, dem Ereignis zugeordnet ist.
Ereignis
Erforderlich. Name des Ereignisses, an das die Funktion gebunden werden soll.
ProzName
Erforderlich. Zeichenfolge, die den Namen der Sub- oder Function-Prozedur enthält, die Ereignis zugeordnet wird.

Hinweise

ObjektVar ist nur gültig, wenn der zugehörige Objekttyp mit dem Typ des zugewiesenen Objekts identisch ist.

Die Anweisungen Dim, Private, Public oder ReDim deklarieren nur eine Variable, die sich auf ein Objekt bezieht. Es wird auf kein tatsächliches Objekt verwiesen, solange Sie nicht die Set-Anweisung zur Zuweisung eines bestimmten Objekts verwenden.

Wenn Sie mit Set einer Variablen einen Objektverweis zuweisen, wird keine Kopie des Objekts erzeugt. Vielmehr wird ein Verweis auf das Objekt erstellt. Mehrere Objektvariablen können gleichzeitig auf dasselbe Objekt verweisen. Da alle diese Variablen auf ein Objekt verweisen (und nicht auf eine Kopie davon), wirken sich Änderungen an dem Objekt immer auf alle Variablen mit einem Verweis auf das Objekt aus.

function FreienSpeicherAnzeigen(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk " & UCase(LWPfad) & " - "
   s = s & d.VolumeName  & "<BR>"
   s = s & "Free Space: " & FormatNumber(l.FreeSpace/1024, 0)
   s = s & " KB"
   FreienLaufwerkspeicherAnzeigen = s
End Function

Das Schlüsselwort New ermöglicht Ihnen gleichzeitig das Erstellen einer Klasseninstanz und ihre Zuweisung zu einer Objektverweisvariablen. Die Variable, die der Klasseninstanz zugewiesen wird, muss bereits mit der Dim- oder einer äquivalenten Anweisung deklariert worden sein.

Weitere Informationen zur Verwendung von Set, um eine Prozedur einem Ereignis zuzuordnen, finden Sie in der Dokumentation zur GetRef-Funktion.

Anforderungen

Version 1

Siehe auch

= Operator | Dim-Anweisung | GetRef-Funktion | ReDim-Anweisung


Sub-Anweisung

Deklariert Namen, Argumente und Code für den Rumpf einer Sub-Prozedur.

[Public [Default] | Private] Sub Name [(ArgListe)]
   [Anweisungen]
   [Exit Sub]
   [Anweisungen]
End Sub

Argumente

Public
Die Sub-Prozedur steht allen anderen Prozeduren in allen Skripten zur Verfügung.
Default
Wird nur mit einem Schlüsselwort Public in einem Class-Block verwendet, um anzugeben, dass die Sub-Prozedur die Standardmethode für die Klasse ist. Ist mehr als eine Default-Prozedur in einer Klasse angegeben, tritt ein Fehler auf.
Private
Die Sub-Prozedur steht anderen Prozeduren nur in dem Skript, in dem sie deklariert wurde, zur Verfügung.
Name
Name der Sub-Prozedur gemäß den Standardkonventionen für Namen von Variablen.
ArgListe
Variablenliste mit den Argumenten, die an die Sub-Prozedur beim Aufruf übergeben werden. Mehrere Variablen werden durch Kommata voneinander getrennt.
Anweisungen
Eine beliebige Gruppe auszuführender Anweisungen im Rumpf der Sub-Prozedur.

Das Argument ArgListe verwendet die folgende Syntax und die folgenden Teile:

[ByVal | ByRef] VarName[( )]

Argumente

ByVal
Gibt an, dass das Argument als Wert übergeben wird.
ByRef
Gibt an, dass das Argument als Verweis übergeben wird.
VarName
Name der Variablen, die das Argument darstellt, gemäß den Standardkonventionen für Namen von Variablen.

Hinweise

Auf Sub-Prozeduren kann standardmäßig von allen anderen Prozeduren aus zugegriffen werden, wenn dies nicht explizit durch Public oder Private angegeben wird, das heißt, sie sind für alle anderen Prozeduren im Skript sichtbar. Der Wert lokaler Variablen in einer Sub-Prozedur wird zwischen Aufrufen der Prozedur nicht zwischengespeichert.

Sie können eine Sub-Prozedur nicht innerhalb einer anderen Prozedur festlegen (z. B. Function oder Property Get).

Die Exit Sub-Anweisung führt zur unmittelbaren Beendigung der Sub-Prozedur. Die Programmausführung wird mit der Anweisung fortgesetzt, die auf die Anweisung folgt, welche die Sub-Prozedur aufgerufen hat. In einer Sub-Prozedur kann eine beliebige Anzahl von Exit Sub-Anweisungen an beliebiger Stelle vorkommen.

Wie bei einer Function-Prozedur handelt es sich bei einer Sub-Prozedur um eine eigenständige Prozedur, die Argumente erhalten, eine Reihe von Anweisungen durchführen und die Werte der übergebenen Argumente ändern kann. Im Gegensatz zu einer Function-Prozedur, die einen Wert zurückgibt, kann eine Sub-Prozedur jedoch nicht in einem Ausdruck verwendet werden.

Der Aufruf einer Sub-Prozedur erfolgt durch Angabe des Prozedurnamens, gefolgt von der Argumentliste. In der Beschreibung der Call-Anweisung finden Sie genauere Informationen zum Aufrufen von Sub-Prozeduren.

Vorsicht Sub-Prozeduren können rekursiv sein; das bedeutet, dass sie sich selbst aufrufen können, um eine bestimmte Aufgabe durchzuführen. Rekursionen können jedoch zu Stapelüberlauffehlern führen.

Es gibt zwei Arten von Variablen, die in Sub-Prozeduren verwendet werden: solche, die innerhalb der Prozedur explizit deklariert werden, und andere. Variablen, die explizit in einer Prozedur deklariert werden (mit Dim oder gleichwertiger Anweisung) sind immer prozedurlokal. Variablen, die verwendet, aber nicht explizit innerhalb einer Prozedur deklariert werden, sind ebenfalls lokal, es sei denn, sie sind auf einer höheren Ebene außerhalb der Prozedur explizit deklariert worden.

Vorsicht Eine Prozedur kann eine nicht explizit in der Prozedur deklarierte Variable zwar verwenden, jedoch können Namenskonflikte auftreten, falls ein anderes auf Skriptebene definiertes Element denselben Namen hat. Verwendet Ihre Prozedur eine nicht deklarierte Variable mit einem Namen, der dem Namen einer anderen Prozedur, Konstanten oder Variablen entspricht, wird davon ausgegangen, dass Ihre Prozedur auf diesen Skriptebenennamen verweist. Verwenden Sie eine Option Explicit-Anweisung, um solche Konflikte zu vermeiden und eine explizite Deklaration von Variablen zu erzwingen.

Anforderungen

Version 1

Siehe auch

Call-Anweisung | Dim-Anweisung | Exit-Anweisung | Function-Anweisung


While...Wend-Anweisung

Führt eine Reihe von Anweisungen aus, solange eine gegebene Bedingung True ist.

While Bedingung
   Version [Anweisungen]
Wend

Argumente

Bedingung
Numerischer Ausdruck oder Zeichenfolgenausdruck, der True oder False ergibt. Hat Bedingung den Wert Null, wird Bedingung als False interpretiert.
Anweisungen
Eine oder mehrere Anweisungen, die ausgeführt werden, solange Bedingung den Wert True hat.

Hinweise

Wenn Bedingung den Wert True hat, werden alle Anweisungen bis zur Wend-Anweisung ausgeführt. Das Programm kehrt dann zur While-Anweisung zurück und überprüft, ob Bedingung weiterhin True ergibt. In diesem Fall wird der Vorgang wiederholt. Hat Bedingung nicht den Wert True, setzt das Programm die Ausführung mit der Anweisung fort, die auf die Wend-Anweisung folgt.

While...Wend-Schleifen können beliebig ineinander geschachtelt werden. Eine Wend-Anweisung bezieht sich immer auf die zuletzt ausgeführte While-Anweisung derselben Ebene.

Hinweis Die Do...Loop-Anweisung stellt eine strukturiertere und flexiblere Möglichkeit zur Implementierung von Schleifen dar.

Der folgende Code veranschaulicht die Verwendung der While...Wend-Anweisung:

Dim Zaehler
Zaehler = 0   ' Initialisiert die Variable.
While Zaehler < 20   ' Testet den Zählerwert.
   Zaehler = Zaehler + 1   ' Inkrementiert den Zähler.
   Alert Zaehler
Wend   ' Beendet die While-Schleife, wenn der Zähler > 19 ist.

Anforderungen

Version 1

Do...Loop-Anweisung


With-Anweisung (VBScript)

Visual Basic Scripting Edition

With-Anweisung

Führt eine Reihe von Anweisungen auf einem einzelnen Objekt aus.

With Objekt
    Anweisungen
End With

Argumente

Objekt
Erforderlich. Name eines Objekts oder einer Funktion, die ein Objekt zurückgibt.
Anweisungen
Erforderlich. Eine oder mehrere Anweisungen, die auf Objekt ausgeführt werden sollen.

Hinweise

Die With-Anweisung ermöglicht Ihnen, eine Reihe von Anweisungen auf ein bestimmtes Objekt auszuführen, ohne dabei den Namen des Objekts erneut zu überprüfen. Wenn Sie z. B. mehrere unterschiedliche Eigenschaften eines einzigen Objekts ändern möchten, setzen Sie die Eigenschaftenzuweisungsanweisungen in die With-Steuerstruktur, sodass auf das Objekt nur einmal und nicht über die einzelnen Eigenschaftenzuweisungen verwiesen wird. Das folgende Beispiel veranschaulicht die Verwendung der With-Anweisung, um mehreren Eigenschaften eines Objekts Werte zuzuweisen.

With MeineBezeichnung
   .Hoehe = 2000
   .Breite = 2000
   .Titel = "Meine Bezeichnung"
End With

Zwar ist die Bearbeitung von Eigenschaften ein wichtiger Aspekt bei der With-Funktionalität, jedoch nicht die einzige Verwendungsmöglichkeit. Innerhalb eines With-Blockes ist jeder gültige Code zulässig.

Hinweis Nachdem das Programm in einen With-Block eingetreten ist, kann Objekt nicht mehr geändert werden. Sie müssen daher mehrere With-Anweisungen verwenden, um mehrere unterschiedliche Objekte zu bearbeiten.

Sie können With-Anweisungen schachteln, indem Sie einen With-Block in einen anderen setzen. Da jedoch Elemente von äußeren With-Blöcken innerhalb innerer With-Blöcke maskiert werden, müssen Sie in einem inneren With-Block für jedes Objektelement in einem äußeren With-Block einen vollständigen Objektverweis angeben.

Wichtig Springen Sie nicht in oder aus With-Blöcken. Werden Anweisungen in einem With-Block ausgeführt, die With- oder End With-Anweisung jedoch nicht, kann dies zu unvorhersagbarem Verhalten führen.

Anforderungen

Version 1

Set-Anweisung


Dictionary-Objekt

Ein Objekt, das Element/Schlüssel-Paare speichert.

Hinweise

Ein Dictionary-Objekt ist vergleichbar mit einem assoziativen Array in PERL. Einträge können aus beliebigen Daten bestehen und werden in einem Array gespeichert. Jeder Eintrag wird mit einem eindeutigen Schlüssel verbunden. Der Schlüssel wird zum Auslesen eines einzelnen Eintrags verwendet. Gewöhnlich handelt es sich bei dem Schlüssel um einen ganzzahligen Wert oder eine Zeichenfolge, aber jeder Datentyp (außer Array) ist ebenfalls möglich.

Der folgende Code veranschaulicht die Verwendung eines Dictionary-Objekts:

[JScript]
var y = new ActiveXObject("Scripting.Dictionary");
y.add ("a", "test");
if (y.Exists("a"))
   document.write("true");
...
[VBScript]
Dim d   ' Eine Variable erstellen.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
d.Add "b", "Belgrad"
d.Add "c", "Chicago"
...

Methoden

Add-Methode (Dictionary) | Exists-Methode | Items-Methode | Keys-Methode | Remove-Methode | RemoveAll-Methode

Eigenschaften

Count-Eigenschaft | Item-Eigenschaft | Key-Eigenschaft

FileSystemObject-Objekt | TextStream-Eigenschaft


Count-Eigenschaft

Gibt die Anzahl der Elemente in einer Auflistung oder in einem Dictionary-Objekt zurück. Schreibgeschützt.

Objekt.Count

Objekt ist stets der Name eines der Einträge in der Liste "Betrifft".

Hinweise

Der folgende Code veranschaulicht die Verwendung der Count-Eigenschaft:

[JScript]
function CountDemo()
{
   var a, d, i, s;                  // Einige Variablen erstellen.
   d = new ActiveXObject("Scripting.Dictionary");
   d.Add ("a", "Athen");          // Einige Schlüssel und Elemente hinzufügen.
   d.Add ("b", "Belgrad");
   d.Add ("c", "Chicago");
   a = (new VBArray(d.Keys()));    // Die Schlüssel kopieren.
   s = "";
   for (i = 0; i < d.Count; i++)   // Das Dictionary durchlaufen.
   {
      s += a.getItem(i) + " - " + d(a.getItem(i)) + "<br>";
   }
   return(s);                       // Das Ergebnis zurückgeben.
}
[VBScript]
Function ZeigeKeys
   Dim a, d, i, s   ' Einige Variablen erstellen.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
   d.Add "b", "Belgrad"
   d.Add "c", "Chicago"
   a = d.Keys   ' Die Schlüssel holen.
   For i = 0 To d.Count -1 ' Das Array durchlaufen.
      s = s & a(i) & "<BR>" ' Rückgabezeichenfolge erstellen.
   Next
   ZeigeKeys = s
End Function

Siehe auch

CompareMode-Eigenschaft | Item-Eigenschaft | Key-Eigenschaft

Betrifft: Dictionary-Objekt | Drives-Auflistung | Files-Auflistung | Folders-Auflistung


Item-Eigenschaft (FileSystemObject)

Scripting Runtime Library

Item-Eigenschaft

Setzt einen Eintrag für einen angegebenen Schlüssel in einem Dictionary-Objekt oder gibt diesen zurück. Bei Auflistungen wird ein auf dem angegebenen Schlüssel basierender Eintrag zurückgegeben. Lesen/Schreiben.

Objekt.Item(Schlüssel)[ = NeuerEintrag]

Argumente

Objekt
Erforderlich. Stets der Name einer Auflistung oder eines Dictionary-Objekts.
Schlüssel
Erforderlich. Mit dem abzurufenden oder hinzuzufügenden Eintrag verbundener Schlüssel.
NeuerEintrag
Optional. Wird nur für Dictionary-Objekte verwendet und findet bei Auflistungen keine Anwendung. Wenn angegeben, ist NeuerEintrag der neue Wert, der dem angegebenen Schlüssel zugewiesen wird.

Hinweise

Wird der Schlüssel beim Ändern von Eintrag nicht gefunden, so wird ein neuer Schlüssel mit dem angegebenen Wert von NeuerEintrag erstellt. Wird der Schlüssel beim Versuch, einen bestehenden Eintrag zurückzugeben, nicht gefunden, so wird ein neuer Schlüssel erstellt, und der entsprechende Eintrag bleibt leer.

Das folgende Beispiel veranschaulicht die Verwendung der Item-Eigenschaft:

[JScript]
function DicTest(schluesselwort)
{
   var a, d;
   d = new ActiveXObject("Scripting.Dictionary");
   d.Add("a", "Athen");
   d.Add("b", "Belgrad");
   d.Add("c", "Chicago");
   a = d.Item(schluesselwort);
   return(a);
}
[VBScript]
Function ItemDemo
   Dim d   ' Einige Variablen erstellen.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
   d.Add "b", "Belgrad"
   d.Add "c", "Chicago"
   ItemDemo = d.Item("c")   ' Den Eintrag holen.
End Function

Siehe auch

CompareMode-Eigenschaft | Count-Eigenschaft | Key-Eigenschaft

Betrifft: Dictionary-Objekt | Drives-Auflistung | Files-Auflistung | Folders-Auflistung


Key-Eigenschaft

Setzt einen Schlüssel in einem Dictionary-Objekt.

Objekt.Key(Schlüssel) = NeuerSchlüssel

Argumente

Objekt
Erforderlich. Stets der Name eines Dictionary-Objekts.
Schlüssel
Erforderlich. Zu ändernder Schlüssel-Wert.
NeuerSchlüssel
Erforderlich. Neuer Wert, der den angegebenen Schlüssel ersetzen soll.

Hinweise

Falls Schlüssel beim Ändern eines Schlüssels nicht gefunden wird, wird ein neuer Schlüssel erstellt. Der dazugehörige Eintrag bleibt dann leer.

Der folgende Code veranschaulicht die Verwendung der Key-Eigenschaft:

[JScript]
var d;
d = new ActiveXObject("Scripting.Dictionary");

function SachenHinzufuegen()
{
   var a;
   d.Add("a", "Athen");
   d.Add("b", "Belgrad");
   d.Add("c", "Chicago");
}

function SchluesselAendern(alterSchluessel, neuerSchluessel)
{
   var s;
   d.Key(alterSchluessel) = neuerSchluessel;
   s = "Schlüssel " + alterSchluessel + " geändert nach " + neuerSchluessel;
   return(s);
}
[VBScript]
Function DicDemo
   Dim d   ' Einige Variablen erstellen.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
   d.Add "b", "Belgrad"
   d.Add "c", "Chicago"
   d.Key("c") = "d"   ' Schlüssel für "c" auf "d" festlegen.
   DicDemo = d.Item("d")   ' Zugehöriges Element zurückgeben.
End Function

Siehe auch

CompareMode-Eigenschaft | Count-Eigenschaft | Item-Eigenschaft

Betrifft: Dictionary-Objekt


Add-Methode (Dictionary)

Fügt ein neues Element/Schlüssel-Paar zu einem Dictionary-Objekt hinzu.

Objekt.Add (Schlüssel, Element)

Argumente

Objekt
Erforderlich. Stets der Name des Dictionary-Objekts.
Schlüssel
Erforderlich. Der Schlüssel für das hinzuzufügende Element.
Element
Erforderlich. Das zum hinzuzufügenden Schlüssel gehörende Element.

Hinweise

Existiert der Schlüssel bereits, tritt ein Fehler auf.

Das folgende Beispiel veranschaulicht die Verwendung der Add-Methode.

[JScript]
var d;
d = new ActiveXObject("Scripting.Dictionary");
d.Add("a", "Athen");
d.Add("b", "Belgrad");
d.Add("c", "Chicago");
[VBScript]
Dim d   ' Eine Variable erstellen.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
d.Add "b", "Belgrad"
d.Add "c", "Chicago"

Siehe auch

Add-Methode (Folders) | Exists-Methode | Items-Methode | Keys-Methode | Remove-Methode | RemoveAll-Methode

Betrifft: Dictionary-Objekt


Exists-Methode (FileSystemObject)

Scripting Runtime Library

Exists-Methode

Gibt true zurück, wenn ein angegebener Schlüssel in einem Dictionary-Objekt vorhanden ist. Gibt false zurück, wenn dem nicht so ist.

Objekt.Exists(Schlüssel)

Argumente

Objekt
Erforderlich. Stets der Name des Dictionary-Objekts.
Schlüssel
Erforderlich. Wert des Schlüssels, nach dem im Dictionary-Objekt gesucht werden soll.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der Exists-Methode.

[JScript]
function SchluesselExistiert(k)
{
   var fso, s = "";
   d = new ActiveXObject("Scripting.Dictionary");
   d.Add("a", "Athen");
   d.Add("b", "Belgrad");
   d.Add("c", "Chicago");
   if (d.Exists(k))
      s += "Angegebener Schlüssel ist vorhanden.";
   else
      s += "Angegebener Schlüssel existiert nicht.";
   return(s);
}
[VBScript]
Function SchluesselExistiertDemo
   Dim d, msg   ' Einige Variablen erstellen.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
   d.Add "b", "Belgrad"
   d.Add "c", "Chicago"
   If d.Exists("c") Then
      msg = "Angegebener Schlüssel ist vorhanden."
   Else
      msg = "Angegebener Schlüssel existiert nicht."
   End If
   SchluesselExistiertDemo = msg
End Function

Siehe auch

Add-Methode (Dictionary) | Items-Methode | Keys-Methode | Remove-Methode | RemoveAll-Methode

Betrifft: Dictionary-Objekt


Items-Methode

Gibt ein Array zurück, das alle Elemente eines Dictionary-Objekts enthält.

Objekt.Items( )

Objekt ist stets der Name eines Dictionary-Objekts.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Items-Methode:

[JScript]
function ItemsDemo()
{
   var a, d, i, s;                   // Einige Variablen erstellen.
   d = new ActiveXObject("Scripting.Dictionary");
   d.Add ("a", "Athen");              // Einige Schlüssel und Elemente hinzufügen
   d.Add ("b", "Belgrad");
   d.Add ("c", "Chicago");
   a = (new VBArray(d.Items())).toArray();   // Die Einträge holen.
   s = "";
   for (i in a)                   // Das Dictionary durchlaufen.
   {
      s += a[i] + "<br>";
   }
   return(s);                      // Das Ergebnis zurückgeben.
}
[VBScript]
Function DicDemo
   Dim a, d, i, s   ' Einige Variablen erstellen.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
   d.Add "b", "Belgrad"
   d.Add "c", "Chicago"
   a = d.Items   ' Die Einträge holen.
   For i = 0 To d.Count -1 ' Das Array durchlaufen.
      s = s & a(i) & "<BR>" ' Rückgabezeichenfolge erstellen.
   Next
   DicDemo = s
End Function

Siehe auch

Add-Methode (Dictionary) | Exists-Methode | Keys-Methode | Remove-Methode | RemoveAll-Methode

Betrifft: Dictionary-Objekt


Keys-Methode

Gibt ein Array mit allen Schlüsseln in einem Dictionary-Objekt zurück.

Objekt.Keys( )

Objekt ist stets der Name eines Dictionary-Objekts.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Keys-Methode:

[JScript]
function KeysDemo()
{
   var a, d, i, s;                   // Einige Variablen erstellen.
   d = new ActiveXObject("Scripting.Dictionary");
   d.Add ("a", "Athen");              // Einige Schlüssel und Elemente hinzufügen
   d.Add ("b", "Belgrad");
   d.Add ("c", "Chicago");
   a = (new VBArray(d.Keys())).toArray();   // Die Schlüssel holen.
   s = "";
   for (i in a)                   // Das Dictionary durchlaufen.
   {
      s += a[i] + " - " + d(a[i]) + "<br>";
   }
   return(s);                      // Das Ergebnis zurückgeben.
}
[VBScript]
Function DicDemo
   Dim a, d, i   ' Einige Variablen erstellen.
   Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
   d.Add "b", "Belgrad"
   d.Add "c", "Chicago"
   a = d.Keys   ' Die Schlüssel holen.
   For i = 0 To d.Count -1 ' Das Array durchlaufen.
      s = s & a(i) & "<BR>" ' Die Ergebnisse zurückgeben.
   Next
   DicDemo = s
End Function

Siehe auch

Add-Methode (Dictionary) | Exists-Methode | Items-Methode | Remove-Methode | RemoveAll-Methode

Betrifft: Dictionary-Objekt


Remove-Methode (FileSystemObject)

Scripting Runtime Library

Remove-Methode

Entfernt ein Element/Schlüssel-Paar aus einem Dictionary-Objekt.

Objekt.Remove(Schlüssel)

Argumente

Objekt
Erforderlich. Stets der Name eines Dictionary-Objekts.
Schlüssel
Erforderlich. Schlüssel des Element/Schlüssel-Paares, das aus dem Dictionary-Objekt entfernt werden soll.

Hinweise

Existiert das angegebene Element/Schlüssel-Paar nicht, so tritt ein Fehler auf.

Der folgende Code veranschaulicht die Verwendung der Remove-Methode:

[JScript]
var a, d, i, s;               // Einige Variablen erstellen.
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athen");          // Einige Schlüssel und Elemente hinzufügen.
d.Add ("b", "Belgrad");
d.Add ("c", "Chicago");
...
d.Remove("b");               // Das zweite Paar entfernen.
[VBScript]
Dim a, d   ' Einige Variablen erstellen.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
d.Add "b", "Belgrad"
d.Add "c", "Chicago"
...
d.Remove("b")   ' Das zweite Paar entfernen.

Siehe auch

Add-Methode (Dictionary) | Exists-Methode | Items-Methode | Keys-Methode | RemoveAll-Methode

Betrifft: Dictionary-Objekt


RemoveAll-Methode

Die RemoveAll-Methode entfernt alle Element/Schlüssel-Paare aus einem Dictionary-Objekt.

Objekt.RemoveAll( )

Objekt ist stets der Name eines Dictionary-Objekts.

Hinweise

Der folgende Code veranschaulicht die Verwendung der RemoveAll-Methode:

[JScript]
var a, d, i;              // Einige Variablen erstellen.
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athen");     // Einige Schlüssel und Elemente hinzufügen.
d.Add ("b", "Belgrad");
d.Add ("c", "Chicago");
...
d.RemoveAll( );       // Das Dictionary-Objekt leeren.
[VBScript]
Dim a, d, i   ' Einige Variablen erstellen.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
d.Add "b", "Belgrad"
d.Add "c", "Chicago"
...
a = d.RemoveAll   ' Das Dictionary-Objekt leeren.

Siehe auch

Add-Methode (Dictionary) | Exists-Methode | Items-Methode | Keys-Methode | Remove-Methode

Betrifft: Dictionary-Objekt


FileSystemObject

In diesem Abschnitt

Scripting-Laufzeitreferenz
Liste von Elementen, aus denen die Scripting-Laufzeitreferenz besteht.
FileSystemObject-Grundlagen
Ein Leitfaden der Grundlagen des FileSystemObject-Objekts.


FileSystemObject-Grundlagen

Beim Schreiben von Skripten für Active Server Pages, Windows Script Host oder andere Anwendungen, bei denen Scripting verwendet werden kann, müssen oft Ordner (Verzeichnisse) und Dateien auf dem Webserver hinzugefügt, verschoben, geändert, erstellt oder gelöscht werden. Darüber hinaus kann es auch notwendig sein, über Informationen zu sowie Möglichkeiten zum Bearbeiten von Laufwerken zu verfügen, die im Webserver eingebunden sind.

Scripting ermöglicht Ihnen unter Verwendung des in den nachstehenden Abschnitten beschriebenen FileSystemObject-Objektmodells (FSO) das Arbeiten mit Laufwerken, Ordnern und Dateien:

Das FileSystemObject-Objektmodell

Das FileSystemObject-Objektmodell ermöglicht Ihnen die Verwendung der vertrauten objekt.methode-Syntax mit einer umfangreichen Menge von Eigenschaften, Methoden und Ereignissen, um Ordner sowie Dateien verarbeiten zu können.

FileSystemObject-Objekte

Eine Liste der Objekte und Auflistungen im FileSystemObject-Objektmodell.

Programmieren des FileSystemObject-Objekts

Eine Beschreibung der Programmierung mit dem FileSystemObject-Objekt.

Arbeiten mit Laufwerken und Ordnern

Eine Beschreibung der Verwendung des FileSystemObject-Objekts zum Kopieren und Verschieben von Ordnern sowie zum Abrufen von Informationen über Laufwerke und Ordner.

Arbeiten mit Dateien

Eine Beschreibung der Verwendung des FileSystemObject-Objekts zum Bearbeiten von Dateien.

FileSystemObject-Beispielcode

Ein reales Beispiel, das der Veranschaulichung zahlreicher im FileSystemObject-Objektmodell verfügbarer Features dient.


Das FileSystemObject-Objektmodell

Das FileSystemObject-Objektmodell (FSO) ermöglicht Ihnen die Verwendung der vertrauten objekt.methode-Syntax mit einer umfangreichen Menge von Eigenschaften, Methoden und Ereignissen, um Ordner sowie Dateien verarbeiten zu können.

Verwenden Sie dieses objektbasierte Werkzeug mit:

  • HTML zum Erstellen von Webseiten
  • Windows Script Host zum Erstellen von Stapelverarbeitungsdateien für Microsoft Windows
  • Script Control zum Bereitstellen von Scriptingfunktionalität für in anderen Sprachen entwickelte Anwendungen

Da bei der clientseitigen Verwendung von FSO schwerwiegende Sicherheitslücken bei möglichen unbefugten Zugriffen auf das lokale Dateisystem des Clients entstehen können, wird in dieser Dokumentation davon ausgegangen, dass die Verwendung des FSO-Objektmodells dem Erstellen von Skripten dient, die von serverseitigen Internetwebseiten ausgeführt werden. Da die Serverseite verwendet wird, kann aufgrund der Sicherheitseinstellungen von Internet Explorer keine clientseitige Verwendung des FileSystemObject-Objekts erfolgen. Durch Deaktivierung dieser Standardeinstellungen besteht die Möglichkeit, unbefugten Zugriff auf das Dateisystem eines lokalen Computers zu gewähren. Dies kann zur vollständigen Zerstörung der Dateisystemintegrität und Datenverlusten führen oder weitaus schlimmere Folgen haben.

Das FSO-Objektmodell ermöglicht serverseitigen Anwendungen das Erstellen, Ändern, Verschieben und Löschen von Ordnern bzw. das Überprüfen, ob und wo bestimmte Ordner vorhanden sind. Darüber hinaus können Sie Informationen zu Ordnern suchen, wie beispielsweise ihren Namen oder ihr Erstellungs- bzw. Änderungsdatum.

Das FSO-Objektmodell erleichtert zudem die Verarbeitung von Dateien. Bei der Verarbeitung von Dateien ist das oberste Ziel, Daten in einem kapazitäts- und ressourceneffizienten Format zu speichern, auf das problemlos zugegriffen werden kann. Sie müssen in der Lage sein, Dateien zu erstellen, Daten einzufügen bzw. zu ändern und auszugeben (lesen). Da das Speichern von Daten in Datenbanken, wie zum Beispiel in Access oder SQL Server, einen beträchtlichen Verwaltungsaufwand für Ihre Anwendung mit sich bringt, stellen Binär- oder Textdateien die wohl effizienteste Lösung dar. Möglicherweise haben Sie diesen Verwaltungsaufwand aber auch nicht, oder die Anforderungen an den Datenzugriff erfordern nicht den Einsatz sämtlicher integrierter Funktionsmerkmale einer komplexen Datenbankanwendung.

  • Das in der Scripting-Typbibliothek (Scrrun.dll) integrierte FSO-Objektmodell unterstützt das Erstellen und Bearbeiten von Textdateien mithilfe des TextStream-Objekts. Das Erstellen und Bearbeiten von Binärdateien wird derzeit zwar noch nicht unterstützt, jedoch ist dies für zukünftige Entwicklungen geplant.


FileSystemObject-Objekte

Das FileSystemObject-Objektmodell (FSO) enthält die folgenden Objekte und Auflistungen.

Objekt/Auflistung | Beschreibung
FileSystemObject | Hauptobjekt. Enthält Methoden und Eigenschaften sowohl zum Erstellen, Löschen sowie Abrufen von Informationen zu als auch allgemein zum Ändern von Laufwerken, Ordnern und Dateien. Zahlreiche der mit diesem Objekt verknüpften Methoden entsprechen denen in anderen FSO-Objekten; die Bereitstellung dient lediglich einer benutzerfreundlicheren Handhabung.
Drive | Objekt. Enthält Methoden und Eigenschaften zum Abrufen von Informationen zu einem systemintegrierten Laufwerk, wie beispielsweise dem Freigabenamen oder dem verfügbaren Speicherplatz. Beachten Sie dabei jedoch, dass ein "Laufwerk" nicht notwendigerweise mit einer Festplatte gleichgesetzt werden kann, da es sich auch um ein CD-ROM-, ein RAM-Laufwerk oder Ähnliches handeln kann. Ein Laufwerk muss nicht physisch im System integriert sein. Es kann sich auch um ein logisches Laufwerk handeln, das über ein Netzwerk verbunden ist.
Drives | Auflistung. Stellt eine Übersicht der in das System eingebundenen physischen oder logischen Laufwerke bereit. Die Drives-Auflistung umfasst alle Laufwerke, ungeachtet des Typs. In Laufwerken mit austauschbaren Datenträgern müssen keine Datenträger eingelegt sein, damit diese in der Auflistung angezeigt werden.
File | Objekt. Enthält Methoden und Eigenschaften zum Erstellen, Löschen sowie Verschieben von Dateien. Darüber hinaus können Sie Systemabfragen nach einem Dateinamen und -pfad sowie anderen Eigenschaften durchführen.
Files | Auflistung. Stellt eine Übersicht sämtlicher in einem Ordner enthaltenen Dateien bereit.
Folder | Objekt. Enthält Methoden und Eigenschaften zum Erstellen, Löschen sowie Verschieben von Ordnern. Darüber hinaus können Sie Systemabfragen nach einem Ordnernamen und -pfad sowie anderen Eigenschaften durchführen.
Folders | Auflistung. Stellt eine Übersicht sämtlicher in einem Folder-Objekt enthaltenen Ordner bereit.
TextStream | Objekt. Ermöglicht Ihnen das Lesen und Schreiben von Textdateien.


Programmieren des FileSystemObject-Objekts

So programmieren Sie mit dem FileSystemObject-Objektmodell (FSO):

  • Verwenden Sie die CreateObject-Methode, um ein FileSystemObject-Objekt zu erstellen.
  • Wenden Sie die entsprechenden Methoden auf das neu erstellte Objekt an.
  • Greifen Sie auf die Eigenschaften des Objekts zu.

Das FSO-Objektmodell ist in der Scripting-Typbibliothek enthalten, die sich in der Datei Scrrun.dll befindet. Die Datei Scrrun.dll muss sich daher im entsprechenden Systemverzeichnis auf dem Webserver befinden, um das FSO-Objektmodell verwenden zu können.

Erstellen eines FileSystemObject-Objekts

Erstellen Sie mit der CreateObject-Methode zunächst ein FileSystemObject-Objekt.

Der folgende Code zeigt, wie eine Instanz von FileSystemObject erstellt wird:

[VBScript]
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
[JScript]
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");

In beiden Fällen ist Scripting der Name der Typbibliothek und FileSystemObject der Name des zu erstellenden Objekts. Sie können jeweils nur eine Instanz des FileSystemObject-Objekts erstellen, unabhängig von der Anzahl der Versuche.

Verwenden der geeigneten Methode

Verwenden Sie dann die geeignete Methode des FileSystemObject-Objekts. Wenn Sie beispielsweise ein neues Objekt erstellen möchten, verwenden Sie entweder CreateTextFile oder CreateFolder (das FSO-Objektmodell unterstützt keine Vorgänge zum Erstellen oder Löschen von Laufwerken).

Sie löschen Objekte, indem Sie die DeleteFile- und DeleteFolder-Methoden des FileSystemObject-Objekts oder die Delete-Methode der File- und Folder-Objekte verwenden. Sie können Dateien und Ordner auch kopieren oder verschieben, indem Sie die entsprechenden Methoden einsetzen.

Anmerkung Im FileSystemObject-Objektmodell sind einige Funktionalitätsmerkmale redundant. Beispielsweise können Sie eine Datei über die CopyFile-Methode des FileSystemObject-Objekts oder die Copy-Methode des File-Objekts kopieren. Die Funktionsweise ist bei beiden Methoden gleich; die zwei verschiedenen Methoden sind vorhanden, um eine gewisse Flexibilität beim Programmieren zu gewährleisten.

Zugreifen auf vorhandene Laufwerke, Dateien und Ordner

Verwenden Sie die entsprechende "Get"-Methode des FileSystemObject-Objekts, um auf die vorhandenen Laufwerke, Dateien oder Ordner zuzugreifen:

  • GetDrive
  • GetFolder
  • GetFile

So können Sie auf eine vorhandene Datei zugreifen:

[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\test.txt")
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");

Verwenden Sie die "Get"-Methoden nicht für neu erstellte Objekte, da die "Create"-Funktionen bereits einen Zeiger auf das Objekt zurückgeben. Wenn Sie beispielsweise mit der CreateFolder-Methode einen neuen Ordner erstellen, verwenden Sie nicht die GetFolder-Methode, um auf die zugehörigen Eigenschaften (wie z. B. Name, Path oder Size) zuzugreifen. Setzen Sie einfach eine Variable auf die CreateFolder-Funktion, um einen Zeiger auf den neu erstellten Ordner zu setzen, und greifen Sie dann auf die Eigenschaften, Methoden und Ereignisse zu.

Verwenden Sie die folgende Syntax, um eine Variable auf die CreateFolder-Funktion festzulegen:

[VBScript]
Sub ErzeugeOrdner
   Dim fso, ordner
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set ordner = fso.CreateFolder("C:\MeinTest")
   document.write "Erstellter Ordner: " & ordner.Name
End Sub
[JScript]
function ErzeugeOrdner()
{
   var fso, ordner;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   ordner = fso.CreateFolder("C:\\MeinTest");
   document.write("Erstellter Ordner: " + ordner.Name);
}

Zugreifen auf die Eigenschaften des Objekts

Nachdem Sie über einen Zeiger auf das Objekt verfügen, können Sie auf dessen Eigenschaften zugreifen. Wenn Sie beispielsweise den Namen eines bestimmten Ordners abrufen möchten, erstellen Sie zunächst eine Instanz des Objekts und dann mit der entsprechenden Methode (in diesem Fall mit der GetFolder-Methode, da der Ordner bereits vorhanden ist) einen Zeiger darauf.

Verwenden Sie diesen Code, um einen Zeiger auf die GetFolder-Methode zu legen:

[VBScript]
Set ordner = fso.GetFolder("c:")
[JScript]
var ordner = fso.GetFolder("c:\\");

Da Sie jetzt über einen Zeiger auf das Folder-Objekt verfügen, können Sie seine Name-Eigenschaft prüfen.

[VBScript]
document.write "Ordnername: " & ordner.Name
[JScript]
document.write("Ordnername: " + ordner.Name);

Verwenden Sie die folgende Syntax, um anzuzeigen, wann eine Datei zuletzt geändert wurde:

[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
' Lädt ein zu prüfendes File-Objekt.
Set f1 = fso.GetFile("c:\detlog.txt")
' Gibt die Informationen aus.
document.write "Datei zuletzt geändert am: " & f1.DateLastModified
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// Lädt ein zu prüfendes File-Objekt.
f1 = fso.GetFile("c:\\detlog.txt");
// Gibt die Informationen aus.
document.write("Datei zuletzt geändert am: " + f1.DateLastModified);


Arbeiten mit Laufwerken und Ordnern

So wie Sie mit Laufwerken und Ordnern im Windows-Explorer interaktiv arbeiten, können Sie mit dem FileSystemObject-Objektmodell (FSO) programmgesteuert arbeiten. Sie können unter anderem Ordner kopieren und verschieben sowie Informationen zu Laufwerken und Ordnern abrufen.

Abrufen von Informationen zu Laufwerken

Mit dem Drive-Objekt können Sie sich Informationen zu den verschiedenen in das System eingebundenen physischen oder Netzlaufwerken anzeigen lassen. Durch die zugehörigen Eigenschaften erhalten Sie die folgenden Informationen:

  • Gesamtgröße des Laufwerkes in Byte (TotalSize-Eigenschaft)
  • Verfügbarer Speicherplatz auf dem Laufwerk in Byte (AvailableSpace- oder FreeSpace-Eigenschaft)
  • Zugeordneter Laufwerkbuchstabe (DriveLetter-Eigenschaft)
  • Laufwerktyp, wie beispielsweise austauschbarer bzw. fester Datenträger, Netzwerk-, CD-ROM- bzw. RAM-Laufwerk (DriveType-Eigenschaft)
  • Seriennummer des Laufwerkes (SerialNumber-Eigenschaft)
  • Mit dem Laufwerk verwendetes Dateisystem, wie z. B. FAT, FAT32, NTFS usw. (FileSystem-Eigenschaft)
  • Status zur Verfügbarkeit des Laufwerkes (IsReady-Eigenschaft)
  • Freigabe- und/oder Datenträgername (ShareName- und VolumeName-Eigenschaft)
  • Pfad oder Stammverzeichnis des Laufwerkes (Path- und Folder-Eigenschaft)

Praktische Beispiele zur Verwendung dieser Eigenschaften mit FileSystemObject finden Sie unter dem Beispielcode.

Beispiel zur Verwendung des Drive-Objekts

Verwenden Sie das Drive-Objekt, um Informationen zu einem Laufwerk zu erhalten. Im nachstehenden Code befindet sich kein Verweis auf ein tatsächliches Drive-Objekt; verwenden Sie daher die GetDrive-Methode, um einen Verweis auf ein vorhandenes Drive-Objekt zu erhalten (in diesem Fall auf lw).

Das folgende Beispiel zeigt die Verwendung des Drive-Objekts:

[VBScript]
Sub ZeigeLWInfo(lwPfad)
   Dim fso, lw, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set lw = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk" & UCase(lwPfad) & " - "
   s = s & lw.VolumeName & "<br>"
   s = s & "Speicherplatz insgesamt: " & FormatNumber(lw.TotalSize / 1024, 0)
   s = s & " KB" & "<br>"
   s = s & "Freier Speicherplatz: " & FormatNumber(lw.FreeSpace / 1024, 0)
   s = s & " KB" & "<br>"
   document.write s
End Sub
[JScript]
function ZeigeLWInfo1(lwPfad)
{
   var fso, lw, s ="";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   lw = fso.GetDrive(fso.GetDriveName(lwPfad));
   s += "Laufwerk " + lwPfad.toUpperCase()+ " - ";
   s += lw.VolumeName + "<br>";
   s += "Speicherplatz insgesamt: " + lw.TotalSize / 1024;
   s += " KB" + "<br>";
   s += "Freier Speicherplatz: " + lw.FreeSpace / 1024;
   s += " KB" + "<br>";
   document.write(s);
}

Arbeiten mit Ordnern

In der nachstehenden Tabelle werden allgemeine Aufgaben mit Ordnern sowie dazu passende Methoden beschrieben.

Aufgabe | Methode
Einen Ordner erstellen. | FileSystemObject.CreateFolder
Einen Ordner löschen. | Folder.Delete oder FileSystemObject.DeleteFolder
Einen Ordner verschieben. | Folder.Move oder FileSystemObject.MoveFolder
Einen Ordner kopieren. | Folder.Copy oder FileSystemObject.CopyFolder
Einen Ordnernamen abrufen. | Folder.Name
Feststellen, ob ein Ordner auf einem Laufwerk vorhanden ist. | FileSystemObject.FolderExists
Eine Instanz eines vorhandenen Folder-Objekts laden. | FileSystemObject.GetFolder
Den Namen des übergeordneten Ordners eines angegebenen Ordners suchen. | FileSystemObject.GetParentFolderName
Den Pfad von Systemordnern suchen. | FileSystemObject.GetSpecialFolder

Informationen zur Anzahl der in FileSystemObject verwendeten Methoden und Eigenschaften finden Sie unter Beispielcode.

Das nachstehende Beispiel zeigt die Verwendung der Folder- und FileSystemObject-Objekte, um Ordner zu bearbeiten und Informationen zu diesen zu erhalten:

[VBScript]
Sub ZeigeOrdnerInfo()
   Dim fso, ordner, s
   ' Lesen einer Instanz von FileSystemObject.
   Set fso = CreateObject("Scripting.FileSystemObject")
   ' Lesen des Drive-Objekts.
   Set ordner = fso.GetFolder("c:")
   ' Ausgeben des Namens des übergeordneten Ordners.
   document.write "Name des übergeordneten Ordners ist: " & ordner & "<br>"
   ' Ausgeben des Laufwerknamens.
   document.write "Enthalten auf Laufwerk " & ordner.Drive & "<br>"
   ' Ausgeben des Stammdateinamens.
   If ordner.Is Folder = True Then
      document.write "Dies ist der Stammordner." & "<br><br>"
   Else
      document.write "Dieser Ordner ist kein Stammordner." & "<br><br>"
   End If
   ' Erstellen eines neuen Ordners mit dem FileSystemObject-Objekt.
   fso.CreateFolder ("C:\Test")
   document.write "Ordner C:\Test erstellt" & "<br>"
   ' Ausgeben des Basisnamens des Ordners.
   document.write "Basisname= " & fso.GetBaseName("c:\Test") & "<br>"
   ' Löschen des soeben angelegten Ordners.
   fso.DeleteFolder("C:\Test")
   document.write "Ordner C:\Test gelöscht" & "<br>"
End Sub
[JScript]
function ZeigeOrdnerInfo()
{
   var fso, ordner, s = "";
   // Lesen einer Instanz von FileSystemObject.
   fso = new ActiveXObject("Scripting.FileSystemObject");
   // Lesen des Drive-Objekts.
   ordner = fso.GetFolder("c:");
   // Ausgeben des Namens des übergeordneten Ordners.
   document.write("Name des übergeordneten Ordners ist: " + ordner + "<br>");
   // Ausgeben des Laufwerknamens.
   document.write("Enthalten auf Laufwerk " + ordner.Drive + "<br>");
   // Ausgeben des Stammdateinamens.
   if (ordner.Is Folder)
      document.write("Dies ist der Stammordner.");
   else
      document.write("Dieser Ordner ist kein Stammordner.");
   document.write("<br><br>");
   // Erstellen eines neuen Ordners mit dem FileSystemObject-Objekt.
   fso.CreateFolder ("C:\\Test");
   document.write("Ordner C:\\Test erstellt" + "<br>");
   // Ausgeben des Basisnamens des Ordners.
   document.write("Basisname = " + fso.GetBaseName("c:\\Test") + "<br>");
   // Löschen des soeben angelegten Ordners.
   fso.DeleteFolder ("C:\\Test");
   document.write("Ordner C:\\Test gelöscht" + "<br>");
}


Arbeiten mit Dateien

Beim Bearbeiten von Dateien sind die folgenden beiden Hauptkategorien zu unterscheiden:

  • Erstellen, Hinzufügen bzw. Entfernen von Daten sowie Lesen von Dateien
  • Verschieben, Kopieren und Löschen von Dateien

Erstellen von Dateien

Es gibt drei Möglichkeiten, eine leere Textdatei (auch als "text stream" bezeichnet) zu erstellen.

Die erste Möglichkeit besteht in der Verwendung der CreateTextFile-Methode. Das folgende Beispiel zeigt das Erstellen einer Textdatei mit der CreateTextFile-Methode:

[VBScript]
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\test.txt", True)
[JScript]
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\test.txt", true);

Die zweite Möglichkeit zum Erstellen einer Textdatei ist die Verwendung der OpenTextFile-Methode des FileSystemObject-Objekts mit gesetztem Schreibattribut.

[VBScript]
Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
[JScript]
var fso, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);

Eine dritte Möglichkeit ist die Verwendung der OpenAsTextStream-Methode mit gesetztem Schreibattribut.

[VBScript]
Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)
[JScript]
var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);

Hinzufügen von Daten zu einer Datei

Nachdem Sie eine Textdatei erstellt haben, fügen Sie entsprechend der folgenden drei Schritte Daten ein:

Öffnen Sie die Textdatei.

Schreiben Sie die Daten.

Schließen Sie die Datei.

Verwenden Sie zum Öffnen einer vorhandenen Datei entweder die OpenTextFile-Methode des FileSystemObject-Objekts oder die OpenAsTextStream-Methode des File-Objekts.

Verwenden Sie zum Schreiben von Daten in die geöffnete Textdatei je nach Aufgabe die Write-, WriteLine- oder die WriteBlankLines-Methode des TextStream-Objekts (siehe folgende Tabelle).

Aufgabe | Methode
Schreiben von Daten in eine geöffnete Textdatei ohne nachstehendes Zeilenumbruchzeichen. | Write
Schreiben von Daten in eine geöffnete Textdatei mit nachstehendem Zeilenumbruchzeichen. | WriteLine
Schreiben einer oder mehrerer Leerzeilen in eine geöffnete Textdatei. | WriteBlankLines

Verwenden Sie zum Schließen einer geöffneten Datei die Close-Methode des TextStream-Objekts.

Anmerkung Das Zeilenumbruchzeichen enthält ein oder mehrere Zeichen (je nach Betriebssystem), die die Einfügemarke am Beginn einer neuen Zeile positionieren (Wagenrücklauf/Zeilenvorschub). Achten Sie darauf, dass einige Zeichenfolgen diese nicht darstellbaren Zeichen bereits aufweisen.

Das folgende Beispiel zeigt, wie eine Datei geöffnet wird, wie die drei Schreibmethoden zum Hinzufügen von Daten verwendet werden und die Datei anschließend geschlossen wird:

[VBScript]
Sub ErzeugeDatei()
   Dim fso, tf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set tf = fso.CreateTextFile("c:\test.txt", True)
   ' Zeile mit Zeilenumbruchzeichen schreiben.
   tf.WriteLine("Test 1, 2, 3.")
   ' Drei Zeilenumbruchzeichen in die Datei schreiben.
   tf.WriteBlankLines(3)
   ' Eine Zeile schreiben.
   tf.Write ("Dies ist ein Test.")
   tf.Close
End Sub
[JScript]
function ErzeugeDatei()
{
   var fso, tf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   tf = fso.CreateTextFile("c:\\test.txt", true);
   // Eine Zeile mit Zeilenumbruchzeichen schreiben.
   tf.WriteLine("Test 1, 2, 3.") ;
   // Drei Zeilenumbruchzeichen in die Datei schreiben.
   tf.WriteBlankLines(3) ;
   // Eine Zeile schreiben.
   tf.Write ("Dies ist ein Test.");
   tf.Close();
}

Lesen von Dateien

Verwenden Sie zum Lesen von Daten in einer Textdatei die Read-, ReadLine- oder ReadAll-Methode des TextStream-Objekts. Die folgende Tabelle erläutert die für die verschiedenen Aufgaben zu verwendenden Methoden.

Aufgabe | Methode
Lesen einer bestimmten Zeichenanzahl aus einer Datei. | Read
Lesen einer vollständigen Zeile (bis zum Zeilenumbruchzeichen, aber nicht einschließlich des Zeichens). | ReadLine
Lesen des gesamten Inhalts einer Textdatei. | ReadAll

Wenn Sie die Read- oder ReadLine-Methode verwenden und einen bestimmten Datenbereich überspringen möchten, verwenden Sie die Skip- oder SkipLine-Methode. Der resultierende Text dieser Lesemethoden wird in einer Zeichenfolge gespeichert, die dann z. B. in einem Steuerelement angezeigt, von Zeichenfolgenfunktionen analysiert (z. B. Left, Right und Mid) oder verkettet werden kann.

Das folgende Beispiel zeigt das Öffnen einer Datei, das Schreiben sowie das Lesen aus dieser:

[VBScript]
Sub LeseDatei
   Dim fso, f1, ts, s
   Const ForReading = 1
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:\test.txt", True)
   ' Eine Zeile schreiben.
   document.write "Schreibvorgang in Datei <br>"
   f1.WriteLine "Hallo Welt"
   f1.WriteBlankLines(1)
   f1.Close
   ' Inhalt der Datei lesen.
   document.write "Lesevorgang aus Datei <br>"
   Set ts = fso.OpenTextFile("c:\test.txt", ForReading)
   s = ts.ReadLine
   document.write "Dateiinhalt = '" & s & "'"
   ts.Close
End Sub
[JScript]
function LeseDatei()
{
   var fso, f1, ts, s;
   var ForReading = 1;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f1 = fso.CreateTextFile("c:\\test.txt", true);
   // Eine Zeile schreiben.
   document.write("Schreibe Datei <br>");
   f1.WriteLine("Hallo Welt");
   f1.WriteBlankLines(1);
   f1.Close();
   // Inhalt der Datei lesen.
   document.write("Lese Datei <br>");
   ts = fso.OpenTextFile("c:\\test.txt", ForReading);
   s = ts.ReadLine();
   document.write("Dateiinhalt = '" + s + "'");
   ts.Close();
}

Verschieben, Kopieren und Löschen von Dateien

Das FSO-Objektmodell verfügt - wie in der nachstehenden Tabelle beschrieben - über jeweils zwei Methoden zum Verschieben, Kopieren und Löschen von Dateien.

Aufgabe | Methode
Verschieben einer Datei | File.Move oder FileSystemObject.MoveFile
Kopieren einer Datei | File.Copy oder FileSystemObject.CopyFile
Löschen einer Datei | File.Delete oder FileSystemObject.DeleteFile

Das folgende Beispiel erstellt eine Textdatei im Stammverzeichnis von Laufwerk C:, schreibt Daten in die Datei, verschiebt diese anschließend in das Verzeichnis \tmp, erstellt eine Kopie im Verzeichnis \temp und löscht dann die Kopien in beiden Verzeichnissen.

Erstellen Sie im Stammverzeichnis von Laufwerk C: die beiden Verzeichnisse \tmp und \temp, um das folgende Beispiel ausführen zu können:

[VBScript]
Sub BearbeiteDateien
   Dim fso, f1, f2, f3, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f1 = fso.CreateTextFile("c:\test.txt", True)
   document.write "Schreibvorgang in Datei <br>"
   ' Eine Zeile schreiben.
   f1.Write ("Dies ist ein Test.")
   ' Schließen der Datei zum Schreiben.
   f1.Close
   document.write "Datei verschieben nach c:\tmp <br>"
   ' Holen eines Zeigers für die Datei im Stamm von C:\.
   Set f2 = fso.GetFile("c:\test.txt")
   ' Verschieben der Datei in das Verzeichnis \tmp.
   f2.Move ("c:\tmp\test.txt")
   document.write "Datei kopieren nach c:\temp <br>"
   ' Kopieren der Datei nach \temp.
   f2.Copy ("c:\temp\test.txt")
   document.write "Löschen von Dateien <br>"
   ' Holen von Zeigern für den aktuellen Pfad der Dateien.
   Set f2 = fso.GetFile("c:\tmp\test.txt")
   Set f3 = fso.GetFile("c:\temp\test.txt")
   ' Löschen der Dateien.
   f2.Delete
   f3.Delete
   document.write "Alle bearbeitet!"
End Sub
[JScript]
function BearbeiteDateien()
{
   var fso, f1, f2, f3, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f1 = fso.CreateTextFile("c:\\test.txt", true);
   document.write("Schreibe Datei <br>");
   // Eine Zeile schreiben.
   f1.Write("Dies ist ein Test.");
   // Schließen der Datei zum Schreiben.
   f1.Close();
   document.write("Verschieben der Datei nach c:\\tmp <br>");
   // Holen eines Zeigers für die Datei im Stamm von C:\.
   f2 = fso.GetFile("c:\\test.txt");
   // Verschieben der Datei in das Verzeichnis \tmp.
   f2.Move("c:\\tmp\\test.txt");
   document.write("Kopieren der Datei nach c:\\temp <br>");
   // Kopieren der Datei nach \temp.
   f2.Copy ("c:\\temp\\test.txt");
   document.write("Lösche Dateien <br>");
   // Holen von Zeigern für den aktuellen Pfad der Dateien.
   f2 = fso.GetFile("c:\\tmp\\test.txt");
   f3 = fso.GetFile("c:\\temp\\test.txt");
   // Löschen der Dateien.
   f2.Delete();
   f3.Delete();
   document.write("Alle bearbeitet!");
}


FileSystemObject-Beispielcode

Der in diesem Abschnitt beschriebene Beispielcode stellt ein reales Beispiel dar, das der Veranschaulichung zahlreicher, im FileSystemObject-Objektmodell verfügbarer Funktionsmerkmale dient. Dieser Code zeigt das Zusammenwirken aller Funktionsmerkmale des Objektmodells und soll Ihnen den effektiven Einsatz in Ihrem eigenen Code verständlich darlegen.

Beachten Sie, dass dieser Code recht allgemein gehalten ist. Zusätzlicher Code und kleine Änderungen sind erforderlich, um ihn tatsächlich auf Ihrem Computer ausführen zu können. Diese Änderungen sind aufgrund der unterschiedlichen Möglichkeiten notwendig, die beim Zusammenwirken zwischen Active Server Pages und Windows Script Host für die Ein- und Ausgabe zum Benutzer verwendet werden.

Gehen Sie folgendermaßen vor, um diesen Code auf einer Active Server Page auszuführen:

Erstellen Sie eine herkömmliche Webseite mit der Dateinamenerweiterung ASP.

Kopieren Sie den nachstehenden Beispielcode in diese Datei zwischen die Tags <BODY>...</BODY>.

Schließen Sie den gesamten Code in <%...%>-Tags ein.

Verschieben Sie die Option Explicit-Anweisung von der aktuellen Codeposition ganz nach oben an den HTML-Seitenanfang vor das eröffnende <HTML>-Tag.

Setzen Sie <%...%>-Tags um die Option Explicit-Anweisung, um sicherzustellen, dass sie serverseitig ausgeführt wird.

Fügen Sie den nachstehenden Code am Ende des Beispielcodes hinzu:

Sub Ausgabe(x)
   Response.Write "<PRE><FONT FACE=""Courier New"" SIZE=""1"">"
   Response.Write x
   Response.Write "</FONT></PRE>"
End Sub
Main

Der Code weiter oben fügt eine Druckprozedur hinzu, die zwar serverseitig ausgeführt wird, deren Ergebnisse jedoch clientseitig angezeigt werden. Fügen Sie den folgenden Code am Ende des Beispielcodes ein, um diesen auf dem Windows Script Host auszuführen:

Sub Ausgabe(x)
   WScript.Echo x
End Sub
Main

Der Code ist im folgenden Abschnitt enthalten:

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' FileSystemObject-Beispielcode
' Copyright 1998 Microsoft Corporation.   Alle Rechte vorbehalten.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Informationen zur Codequalität:
' 1) Der folgende Code führt eine Anzahl von Zeichenfolgenmanipulationen
'    aus. Dabei werden kurze Zeichenfolgen mit dem Operator "&" verkettet.
'    Da Zeichenfolgenverkettungen lange dauern, ist dieser Code nicht sehr
'    effizient. Es ist jedoch ein sehr gängiger Weg zum Schreiben von
'    Code. Dieser Weg wird hier verwendet, da dieses Programm intensive
'    Festplattenoperationen ausführt und diese Operationen wesentlich
'    langsamer als die Operationen zum Verketten der Zeichenfolgen im
'    Speicher sind. Beachten Sie auch, dass dieser Code zu
'    Demonstrationszwecken geschrieben wurde.
'
' 2) Es wird "Option Explicit" verwendet, da der Zugriff auf deklarierte
'    Variablen etwas schneller als der Zugriff auf undeklarierte
'    Variablen ist. Außerdem wird so das Entstehen von Fehlern im Code
'    verhindert, wie z. B. durch den Schreibfehler DriveTypeCDORM statt
'    DriveTypeCDROM.
'
' 3) In diesem Code wurde keine Fehlerbehandlung vorgesehen. Der Code ist
'    so besser lesbar. Obwohl Vorkehrungen zum Verhindern von Fehlern in
'    normalen Fällen getroffen wurden, können sich Dateisysteme eventuell
'    unvorhersehbar verhalten. In kommerziellem Code sollten Sie "On Error
'    Resume Next" und das Err-Objekt verwenden, um mögliche Fehler
'    abzufangen.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Einige hilfreiche globale Variablen
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Tabulator
Dim NeueZeile

Const TestLW = "C"
Const TestDateiPfad = "C:\Test"

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Von Drive.DriveType zurückgegebene Konstanten
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Const DriveTypeWechselbar = 1
Const DriveTypeFest = 2
Const DriveTypeNetzwerk = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMLW = 5

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Von File.Attributes zurückgegebene Konstanten
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Const AttributNormal = 0
Const AttributSchreibgesch = 1
Const AttributVersteckt = 2
Const AttributSystem = 4
Const AttributDatentr = 8
Const AttributVerzeichnis = 16
Const AttributArchiv = 32
Const AttributAlias = 64
Const AttributKomprimiert = 128

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Konstanten zum Öffnen von Dateien
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Const DateiOeffnenZumLesen = 1
Const DateiOeffnenZumSchreiben = 2
Const DateiOeffnenZumAnfuegen = 8

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ZeigeLWTyp
' Zweck:
'    Erstellt eine Zeichenfolge, die den Laufwerktyp eines angegebenen
'    Drive-Objekts beschreibt.
' Zeigt Folgendes
' - Drive.DriveType
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function ZeigeLWTyp(LW)

   Dim S

   Select Case LW.DriveType
   Case DriveTypeWechselbar
      S = "Wechselmedium"
   Case DriveTypeFest
      S = "Fest"
   Case DriveTypeNetzwerk
      S = "Netzwerk"
   Case DriveTypeCDROM
      S = "CD-ROM"
   Case DriveTypeRAMLW
      S = "RAM-Laufwerk"
   Case Else
      S = "Unbekannt"
   End Select

   ZeigeLWTyp = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ZeigeDateiAttribute
' Zweck:
'    Erstellt eine Zeichenfolge, die Datei- oder Ordnerattribute
'    beschreibt.
' Zeigt Folgendes
'  - File.Attributes
'  - Folder.Attributes
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ZeigeDateiAttribute(Datei) ' Datei kann Datei oder Ordner sein

   Dim S
   Dim Attr

   Attr = Datei.Attributes

   If Attr = 0 Then
      ZeigeDateiAttribute = "Normal"
      Exit Function
   End If

   If Attr And AttributVerzeichnis Then S = S & "Verzeichnis "
   If Attr And AttributSchreibgesch Then S = S & "Schreibgeschützt "
   If Attr And AttributVersteckt Then S = S & "Versteckt "
   If Attr And AttributSystem Then S = S & "System "
   If Attr And AttributDatentr Then S = S & "Datenträger "
   If Attr And AttributArchiv Then S = S & "Archiv "
   If Attr And AttributAlias Then S = S & "Alias "
   If Attr And AttributKomprimiert Then S = S & "Komprimiert "

   ZeigeDateiAttribute = S

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeLWInformation
' Zweck:
'    Erstellt eine Zeichenfolge, die den aktuellen Status der
'    verfügbaren Laufwerke beschreibt.
' Zeigt Folgendes
'  - FileSystemObject.Drives
'  - Iteration der Drives-Auflistung
'  - Drives.Count
'  - Drive.AvailableSpace
'  - Drive.DriveLetter
'  - Drive.DriveType
'  - Drive.FileSystem
'  - Drive.FreeSpace
'  - Drive.IsReady
'  - Drive.Path
'  - Drive.SerialNumber
'  - Drive.ShareName
'  - Drive.TotalSize
'  - Drive.VolumeName
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ErzeugeLWInformation(FSO)

   Dim LWs
   Dim LW
   Dim S

   Set LWs = FSO.Drives
   S = "Anzahl der Laufwerke:" & Tabulator & LWs.Count & NeueZeile & NeueZeile

   ' Erstellt die erste Zeile des Berichts.
   S = S & String(2, Tabulator) & "Laufwerk"
   S = S & String(3, Tabulator) & "Datei"
   S = S & Tabulator & "Gesamt"
   S = S & Tabulator & "Frei"
   S = S & Tabulator & "Verfügbar"
   S = S & Tabulator & "Seriennummer" & NeueZeile

   ' Erstellt die zweite Zeile des Berichts.
   S = S & "Laufwerkbuchstabe"
   S = S & Tabulator & "Pfad"
   S = S & Tabulator & "Typ"
   S = S & Tabulator & "Bereit?"
   S = S & Tabulator & "Name"
   S = S & Tabulator & "System"
   S = S & Tabulator & "Speicherplatz"
   S = S & Tabulator & "Speicherplatz"
   S = S & Tabulator & "Speicherplatz"
   S = S & Tabulator & "Nummer" & NeueZeile

   ' Trennlinie.
   S = S & String(105, "-") & NeueZeile

   For Each LW In LWs
      S = S & LW.DriveLetter
      S = S & Tabulator & LW.Path
      S = S & Tabulator & ZeigeLWTyp(LW)
      S = S & Tabulator & LW.IsReady

      If LW.IsReady Then
         If DriveTypeNetzwerk = LW.DriveType Then
            S = S & Tabulator & LW.ShareName
         Else
            S = S & Tabulator & LW.VolumeName
         End If
         S = S & Tabulator & LW.FileSystem
         S = S & Tabulator & LW.TotalSize
         S = S & Tabulator & LW.FreeSpace
         S = S & Tabulator & LW.AvailableSpace
         S = S & Tabulator & Hex(LW.SerialNumber)
      End If

      S = S & NeueZeile

   Next

   ErzeugeLWInformation = S

End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeDateiInformation
' Zweck:
'    Erstellt eine Zeichenfolge, die den aktuellen Status einer Datei
'    beschreibt.
' Zeigt Folgendes
'  - File.Path
'  - File.Name
'  - File.Type
'  - File.DateCreated
'  - File.DateLastAccessed
'  - File.DateLastModified
'  - File.Size
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ErzeugeDateiInformation(Datei)

   Dim S

   S = NeueZeile & "Pfad:" & Tabulator & Datei.Path
   S = S & NeueZeile & "Name:" & Tabulator & Datei.Name
   S = S & NeueZeile & "Typ:" & Tabulator & Datei.Type
   S = S & NeueZeile & "Attribute:" & Tabulator & ZeigeDateiAttribute(Datei)
   S = S & NeueZeile & "Erstellt:" & Tabulator & Datei.DateCreated
   S = S & NeueZeile & "Letzter Zugriff:" & Tabulator & Datei.DateLastAccessed
   S = S & NeueZeile & "Letzte Änderung:" & Tabulator & Datei.DateLastModified
   S = S & NeueZeile & "Größe" & Tabulator & Datei.Size & NeueZeile

   ErzeugeDateiInformation = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeOrdnerInformation
' Zweck:
'    Erstellt eine Zeichenfolge, die den aktuellen Status eines Ordners
'    beschreibt.
' Zeigt Folgendes
'  - Folder.Path
'  - Folder.Name
'  - Folder.DateCreated
'  - Folder.DateLastAccessed
'  - Folder.DateLastModified
'  - Folder.Size
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ErzeugeOrdnerInformation(Ordner)

   Dim S

   S = "Pfad:" & Tabulator & Ordner.Path
   S = S & NeueZeile & "Name:" & Tabulator & Ordner.Name
   S = S & NeueZeile & "Attribute:" & Tabulator & ZeigeDateiAttribute(Ordner)
   S = S & NeueZeile & "Erstellt:" & Tabulator & Ordner.DateCreated
   S = S & NeueZeile & "Letzter Zugriff:" & Tabulator & Ordner.DateLastAccessed
   S = S & NeueZeile & "Letzte Änderung:" & Tabulator & Ordner.DateLastModified
   S = S & NeueZeile & "Größe:" & Tabulator & Ordner.Size & NeueZeile

   ErzeugeOrdnerInformation = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeAlleOrdnerInformationen
' Zweck:
'    Erstellt eine Zeichenfolge, die den aktuellen Status eines Ordners
'    und all seiner Dateien und untergeordneten Ordner beschreibt.
' Zeigt Folgendes
'  - Folder.Path
'  - Folder.SubFolders
'  - Folders.Count
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ErzeugeAlleOrdnerInformationen(Ordner)

   Dim S
   Dim UnterOrdnerAuflistung
   Dim UnterOrdner
   Dim Dateien
   Dim Datei

   S = "Ordner:" & Tabulator & Ordner.Path & NeueZeile & NeueZeile
   Set Dateien = Ordner.Files

   If 1 = Dateien.Count Then
      S = S & "Es ist 1 Datei vorhanden" & NeueZeile
   Else
      S = S & "Es sind " & Dateien.Count & "Dateien vorhanden" & NeueZeile
   End If

   If Dateien.Count <> 0 Then
      For Each Datei In Dateien
         S = S & ErzeugeDateiInformation(Datei)
      Next
   End If

   Set UnterOrdnerAuflistung = Ordner.SubFolders

   If 1 = UnterOrdnerAuflistung.Count Then
      S = S & NeueZeile & "Es ist 1 Unterordner vorhanden" & NeueZeile & NeueZeile
   Else
      S = S & NeueZeile & "Es sind" & UnterOrdnerAuflistung.Count & "Unterordner vorhanden" _ NeueZeile & NeueZeile
   End If

   If UnterOrdnerAuflistung.Count <> 0 Then
      For Each UnterOrdner In UnterOrdnerAuflistung
         S = S & ErzeugeOrdnerInformation(UnterOrdner)
      Next
      S = S & NeueZeile
      For Each UnterOrdner In UnterOrdnerAuflistung
         S = S & ErzeugeAlleOrdnerInformationen(UnterOrdner)
      Next
   End If

   ErzeugeAlleOrdnerInformationen = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeTestInformation
' Zweck:
'    Erstellt eine Zeichenfolge, die den aktuellen Status des Ordners
'    C:\Test und all seiner Dateien und untergeordneten Ordner
'    beschreibt.
' Zeigt Folgendes
'  - FileSystemObject.DriveExists
'  - FileSystemObject.FolderExists
'  - FileSystemObject.GetFolder
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ErzeugeTestInformation(FSO)

   Dim TestOrdner
   Dim S

   If Not FSO.DriveExists(TestLW) Then Exit Function
   If Not FSO.FolderExists(TestDateiPfad) Then Exit Function

   Set TestOrdner = FSO.GetFolder(TestDateiPfad)

   ErzeugeTestInformation = ErzeugeAlleOrdnerInformationen(TestOrdner)

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' LoescheTestVerzeichnis
' Zweck:
'    Bereinigt das Testverzeichnis.
' Zeigt Folgendes
'  - FileSystemObject.GetFolder
'  - FileSystemObject.DeleteFile
'  - FileSystemObject.DeleteFolder
'  - Folder.Delete
'  - File.Delete
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub LoescheTestVerzeichnis(FSO)

   Dim TestOrdner
   Dim UnterOrdner
   Dim Datei

   ' Zwei Möglichkeiten, eine Datei zu löschen:

   FSO.DeleteFile(TestDateiPfad & "\Beatles\OctopusGarden.txt")

   Set Datei = FSO.GetFile(TestDateiPfad & "\Beatles\BathroomWindow.txt")
   Datei.Delete

   ' Zwei Möglichkeiten, einen Ordner zu löschen:
   FSO.DeleteFolder(TestDateiPfad & "\Beatles")
   FSO.DeleteFile(TestDateiPfad & "\Liesmich.txt")
   Set TestOrdner = FSO.GetFolder(TestDateiPfad)
   TestOrdner.Delete

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeLiedText
' Zweck:
'    Erstellt mehrere Textdateien in einem Ordner.
' Zeigt Folgendes
'  - FileSystemObject.CreateTextFile
'  - TextStream.writeLine
'  - TextStream.write
'  - TextStream.writeBlankLines
'  - TextStream.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub ErzeugeLiedText(Ordner)

   Dim TextStream

   Set TextStream = Ordner.CreateTextFile("OctopusGarden.txt")

   ' Beachten Sie, dass der Datei kein Zeilenvorschub hinzugefügt wird.
   TextStream.Write("Octopus' Garden")
   TextStream.WriteLine("(von Ringo Starr)")
   TextStream.WriteBlankLines(1)
   TextStream.WriteLine("I'd like to be under the sea, in an octopus' garden in the shade,")
   TextStream.WriteLine("He'd let us in, knows where we've been - in his octopus' garden in the shade.")
   TextStream.WriteBlankLines(2)

   TextStream.Close

   Set TextStream = Ordner.CreateTextFile("BathroomWindow.txt")
   TextStream.WriteLine("She Came In Through The Bathroom Window (von Lennon/McCartney)")
   TextStream.WriteLine("")
   TextStream.WriteLine("She came in through the bathroom window, protected by a silver spoon")
   TextStream.WriteLine("But now she sucks her thumb and wanders by the banks of her own lagoon")
   TextStream.WriteBlankLines(2)
   TextStream.Close

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' HoleLiedText
' Zweck:
'    Zeigt den Inhalt der Liedtexte an.
' Zeigt Folgendes
'  - FileSystemObject.OpenTextFile
'  - FileSystemObject.GetFile
'  - TextStream.ReadAll
'  - TextStream.Close
'  - File.OpenAsTextStream
'  - TextStream.AtEndOfStream
'  - TextStream.ReadLine
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function HoleLiedText(FSO)

   Dim TextStream
   Dim S
   Dim Datei

   ' Es gibt verschiedene Möglichkeiten, eine Textdatei zu öffnen und die
   ' Daten dieser Datei zu lesen. Hier sind zwei Möglichkeiten:

   Set TextStream = FSO.OpenTextFile(TestDateiPfad & "\Beatles\OctopusGarden.txt", DateiOeffnenZumLesen)

   S = TextStream.ReadAll & NeueZeile & NeueZeile
   TextStream.Close

   Set Datei = FSO.GetFile(TestDateiPfad & "\Beatles\BathroomWindow.txt")
   Set TextStream = Datei.OpenAsTextStream(DateiOeffnenZumLesen)
   Do    While Not TextStream.AtEndOfStream
      S = S & TextStream.ReadLine & NeueZeile
   Loop
   TextStream.Close

   HoleLiedText = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ErzeugeTestVerzeichnis
' Zweck:
'    Erstellt eine Verzeichnishierarchie, um das FileSystemObject-Objekt
'    zu beschreiben.
'    Die Hierarchie wird in dieser Reihenfolge erstellt:
'       C:\Test
'       C:\Test\Liesmich.txt
'       C:\Test\Beatles
'       C:\Test\Beatles\OctopusGarden.txt
'       C:\Test\Beatles\BathroomWindow.txt
' Zeigt Folgendes
'  - FileSystemObject.DriveExists
'  - FileSystemObject.FolderExists
'  - FileSystemObject.CreateFolder
'  - FileSystemObject.CreateTextFile
'  - Folders.Add
'  - Folder.CreateTextFile
'  - TextStream.writeLine
'  - TextStream.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ErzeugeTestVerzeichnis(FSO)

   Dim TestOrdner
   Dim UnterOrdnerAuflistung
   Dim UnterOrdner
   Dim TextStream

   ' Bricht ab, wenn (a) das Laufwerk nicht vorhanden oder (b) das zu erstellende Verzeichnis bereits
   ' vorhanden ist.

   If Not FSO.DriveExists(TestLW) Then
      ErzeugeTestVerzeichnis = False
      Exit Function
   End If

   If FSO.FolderExists(TestDateiPfad) Then
      ErzeugeTestVerzeichnis = False
      Exit Function
   End If

   Set TestOrdner = FSO.CreateFolder(TestDateiPfad)

   Set TextStream = FSO.CreateTextFile(TestDateiPfad & "\Liesmich.txt")
   TextStream.writeLine("Meine Liedtextsammlung")
   TextStream.Close

   Set UnterOrdnerAuflistung = TestOrdner.SubFolders
   Set UnterOrdner = UnterOrdnerAuflistung.Add("Beatles")
   ErzeugeLiedText UnterOrdner
   ErzeugeTestVerzeichnis = True

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Die Hauptroutine
' Zunächst wird ein Testverzeichnis mit einigen Unterordnern und Dateien
' erstellt.
' Anschließend werden Informationen über die verfügbaren
' Festplattenlaufwerke und
' über das Testverzeichnis ausgegeben und danach alles wieder entfernt.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub Main

   Dim FSO

   ' Einrichten globaler Daten.
   Tabulator = Chr(9)
   NeueZeile = Chr(10)

   Set FSO = CreateObject("Scripting.FileSystemObject")

   If Not ErzeugeTestVerzeichnis(FSO) Then
      Ausgabe "Testverzeichnis ist bereits vorhanden oder kann nicht erstellt werden. Fortsetzung nicht möglich."
      Exit Sub
   End If

   Ausgabe ErzeugeLWInformation(FSO) & NeueZeile & NeueZeile
   Ausgabe ErzeugeTestInformation(FSO) & NeueZeile & NeueZeile
   Ausgabe HoleLiedText(FSO) & NeueZeile & NeueZeile
   LoescheTestVerzeichnis(FSO)

End Sub


Scripting-Laufzeitreferenz

In diesem Abschnitt

FileSystemObject-Eigenschaften
Liste von Eigenschaften, die mit dem FileSystemObject-Objektmodell verwendet werden können.
FileSystemObject-Methoden
Liste von Methoden, die mit dem FileSystemObject-Objektmodell verwendet werden können.
FileSystemObject-Objekte
Liste von Objekten, die mit dem FileSystemObject-Objektmodell verwendet werden können.
FileSystemObject-Auflistungen
Liste von Auflistungen, die mit dem FileSystemObject-Objektmodell verwendet werden können.

Verwandter Abschnitt

FileSystemObject-Grundlagen
Ein Leitfaden der Grundlagen des FileSystemObject-Objekts.


FileSystemObject-Eigenschaften

In diesem Abschnitt

AtEndOfLine-Eigenschaft
Gibt true zurück, wenn sich der Dateizeiger unmittelbar vor einer Zeilenendemarkierung einer TextStream-Datei befindet. Gibt false zurück, wenn dies nicht zutrifft.
AtEndOfStream-Eigenschaft
Gibt true zurück, wenn sich der Dateizeiger am Ende einer TextStream-Datei befindet. Gibt false zurück, wenn dies nicht zutrifft.
Attributes-Eigenschaft
Legt die Attribute von Dateien bzw. Ordnern fest oder gibt sie zurück.
AvailableSpace-Eigenschaft
Gibt die Größe des Speicherplatzes zurück, der einem Benutzer auf einem angegebenen Laufwerk bzw. einer Netzwerkfreigabe zur Verfügung steht.
Column-Eigenschaft
Gibt die Spaltennummer der aktuellen Zeichenposition in einer TextStream-Datei zurück.
CompareMode-Eigenschaft
Legt den Vergleichsmodus zum Vergleich von Zeichenfolgenschlüsseln in einem Dictionary-Objekt fest und gibt ihn zurück.
Count-Eigenschaft
Gibt die Anzahl der Elemente in einer Auflistung oder in einem Dictionary-Objekt zurück.
DateCreated-Eigenschaft
Gibt Datum und Uhrzeit zurück, an denen die angegebene Datei bzw. der angegebene Ordner erstellt wurde. Schreibgeschützt.
DateLastAccessed-Eigenschaft
Gibt Datum und Uhrzeit zurück, an denen auf die angegebene Datei bzw. den angegebenen Ordner zuletzt zugegriffen wurde.
DateLastModified-Eigenschaft
Gibt Datum und Uhrzeit zurück, an denen die angegebene Datei bzw. der angegebene Ordner zuletzt geändert wurde.
Drive-Eigenschaft
Gibt den Buchstaben des Laufwerkes zurück, auf dem sich die angegebene Datei bzw. der angegebene Ordner befindet.
DriveLetter-Eigenschaft
Gibt den Laufwerkbuchstaben eines physischen lokalen Laufwerkes oder einer Netzwerkfreigabe zurück.
Drives-Eigenschaft
Gibt eine Drives-Auflistung zurück, die alle auf dem lokalen Computer verfügbaren Drive-Objekte enthält.
DriveType-Eigenschaft
Gibt einen Wert zurück, der den Typ des angegebenen Laufwerkes angibt.
Files-Eigenschaft
Gibt eine Files-Auflistung zurück, die alle File-Objekte im angegebenen Ordner einschließlich der Dateien enthält, bei denen die Attribute "Hidden" (Versteckt) und/oder "System" festgelegt sind.
FileSystem-Eigenschaft
Gibt das für das angegebene Laufwerk verwendete Dateisystem zurück.
FreeSpace-Eigenschaft
Gibt die Größe des freien Speicherplatzes zurück, der einem Benutzer auf dem angegebenen Laufwerk bzw. der Netzwerkfreigabe zur Verfügung steht.
IsReady-Eigenschaft
Gibt true zurück, wenn das angegebene Laufwerk bereit ist, andernfalls false.
IsRootFolder-Eigenschaft
Gibt true zurück, wenn der angegebene Ordner der Stammordner ist. Gibt false zurück, wenn dies nicht zutrifft.
Item-Eigenschaft
Legt ein Element für einen angegebenen Schlüssel in einem Dictionary-Objekt fest oder gibt diesen zurück. Bei Auflistungen wird ein auf dem angegebenen Schlüssel basierendes Element zurückgegeben.
Key-Eigenschaft
Legt einen Schlüssel in einem Dictionary-Objekt fest.
Line-Eigenschaft
Gibt die aktuelle Zeilennummer in einer TextStream-Datei zurück.
Name-Eigenschaft
Legt den Namen einer angegebenen Datei bzw. eines angegebenen Ordners fest oder gibt diesen zurück.
ParentFolder-Eigenschaft
Gibt ein Ordnerobjekt zurück, das den übergeordneten Ordner der angegebenen Datei bzw. des angegebenen Ordners darstellt.
Path-Eigenschaft
Gibt den Pfad einer angegebenen Datei bzw. eines angegebenen Ordners oder Laufwerkes zurück.
RootFolder-Eigenschaft
Gibt ein Folder-Objekt zurück, das den Stammordner eines angegebenen Laufwerkes darstellt.
SerialNumber-Eigenschaft
Gibt die dezimale Seriennummer zurück, mit der ein Datenträger eindeutig gekennzeichnet wird.
ShareName-Eigenschaft
Gibt den Netzfreigabenamen eines angegebenen Laufwerkes zurück.
ShortName-Eigenschaft
Gibt den Kurznamen zurück, der von Programmen verwendet wird, für die die frühere 8.3-Benennungskonvention erforderlich ist.
ShortPath-Eigenschaft
Gibt den Kurzpfad zurück, der von Programmen verwendet wird, für die die frühere 8.3-Benennungskonvention erforderlich ist.
Size-Eigenschaft
Gibt für Dateien die Größe (in Byte) der angegebenen Datei zurück. Gibt für Ordner die Größe (in Byte) aller im Ordner und dessen untergeordneten Ordnern enthaltenen Dateien zurück.
SubFolders-Eigenschaft
Gibt eine Folders-Auflistung zurück, die alle Ordner im angegebenen Ordner einschließlich derjenigen enthält, deren Attribute "Hidden" (Versteckt) und/oder "System" festgelegt sind.
TotalSize-Eigenschaft
Gibt den gesamten Speicherplatz (in Byte) eines Laufwerkes oder einer Netzwerkfreigabe zurück.
Type-Eigenschaft
Gibt Informationen zum Datei- oder Ordnertyp zurück.
VolumeName-Eigenschaft
Legt den Datenträgernamen des angegebenen Laufwerkes fest bzw. gibt diesen zurück.

Verwandte Abschnitte

Scripting-Laufzeitreferenz
Liste von Elementen, aus denen die Scripting-Laufzeitreferenz besteht.
FileSystemObject-Grundlagen
Ein Leitfaden der Grundlagen des FileSystemObject-Objekts.


AtEndOfLine-Eigenschaft (FileSystemObject)

Scripting Runtime Library

AtEndOfLine-Eigenschaft

Gibt true zurück, wenn sich der Dateizeiger unmittelbar vor einer Zeilenendemarkierung einer TextStream-Datei befindet. Sie gibt false zurück, wenn dem nicht so ist. Schreibgeschützt.

Objekt.AtEndOfLine

Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Die AtEndOfLine-Eigenschaft kann nur auf zum Lesen geöffnete TextStream-Dateien angewendet werden, andernfalls tritt ein Fehler auf.

Der folgende Code veranschaulicht die Verwendung der AtEndOfLine-Eigenschaft:

[JScript]
function HoleZeile(dateiAngabe)
{
   var fso, a, s, ForReading;
   ForReading = 1, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   a = fso.OpenTextFile(dateiAngabe, ForReading, false);
   while (!a.AtEndOfLine)
   {
      s += a.Read(1);
   }
   a.Close( );
   return(s);
}
[VBScript]
Function GanzeDateiLesen(dateiAngabe)
   Const ForReading = 1
   Dim fso, dieDatei, Rueckgabe
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dieDatei = fso.OpenTextFile(dateiAngabe, ForReading, False)
   Do While dieDatei.AtEndOfLine <> True
      Rueckgabe = dieDatei.Read(1)
   Loop
   dieDatei.Close
   GanzeDateiLesen = Rueckgabe
End Function

Siehe auch

AtEndOfStream-Eigenschaft

Betrifft: TextStream-Objekt


AtEndOfStream-Eigenschaft (FileSystemObject)

Scripting Runtime Library

AtEndOfStream-Eigenschaft

Gibt true zurück, wenn sich der Dateizeiger am Ende einer TextStream-Datei befindet. Sie gibt false zurück, wenn dem nicht so ist. Schreibgeschützt.

Objekt.AtEndOfStream

Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Die AtEndOfStream-Eigenschaft kann nur auf zum Lesen geöffnete TextStream-Dateien angewendet werden, andernfalls tritt ein Fehler auf.

Der folgende Code veranschaulicht die Verwendung der AtEndOfStream-Eigenschaft:

[JScript]
function HoleZeilen(dateiAngabe)
{
   var fso, f, s, ForReading;
   ForReading = 1, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.OpenTextFile(dateiAngabe, ForReading, false);
   while (!f.AtEndOfStream)
      s += f.ReadLine( );
   f.Close( );
   return(s);
}
[VBScript]
Function GanzeDateiLesen(dateiAngabe)
   Const ForReading = 1
   Dim fso, dieDatei, Rueckgabe
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dieDatei = fso.OpenTextFile(dateiAngabe, ForReading, False)
   Do While dieDatei.AtEndOfStream <> True
      Rueckgabe = dieDatei.ReadLine
   Loop
   dieDatei.Close
   GanzeDateiLesen = Rueckgabe
End Function

Siehe auch

AtEndOfLine-Eigenschaft

Betrifft: TextStream-Objekt


Attributes-Eigenschaft

Legt die Attribute von Dateien bzw. Ordnern fest oder gibt sie zurück. Je nach Attribut Lesen/Schreiben oder schreibgeschützt.

Objekt.Attributes [= NeueAttribute]

Argumente

Objekt
Erforderlich. Stets der Name eines File- oder Folder-Objekts.
NeueAttribute
Optional. Falls angegeben, ist NeueAttribute der neue Wert für die Attribute des angegebenen Objekts.

Einstellungen

Das Argument NeueAttribute kann jeden der folgenden Werte bzw. beliebige sinnvolle Kombinationen der folgenden Werte aufweisen:

Konstante | Wert | Beschreibung
Normal | 0 | Normale Datei. Es sind keine Attribute gesetzt.
ReadOnly | 1 | Schreibgeschützte Datei. Für das Attribut gilt Lesen/Schreiben.
Hidden | 2 | Versteckte Datei. Für das Attribut gilt Lesen/Schreiben.
System | 4 | Systemdatei. Für das Attribut gilt Lesen/Schreiben.
Volume | 8 | Datenträgerbezeichnung eines Laufwerkes. Das Attribut ist schreibgeschützt.
Directory | 16 | Ordner oder Verzeichnis. Das Attribut ist schreibgeschützt.
Archive | 32 | Datei hat sich nach der letzten Sicherung geändert. Für das Attribut gilt Lesen/Schreiben.
Alias | 64 | Verknüpfung oder Shortcut. Das Attribut ist schreibgeschützt.
Compressed | 128 | Komprimierte Datei. Das Attribut ist schreibgeschützt.

Hinweise

Der folgende Code verdeutlicht das Verwenden der Attributes-Eigenschaft mit einer Datei:

[JScript]
function ArchiveBitAendern(dateiAngabe)
{
   var fso, f, r, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe)
   if (f.attributes && 32)
   {
      f.attributes = f.attributes - 32;
      s = "Archive-Bit gelöscht.";
   }
   else
   {
      f.attributes = f.attributes + 32;
      s =   "Archive-Bit festgelegt.";
   }
   return(s);
}
[VBScript]
Function ArchiveBitAendern(dateiAngabe)
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   If f.attributes and 32 Then
      f.attributes = f.attributes - 32
      ArchiveBitAendern = "Archive-Bit gelöscht."
   Else
      f.attributes = f.attributes + 32
      ArchiveBitAendern = "Archive-Bit festgelegt."
   End If
End Function

Siehe auch

DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


AvailableSpace-Eigenschaft

Gibt die Größe des Speicherplatzes zurück, der einem Benutzer auf einem angegebenen Laufwerk bzw. Netzlaufwerk zur Verfügung steht.

Objekt.AvailableSpace

Objekt ist stets ein Drive-Objekt.

Hinweise

Der von der AvailableSpace-Eigenschaft zurückgegebene Wert entspricht in der Regel dem von der FreeSpace-Eigenschaft zurückgegebenen Wert. Unterschiede zwischen diesen beiden Eigenschaften können bei Computersystemen auftreten, die Quoten unterstützen.

Der folgende Code veranschaulicht die Verwendung der AvailableSpace-Eigenschaft:

[JScript]
function ZeigeAvailableSpace(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + lwPfad.toUpperCase() + " - ";
   s += d.VolumeName + "<br>";
   s += "Verfügbarer Speicherplatz: " + d.AvailableSpace/1024 + " KB";
   return(s);
}
[VBScript]
Function ZeigeAvailableSpace(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk " & UCase(lwPfad) & " - "
   s = s & d.VolumeName   & "<BR>"
   s = s & "Verfügbarer Speicherplatz: " & FormatNumber(d.AvailableSpace/1024, 0)
   s = s & " KB"
   ZeigeAvailableSpace = s
End Function

Siehe auch

DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


Column-Eigenschaft (FileSystemObject)

Scripting Runtime Library

Column-Eigenschaft

Schreibgeschützte Eigenschaft, die die Spaltennummer der aktuellen Zeichenposition in einer TextStream-Datei zurückgibt.

Objekt.Column

Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Nachdem ein Zeilenumbruchzeichen, jedoch bevor ein anderes Zeichen geschrieben wurde, hat Column den Wert 1.

Das folgende Beispiel veranschaulicht die Verwendung der Column-Eigenschaft:

[JScript]
function HoleSpalte()
{
   var fso, f, m;
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
   f.Write("Hallo Welt");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   m = f.ReadLine();
   return(f.Column);
}
[VBScript]
Function HoleSpalte
   Const ForReading = 1, ForWriting = 2
   Dim fso, f, m
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!"
   f.Close
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   m =   f.ReadLine
   HoleSpalte = f.Column
End Function

Siehe auch

Line-Eigenschaft

Betrifft: TextStream-Objekt


CompareMode-Eigenschaft

Legt den Vergleichsmodus zum Vergleich von Zeichenfolgenschlüsseln in einem Dictionary-Objekt fest und gibt ihn zurück.

Objekt.CompareMode[ = Vergleich]

Argumente

Objekt
Erforderlich. Stets der Name des Dictionary-Objekts.
Vergleich
Optional. Wird Vergleich angegeben, so repräsentiert dieser Wert den Vergleichsmodus. Zulässige Werte sind 0 (Binär), 1 (Text) und 2 (Datenbank). Werte, die größer als 2 sind, können für Verweise auf Vergleiche eingesetzt werden, die bestimmte LCIDs (Locale IDs) verwenden.

Hinweise

Der Versuch, den Vergleichsmodus eines Dictionary-Objekts zu ändern, das bereits Daten enthält, führt zu einem Fehler.

Das folgende Beispiel veranschaulicht die Verwendung der CompareMode-Eigenschaft:

[JScript]
function CompareModeTesten(schluessel)
{
   // Mehrere Variablen erstellen.
   var a, d;
   var BinaerVergleich = 0, TextCompare = 1;
   d = new ActiveXObject("Scripting.Dictionary");
   // Vergleichsmodus auf Text setzen.
   d.CompareMode = TextVergleich;
   // Einige Schlüssel und Elemente hinzufügen
   d.Add("a", "Athen");
   d.Add("b", "Belgrad");
   d.Add("c", "Chicago");
   return(d.Item(schluessel));
}
[VBScript]
Dim d
Set d = CreateObject("Scripting.Dictionary")

d.CompareMode = vbTextCompare
d.Add "a", "Athen"   ' Einige Schlüssel und Elemente hinzufügen.
d.Add "b", "Belgrad"
d.Add "c", "Chicago"
d.Add "B", "Baltimore"   ' Add-Methode schlägt in dieser Zeile fehl, da der
                         ' Buchstabe b bereits im Dictionary vorhanden ist.

Siehe auch

Key-Eigenschaft

Betrifft: Dictionary-Objekt


DateLastAccessed-Eigenschaft

Gibt Datum und Zeitpunkt zurück, an denen auf die angegebene Datei bzw. den angegebenen Ordner zuletzt zugegriffen wurde. Schreibgeschützt.

Objekt.DateLastAccessed

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Eigenschaft DateLastAccessed mit einer Datei:

[JScript]
function ZeigeDateizugriffsInfo(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = dateiAngabe.toUpperCase() + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified;
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = UCase(dateiAngabe) & "<BR>"
   s = s & "Erstellt: " & f.DateCreated & "<BR>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<BR>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function
Anmerkung Das Verhalten dieser Methode hängt von dem verwendeten Betriebssystem ab. Unterstützt dieses keine Zeitinformationen, wird nichts zurückgegeben.

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


DateLastModified-Eigenschaft

Gibt Datum und Zeitpunkt zurück, an denen die angegebene Datei bzw. der angegebene Ordner zuletzt geändert wurde. Schreibgeschützt.

Objekt.DateLastModified

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der DateLastModified-Eigenschaft mit einer Datei:

[JScript]
function ZeigeDateiZugriffsInfo(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = dateiAngabe.toUpperCase() + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified;
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = UCase(dateiAngabe) & "<BR>"
   s = s & "Erstellt: " & f.DateCreated & "<BR>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<BR>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


Drive-Eigenschaft

Gibt den Buchstaben des Laufwerkes zurück, auf dem sich die angegebene Datei bzw. der angegebene Ordner befindet. Schreibgeschützt.

Objekt.Drive

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Drive-Eigenschaft:

[JScript]
function ZeigeDateizugriffsInfo(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = f.Name + " auf Laufwerk " + f.Drive + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified;
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = f.Name & " auf Laufwerk " & UCase(f.Drive) & "<BR>"
   s = s & "Erstellt: " & f.DateCreated & "<BR>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<BR>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


DriveLetter-Eigenschaft

Gibt den Laufwerkbuchstaben eines physischen lokalen Laufwerkes oder eines Netzlaufwerkes zurück. Schreibgeschützt.

Objekt.DriveLetter

Objekt ist stets ein Drive-Objekt.

Hinweise

Die DriveLetter-Eigenschaft gibt eine Nulllängenzeichenfolge ("") zurück, wenn das angegebene Laufwerk nicht mit einem Laufwerkbuchstaben verknüpft ist, z. B. wenn einem Netzlaufwerk kein Laufwerkbuchstabe zugeordnet wurde.

Der folgende Code veranschaulicht die Verwendung der DriveLetter-Eigenschaft:

[JScript]
function ZeigeDriveLetter(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + d.DriveLetter.toUpperCase( ) + ": - ";
   s += d.VolumeName + "<br>";
   s += "Verfügbarer Speicherplatz: " + d.AvailableSpace/1024 + " KB";
   return(s);
}
[VBScript]
Function ZeigeDriveLetter(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk " & d.DriveLetter & ": - "
   s = s & d.VolumeName   & "<BR>"
   s = s & "Freier Speicherplatz: " & FormatNumber(d.FreeSpace/1024, 0)
   s = s & " KB"
   ZeigeDriveLetter = s
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


Drives-Eigenschaft

Gibt eine Drives-Auflistung zurück, die alle auf dem lokalen Computer verfügbaren Drive-Objekte enthält.

Objekt.Drives

Objekt ist stets ein FileSystemObject.

Hinweise

In Laufwerken mit austauschbaren Datenträgern muss kein Datenträger eingelegt sein, damit diese in der Drives-Auflistung angezeigt werden.

[JScript]

Sie können die Elemente der Drives-Auflistung mit dem Enumerator-Objekt und der for-Anweisung durchlaufen:

[JScript]
function ZeigeLaufwerkliste()
{
   var fso, s, n, e, x;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);
   s = "";
   for (; !e.atEnd(); e.moveNext())
   {
      x = e.item();
      s = s + x.DriveLetter;
      s += " - ";
      if (x.DriveType == 3)
         n = x.ShareName;
      else if (x.IsReady)
         n = x.VolumeName;
      else
         n = "[Laufwerk nicht bereit]";
      s +=  n + "<br>";
   }
   return(s);
}

[VBScript]

Sie können die Elemente der Drives-Auflistung mit einem For Each...Next-Konstrukt durchlaufen, wie im folgenden Code veranschaulicht:

[VBScript]
Function ZeigeLaufwerkliste
   Dim fso, d, dc, s, n
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dc = fso.Drives
   For Each d in dc
      n = ""
      s = s & d.DriveLetter & " - "
      If d.DriveType = 3 Then
         n = d.ShareName
      ElseIf d.IsReady Then
         n = d.VolumeName
      End If
      s = s & n & "<BR>"
   Next
   ZeigeLaufwerkliste = s
End Function

Siehe auch

Drives-Auflistung | Files-Eigenschaft | SubFolders-Eigenschaft

Betrifft: FileSystemObject-Objekt


DriveType-Eigenschaft

Gibt einen Wert zurück, der den Typ des angegebenen Laufwerkes angibt.

Objekt.DriveType

Objekt ist stets ein Drive-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der DriveType-Eigenschaft:

[JScript]
function ZeigeDriveType(lwPfad)
{
   var fso, d, s, t;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(lwPfad);
   switch (d.DriveType)
   {
      case 0: t = "Unbekannt"; break;
      case 1: t = "Austauschbar"; break;
      case 2: t = "Fest"; break;
      case 3: t = "Netzwerk"; break;
      case 4: t = "CD-ROM"; break;
      case 5: t = "RAM-Laufwerk"; break;
   }
   s = "Laufwerk " + d.DriveLetter + ": - " + t;
   return(s);
}
[VBScript]
Function ZeigeDriveType(lwPfad)
   Dim fso, d, t
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(lwPfad)
   Select Case d.DriveType
      Case 0: t = "Unbekannt"
      Case 1: t = "Austauschbar"
      Case 2: t = "Fest"
      Case 3: t = "Netzwerk"
      Case 4: t = "CD-ROM"
      Case 5: t = "RAM-Laufwerk"
   End Select
   ZeigeDriveType = "Laufwerk " & d.DriveLetter & ": - " & t
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


FileSystem-Eigenschaft

Gibt das für das angegebene Laufwerk verwendete Dateisystem zurück.

Objekt.FileSystem

Objekt ist stets ein Drive-Objekt.

Hinweise

Die möglichen Rückgabetypen sind FAT, NTFS und CDFS.

Der folgende Code veranschaulicht die Verwendung der FileSystem-Eigenschaft:

[JScript]
function ZeigeFileSystemType(lwPfad)
{
   var fso,d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(lwPfad);
   s = d.FileSystem;
   return(s);
}
[VBScript]
Function ZeigeFileSystemType(LWAngabe)
   Dim fso,d
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(LWAngabe)
   ZeigeFileSystemType = d.FileSystem
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


FreeSpace-Eigenschaft

Gibt die Größe des freien Speicherplatzes zurück, der einem Benutzer auf dem angegebenen Laufwerk bzw. Netzlaufwerk zur Verfügung steht. Schreibgeschützt.

Objekt.FreeSpace

Objekt ist stets ein Drive-Objekt.

Hinweise

Der von der FreeSpace-Eigenschaft zurückgegebene Wert entspricht in der Regel dem von der AvailableSpace-Eigenschaft zurückgegebenen Wert. Unterschiede zwischen diesen beiden Eigenschaften können bei Computersystemen auftreten, die Quoten unterstützen.

Der folgende Code veranschaulicht die Verwendung der FreeSpace-Eigenschaft:

[JScript]
function ZeigeFreeSpace(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + lwPfad.toUpperCase( ) + " - ";
   s += d.VolumeName + "<br>";
   s += "Freier Speicherplatz: " + d.FreeSpace/1024 + " KB";
   return(s);
}
[VBScript]
Function ZeigeFreeSpace(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk " & UCase(lwPfad) & " - "
   s = s & d.VolumeName   & "<BR>"
   s = s & "Freier Speicherplatz: " & FormatNumber(d.FreeSpace/1024, 0)
   s = s & " KB"
   ZeigeFreeSpace = s
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


IsReady-Eigenschaft

Gibt true zurück, wenn das angegebene Laufwerk bereit ist. Ist dem nicht so, wird false zurückgegeben.

Objekt.IsReady

Objekt ist stets ein Drive-Objekt.

Hinweise

Bei Laufwerken mit austauschbaren Datenträgern und CD-ROM-Laufwerken gibt IsReady nur dann true zurück, wenn der entsprechende Datenträger eingelegt und zugriffsbereit ist.

Der folgende Code veranschaulicht die Verwendung der IsReady-Eigenschaft:

[JScript]
function ZeigeLWInfo(lwPfad)
{
   var fso, d, s, t;
   fso = new ActiveXObject("Scripting.FileSystemObject")
   d = fso.GetDrive(lwPfad)
   switch (d.DriveType)
   {
      case 0: t = "Unbekannt"; break;
      case 1: t = "Austauschbar"; break;
      case 2: t = "Fest"; break;
      case 3: t = "Netzwerk"; break;
      case 4: t = "CD-ROM"; break;
      case 5: t = "RAM-Laufwerk"; break;
   }
   s = "Laufwerk " + d.DriveLetter + ": - " + t;
   if (d.IsReady)
      s += "<br>" + "Laufwerk ist bereit.";
   else
      s += "<br>" + " Laufwerk ist nicht bereit.";
   return(s);
}
[VBScript]
Function ZeigeLWInfo(lwPfad)
   Dim fso, d, s, t
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(lwPfad)
   Select Case d.DriveType
      Case 0: t = "Unbekannt"
      Case 1: t = "Austauschbar"
      Case 2: t = "Fest"
      Case 3: t = "Netzwerk"
      Case 4: t = "CD-ROM"
      Case 5: t = "RAM-Laufwerk"
   End Select
   s = "Laufwerk " & d.DriveLetter & ": - " & t
   If d.IsReady Then
      s = s & "<BR>" & "Laufwerk ist bereit."
   Else
      s = s & "<BR>" & "Laufwerk ist nicht bereit."
   End If
   ZeigeLWInfo = s
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


IsRootFolder-Eigenschaft

Gibt true zurück, wenn der angegebene Ordner der Stammordner ist. Gibt false zurück, wenn dem nicht so ist.

Objekt.IsRootFolder

Objekt ist stets ein Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der IsRootFolder-Eigenschaft:

[JScript]
function PfadTiefeAnzeigen(ordnerAngabe)
{
   var fso, f, n, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   n = 0;
   if (f.IsRootFolder)
      s = "Der angegebene Ordner ist der Stammordner."
   else
   {
      do
      {
         f = f.ParentFolder;
         n++;
      }
      while (!f.IsRootFolder)
      s = " Der angegebene Ordner ist " + n + " Ebene(n) tief geschachtelt."
   }
   return(s);
}
[VBScript]
Function PfadTiefeAnzeigen(ordnerAngabe)
   Dim fso, f, n
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   If f.IsRootFolder Then
      PfadTiefeAnzeigen = "Der angegebene Ordner ist der Stammordner."
   Else
      Do Until f.IsRootFolder
         Set f = f.ParentFolder
         n = n + 1
      Loop
      PfadTiefeAnzeigen = "Der angegebene Ordner ist " & n & " Ebene(n) tief geschachtelt."
   End If
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: Folder-Objekt


Line-Eigenschaft

Schreibgeschützte Eigenschaft, die die aktuelle Zeilennummer in einer TextStream-Datei zurückgibt.

Objekt.Line

Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Nach dem unmittelbaren Öffnen einer Datei und vor Schreibzugriffen hat Line den Wert 1.

Das folgende Beispiel veranschaulicht die Verwendung der Line-Eigenschaft:

[JScript]
function HoleZeile()
{
   var fso, f, r
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject")
   f = fso.OpenTextFile("c:\\text.txt", ForWriting, true)
   f.WriteLine("Hallo Welt");
   f.WriteLine("JScript ist klasse!");
   f.Close();
   f = fso.OpenTextFile("c:\\text.txt", ForReading);
   r =   f.ReadAll();
   return(f.Line);
}
[VBScript]
Function HoleZeile
   Const ForReading = 1, ForWriting = 2
   Dim fso, f, ra
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!" & vbCrLf & "VBScript ist klasse!" & vbCrLf
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   ra =   f.ReadAll
   HoleZeile = f.Line
End Function

Siehe auch

Column-Eigenschaft

Betrifft: TextStream-Objekt


Name-Eigenschaft

Setzt den Namen einer angegebenen Datei bzw. eines angegebenen Ordners oder gibt diesen zurück. Lesen/Schreiben.

Objekt.Name [= NeuerName]

Argumente

Objekt
Erforderlich. Stets der Name eines File- oder Folder-Objekts.
NeuerName
Optional. Falls angegeben, ist NeuerName der neue Name des angegebenen Objekts.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Name-Eigenschaft:

[JScript]
function ZeigeDateizugriffsInfo(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = f.Name + " auf Laufwerk " + f.Drive + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified;
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = f.Name & " auf Laufwerk " & UCase(f.Drive) & "<BR>"
   s = s & "Erstellt: " & f.DateCreated & "<BR>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<BR>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


ParentFolder-Eigenschaft

Gibt ein Ordnerobjekt zurück, das den übergeordneten Ordner der angegebenen Datei bzw. des angegebenen Ordners repräsentiert. Schreibgeschützt.

Objekt.ParentFolder

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der ParentFolder-Eigenschaft mit einer Datei:

[JScript]
function ZeigeDateizugriffsInfo(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = f.Name + " in " + f.ParentFolder + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified;
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = UCase(f.Name) & " in " & UCase(f.ParentFolder) & "<BR>"
   s = s & "Erstellt: " & f.DateCreated & "<BR>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<BR>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


Path-Eigenschaft (FileSystemObject)

Scripting Runtime Library

Path-Eigenschaft

Gibt den Pfad einer angegebenen Datei bzw. eines angegebenen Ordners oder Laufwerkes zurück.

Objekt.Path

Objekt ist stets ein File-, Folder- oder Drive-Objekt.

Hinweise

Bei Laufwerkbuchstaben wird der Stammordner nicht mit angegeben. Der Pfad für das Laufwerk C ist also C: und nicht C:\.

Der folgende Code veranschaulicht die Verwendung der Path-Eigenschaft mit einem File-Objekt:

[JScript]
function ZeigeDateizugriffsInfo(dateiAngabe)
{
   var fso, d, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = f.Path.toUpperCase() + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified;
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, d, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = UCase(f.Path) & "<BR>"
   s = s & "Erstellt: " & f.DateCreated & "<BR>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<BR>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function

Siehe auch

Attributes-Eigenschaft | AvailableSpace-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | Files-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | TotalSize-Eigenschaft | Type-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt | File-Objekt | Folder-Objekt


RootFolder-Eigenschaft

Gibt ein Folder-Objekt zurück, das den Stammordner eines angegebenen Laufwerkes darstellt. Schreibgeschützt.

Objekt.RootFolder

Objekt ist stets ein Drive-Objekt.

Hinweise

Mithilfe des zurückgegebenen Folder-Objekts kann auf alle Dateien und Ordner auf diesem Laufwerk zugegriffen werden.

Der folgende Code veranschaulicht die Verwendung der RootFolder-Eigenschaft:

[JScript]
function ZeigeRootFolder(lw)
{
   var fso,d;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.DriveExists(lw))
      {
         d = fso.GetDrive(lw);
         return(d.RootFolder);
      }
   else
      return(false);
}
[VBScript]
Function ZeigeRootFolder(LWAngabe)
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetDrive(LWAngabe)
   ZeigeRootFolder = f.RootFolder
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


SerialNumber-Eigenschaft (FileSystemObject)

Scripting Runtime Library

SerialNumber-Eigenschaft

Gibt die dezimale Seriennummer zurück, mit der ein Datenträger eindeutig gekennzeichnet wird.

Objekt.SerialNumber

Das Objekt ist stets ein Drive-Objekt.

Hinweise

Mithilfe der SerialNumber-Eigenschaft können Sie sicherstellen, dass der richtige Datenträger in ein Laufwerk mit austauschbaren Datenträgern eingelegt ist.

Der folgende Code veranschaulicht die Verwendung der SerialNumber-Eigenschaft:

[JScript]
function ZeigeLWInfo(lwPfad){
  var fso, d, s, t;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(lwPfad)));
  switch (d.DriveType)
  {
    case 0: t = "Unbekannt"; break;
    case 1: t = "Austauschbar"; break;
    case 2: t = "Fest"; break;
    case 3: t = "Netzwerk"; break;
    case 4: t = "CD-ROM"; break;
    case 5: t = "RAM-Laufwerk"; break;
  }
  s = "Laufwerk " + d.DriveLetter + ": - " + t;
  s += "<br>" + "SN: " + d.SerialNumber;
  return(s);
}
[VBScript]
Function ZeigeLWInfo(lwPfad)
   Dim fso, d, s, t
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(lwPfad)))
   Select Case d.DriveType
      Case 0: t = "Unbekannt"
      Case 1: t = "Austauschbar"
      Case 2: t = "Fest"
      Case 3: t = "Netzwerk"
      Case 4: t = "CD-ROM"
      Case 5: t = "RAM-Laufwerk"
   End Select
   s = "Laufwerk " & d.DriveLetter & ": - " & t
   s = s & "<BR>" & "SN: " & d.SerialNumber
   ZeigeLWInfo = s
End Function


ShareName-Eigenschaft

Gibt den Netzwerkfreigabenamen eines angegebenen Laufwerkes zurück.

Objekt.ShareName

Objekt ist stets ein Drive-Objekt.

Hinweise

Falls Objekt kein Netzlaufwerk ist, gibt die Eigenschaft ShareName eine Nulllängenzeichenfolge zurück ("").

Der folgende Code veranschaulicht die Verwendung der Eigenschaft ShareName:

[JScript]
function ZeigeLWInfo(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(lwPfad)));
   s = "Laufwerk " + d.DriveLetter + ": - " + d.ShareName;
   return(s);
}
[VBScript]
Function ZeigeLWInfo(lwPfad)
   Dim fso, d
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(lwPfad)))
   ZeigeLWInfo = "Laufwerk " & d.DriveLetter & ": - " & d.ShareName
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


ShortName-Eigenschaft

Gibt den Kurznamen zurück, der von Programmen verwendet wird, für die die frühere 8.3-Benennungskonvention erforderlich ist.

Objekt.ShortName

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Eigenschaft ShortName mit einem File-Objekt:

[JScript]
function ZeigeShortName(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = "Der Kurzname für " + "" + f.Name;
   s += "" + "<br>";
   s += "ist: " + "" + f.ShortName + "";
   return(s);
}
[VBScript]
Function ZeigeShortName(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = "Der Kurzname für "   & UCase(f.Name) & "<BR>"
   s = s & "ist: " & f.ShortName
   ZeigeShortName = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


ShortPath-Eigenschaft

Gibt den Kurzpfad zurück, der von Programmen verwendet wird, für die die frühere 8.3-Benennungskonvention erforderlich ist.

Objekt.ShortPath

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Eigenschaft ShortPath mit einem File-Objekt:

[JScript]
function ZeigeShortPath(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = "Der Kurzpfad für " + "" + f.Name;
   s += "" + "<br>";
   s += "ist: " + "" + f.ShortPath + "";
   return(s);
}
[VBScript]
Function ZeigeShortName(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = "Der Kurzname für "   & UCase(f.Name) & "<BR>"
   s = s & "ist: " & f.ShortName
   ZeigeShortName = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


Size-Eigenschaft

Gibt für Dateien die Größe (in Byte) der angegebenen Datei zurück. Gibt für Ordner die Größe (in Byte) aller in dem Ordner und dessen untergeordneten Ordner enthaltenen Dateien zurück.

Objekt.Size

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Size-Eigenschaft mit einem Folder-Objekt:

[JScript]
function ZeigeOrdnerGroesse(ordnerAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   s = f.Name + " belegt " + f.size + " Byte.";
   return(s);
}
[VBScript]
 Function ZeigeOrdnerGroesse(ordnerAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   s = UCase(f.Name) & " belegt " & f.size & " Byte."
   ZeigeOrdnerGroesse = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


SubFolders-Eigenschaft

Gibt eine Folders-Auflistung zurück, die alle Ordner in dem angegebenen Ordner einschließlich derjenigen enthält, deren Attribute "Hidden" (Versteckt) und/oder "System" gesetzt sind.

Objekt.SubFolders

Objekt ist stets ein Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der SubFolders-Eigenschaft:

[JScript]
function ZeigeOrdnerListe(ordnerAngabe)
{
   var fso, f, fc, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   fc = new Enumerator(f.SubFolders);
   s = "";
   for (;!fc.atEnd(); fc.moveNext())
      {
         s += fc.item();
         s += "<br>";
      }
      return(s);
}
[VBScript]
Function ZeigeOrdnerliste(ordnerAngabe)
   Dim fso, f, f1, s, sf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   Set sf = f.SubFolders
   For Each f1 in sf
      s = s & f1.name
      s = s & "<BR>"
   Next
   ZeigeOrdnerliste = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | Type-Eigenschaft

Betrifft: Folder-Objekt


TotalSize-Eigenschaft

Gibt den gesamten Speicherplatz (in Byte) eines Laufwerkes oder Netzlaufwerkes zurück.

Objekt.TotalSize

Objekt ist stets ein Drive-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der TotalSize-Eigenschaft:

[JScript]
function PlatzBericht(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + lwPfad + " - " ;
   s += d.VolumeName + "<br>";
   s += "Gesamt-Speicherplatz: "+ d.TotalSize/1024 + " KB <br>";
   s += "Freier Speicherplatz:   " + d.FreeSpace/1024 + " KB";
   return(s);
}
[VBScript]
Function PlatzBericht(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(lwPfad)))
   s = "Laufwerk " & d.DriveLetter & ":"
   s = s & vbCrLf
   s = s & "Gesamt-Speicherplatz: " & FormatNumber(d.TotalSize/1024, 0) & " KB"
   s = s & vbCrLf
   s = s & "Verfügbar: " & FormatNumber(d.AvailableSpace/1024, 0) & " KB"
   PlatzBericht = s
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | VolumeName-Eigenschaft

Betrifft: Drive-Objekt


Type-Eigenschaft

Gibt Informationen zum Datei- oder Ordnertyp zurück. Beispielsweise wird für Dateien mit der Endung .TXT "Textdatei" zurückgegeben.

Objekt.Type

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Type-Eigenschaft für die Bestimmung des Typs eines Ordners. Geben Sie in diesem Beispiel für die Prozedur den Pfad des Papierkorbs oder eines anderen eindeutigen Ordners an.

[JScript]
function ZeigeDateityp(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.FolderExists(dateiAngabe))
      f = fso.GetFolder(dateiAngabe);
   else if (fso.FileExists(dateiAngabe))
      f = fso.GetFile(dateiAngabe);
   else
      s = "Datei oder Ordner existiert nicht.";
   s = f.Name + " ist ein(e) " + f.Type;
   return(s);
}
[VBScript]
Function ZeigeOrdnertyp(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   s = UCase(f.Name) & " ist ein(e) " & f.Type
   ZeigeOrdnertyp = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


VolumeName-Eigenschaft

Setzt den Datenträgernamen des angegebenen Laufwerkes bzw. gibt diesen zurück. Lesen/Schreiben.

Objekt.VolumeName [= NeuerName]

Argumente

Objekt
Erforderlich. Stets der Name eines Drive-Objekts.
NeuerName
Optional. Falls angegeben, ist NeuerName der neue Name des angegebenen Objekts.

Hinweise

Der folgende Code veranschaulicht die Verwendung der VolumeName-Eigenschaft:

[JScript]
function PlatzBericht(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + lwPfad + " - " ;
   s += d.VolumeName + "<br>";
   s += "Gesamt-Speicherplatz: "+ d.TotalSize/1024 + " KB <br>";
   s += "Freier Speicherplatz:   " + d.FreeSpace/1024 + " KB";
   return(s);
}
[VBScript]
Function ZeigeDatentraegerInfo(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(lwPfad)))
   s = "Laufwerk " & d.DriveLetter & ": - " & d.VolumeName
   ZeigeDatentraegerInfo = s
End Function

Siehe auch

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft

Betrifft: Drive-Objekt


FileSystemObject-Methoden

In diesem Abschnitt

Add-Methode (Dictionary)
Fügt ein Schlüssel/Element-Paar zu einem Dictionary-Objekt hinzu.
Add-Methode (Folders)
Fügt einen neuen Ordner zu einer Folders-Auflistung hinzu.
BuildPath-Methode
Fügt einen Namen an einen vorhandenen Pfad an.
Close-Methode
Schließt eine geöffnete TextStream-Datei.
Copy-Methode
Kopiert eine angegebene Datei bzw. einen angegebenen Ordner aus einem Speicherort in einen anderen.
CopyFile-Methode
Kopiert eine Datei oder mehrere Dateien von einem Speicherort in einen anderen.
CopyFolder-Methode
Kopiert rekursiv einen Ordner von einem Speicherort in einen anderen.
CreateFolder-Methode
Erstellt einen Ordner.
CreateTextFile-Methode
Erstellt eine Datei mit dem angegebenen Namen und gibt ein TextStream-Objekt für Schreib- und Lesezugriffe auf die Datei zurück.
Delete-Methode
Löscht eine angegebene Datei bzw. einen angegebenen Ordner.
DeleteFile-Methode
Löscht eine angegebene Datei.
DeleteFolder-Methode
Löscht einen angegebenen Ordner samt Inhalt.
DrivesExists-Methode
Gibt true zurück, wenn das angegebene Laufwerk vorhanden ist, andernfalls false.
Exists-Methode
Gibt true zurück, wenn ein angegebener Schlüssel in einem Dictionary-Objekt vorhanden ist. Gibt false zurück, wenn dies nicht zutrifft.
FileExists-Methode
Gibt true zurück, wenn die angegebene Datei existiert. Gibt false zurück, wenn dies nicht zutrifft.
FolderExists-Methode
Gibt true zurück, wenn der angegebene Ordner existiert. Gibt false zurück, wenn dies nicht zutrifft.
GetAbsolutePathName-Methode
Gibt aus einer angegebenen Pfadangabe einen vollständigen und eindeutigen Pfad zurück.
GetBaseName-Methode
Gibt eine Zeichenfolge zurück, die den Basisnamen der letzten Komponente (ohne Dateinamenerweiterung) eines Pfades enthält.
GetDrive-Methode
Gibt ein Drive-Objekt zurück, das dem Laufwerk eines angegebenen Pfades entspricht.
GetDriveName-Methode
Gibt eine Zeichenfolge zurück, die den Namen des Laufwerkes in einem angegebenen Pfad enthält.
GetExtensionName-Methode
Gibt eine Zeichenfolge zurück, die den Erweiterungsnamen der letzten Komponente eines Pfades enthält.
GetFile-Methode
Gibt ein File-Objekt zurück, das der Datei in einem angegebenen Pfad entspricht.
GetFileName-Methode
Gibt die letzte Komponente des angegebenen Pfades zurück, die nicht Teil der Laufwerkangabe ist.
GetFileVersion-Methode
Gibt die Versionsnummer einer angegebenen Datei zurück.
GetFolder-Methode
Gibt ein Folder-Objekt zurück, das dem Ordner in einem angegebenen Pfad entspricht.
GetParentFolderName-Methode
Gibt eine Zeichenfolge zurück, die den Namen des übergeordneten Ordners der letzten Komponente in einem angegebenen Pfad enthält.
GetSpecialFolder-Methode
Gibt das angegebene Sonderordnerobjekt zurück.
GetTempName-Methode
Gibt einen nach dem Zufallsprinzip erstellten Namen einer temporären Datei bzw. eines temporären Ordners zurück, die bzw. der nützlich beim Ausführen von Operationen ist, die eine temporäre Datei oder einen temporären Ordner erfordern.
Items-Methode
Gibt ein Array zurück, das alle Elemente eines Dictionary-Objekts enthält.
Keys-Methode
Gibt ein Array mit allen vorhandenen Schlüsseln in einem Dictionary-Objekt zurück.
Move-Methode
Verschiebt eine angegebene Datei bzw. einen angegebenen Ordner aus einem Speicherort in einen anderen.
MoveFile-Methode
Verschiebt eine Datei oder mehrere Dateien aus einem Speicherort in einen anderen.
MoveFolder-Methode
Verschiebt einen oder mehrere Ordner aus einem Speicherort in einen anderen.
OpenAsTextStream-Methode
Öffnet eine angegebene Datei und gibt ein TextStream-Objekt zum Lesen aus der Datei, Schreiben in die Datei oder Anfügen an die Datei zurück.
OpenTextFile-Methode
Öffnet eine angegebene Datei und gibt ein TextStream-Objekt zum Lesen aus der Datei, Schreiben in die Datei oder Anfügen an die Datei zurück.
Read-Methode
Liest eine angegebene Anzahl von Zeichen aus einer TextStream-Datei und gibt die daraus resultierende Zeichenfolge zurück.
ReadAll-Methode
Liest eine ganze TextStream-Datei und gibt die daraus resultierende Zeichenfolge zurück.
ReadLine-Methode
Liest eine ganze Zeile (bis zum Zeilenumbruchzeichen, aber nicht dieses Zeichen selbst) aus einer TextStream-Datei und gibt die daraus resultierende Zeichenfolge zurück.
Remove-Methode
Entfernt ein Element/Schlüssel-Paar aus einem Dictionary-Objekt.
RemoveAll-Methode
Entfernt alle Element/Schlüssel-Paare aus einem Dictionary-Objekt.
Skip-Methode
Überspringt beim Lesen einer TextStream-Datei eine angegebene Anzahl von Zeichen.
SkipLine-Methode
Überspringt beim Lesen einer TextStream-Datei die nächste Zeile.
Write-Methode
Schreibt eine angegebene Zeichenfolge in eine TextStream-Datei.
WriteBlankLines-Methode
Schreibt eine angegebene Anzahl von Zeilenumbruchzeichen in eine TextStream-Datei.
WriteLine-Methode
Schreibt eine angegebene Zeichenfolge und ein Zeilenumbruchzeichen in eine TextStream-Datei.

Verwandte Abschnitte

Scripting-Laufzeitreferenz
Liste von Elementen, aus denen die Scripting-Laufzeitreferenz besteht.
FileSystemObject-Grundlagen
Ein Leitfaden der Grundlagen des FileSystemObject-Objekts.


Add-Methode (Folders)

Fügt der Folders-Auflistung einen neuen Ordner hinzu.

Objekt.Add(Ordnername)

Argumente

Objekt
Erforderlich. Stets der Name einer Folders-Auflistung.
Ordnername
Erforderlich. Der Name des neuen hinzuzufügenden Ordners.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der Add-Methode zum Erstellen eines neuen Ordners.

[JScript]
function NeuenOrdnerHinzufuegen(pfad,ordnerName)
{
   var fso, f, fc, nf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(pfad);
   fc = f.SubFolders;
   if (ordnerName != "" )
      nf = fc.Add(ordnerName);
   else
      nf = fc.Add("Neuer Ordner");
}
[VBScript]
Sub NeuenOrdnerHinzufuegen(pfad, ordnerName)
   Dim fso, f, fc, nf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(pfad)
   Set fc = f.SubFolders
   If ordnerName <> "" Then
      Set nf = fc.Add(ordnerName)
   Else
      Set nf = fc.Add("Neuer Ordner")
   End If
End Sub

Falls Ordnername bereits existiert, tritt ein Fehler auf.

Siehe auch

Add-Methode (Dictionary)

Betrifft: Folders-Auflistung


BuildPath-Methode

Hängt an einen vorhandenen Pfad einen Namen an.

Objekt.BuildPath(Pfad, Name)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfad
Erforderlich. Vorhandener Pfad, an den Name angehängt wird. Der Pfad kann absolut oder relativ sein und muss keinen existierenden Ordner angeben.
Name
Erforderlich. Name, der an den vorhandenen Pfad angehängt wird.

Hinweise

Die BuildPath-Methode fügt nur bei Bedarf ein zusätzliches Pfadtrennzeichen zwischen dem vorhandenen Pfad und dem Namen ein.

Das folgende Beispiel illustriert die Verwendung der BuildPath-Methode.

[JScript]
function ZeigeBuildPath(pfad)
{
   var fso, neuerPfad;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   neuerPfad = fso.BuildPath(pfad, "Neuer   Ordner");
   return(neuerPfad);
}
[VBScript]
Function ZeigeBuildPath(pfad)
   Dim fso, neuerPfad
   Set fso = CreateObject("Scripting.FileSystemObject")
   neuerPfad = fso.BuildPath(pfad, "Unterordner")
   ZeigeBuildPath = neuerPfad
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFileName-Methode | GetParentFolderName-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


Close-Methode (FileSystemObject)

Scripting Runtime Library

Close-Methode

Schließt eine geöffnete TextStream-Datei.

Objekt.Close( );

Das Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der Close-Methode.

[JScript]
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.CreateTextFile("c:\\testdatei.txt", true);
a.WriteLine("Dies ist ein Test.");
a.Close();
[VBScript]
Sub ErstelleEineDatei
   Dim fso, MeineDatei
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MeineDatei = fso.CreateTextFile("c:\testdatei.txt", True)
   MeineDatei.WriteLine("Dies ist ein Test.")
   MeineDatei.Close
End Sub


Copy-Methode

Kopiert eine angegebene Datei bzw. einen angegebenen Ordner aus einem Speicherort in einen anderen.

Objekt.Copy(Ziel[, Überschreiben])

Argumente

Objekt
Erforderlich. Stets der Name eines File- oder Folder-Objekts.
Ziel
Erforderlich. Ziel, in das die Datei oder der Ordner kopiert werden soll. Platzhalterzeichen sind nicht zulässig.
Überschreiben
Optional. Boolescher Wert, der true (Standard) ist, wenn vorhandene Dateien oder Ordner überschrieben werden sollen, andernfalls false.

Hinweise

Die Copy-Methode bewirkt bei einer Datei oder einem Ordner letztlich dasselbe wie mit FileSystemObject.CopyFile bzw. FileSystemObject.CopyFolder durchgeführte Operationen, bei denen die Datei oder der Ordner, auf die Objekt verweist, als Argument übergeben wird. Beachten Sie jedoch, dass bei diesen alternativen Methoden mehrere Dateien bzw. Ordner kopiert werden können.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der Copy-Methode.

[JScript]
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testdatei.txt", true);
f.WriteLine("Dies ist ein Test.");
f.Close();
f = fso.GetFile("c:\\testdatei.txt");
f.Copy("c:\\windows\\desktop\\test2.txt");
[VBScript]
Dim fso, MeineDatei
Set fso = CreateObject("Scripting.FileSystemObject")
Set MeineDatei = fso.CreateTextFile("c:\testdatei.txt", True)
MeineDatei.WriteLine("Dies ist ein Test.")
MeineDatei.Close
Set MeineDatei = fso.GetFile("c:\testdatei.txt")
MeineDatei.Copy ("c:\windows\desktop\test2.txt")

Siehe auch

CopyFile-Methode | CopyFolder-Methode | Delete-Methode | Move-Methode | OpenAsTextStream-Methode

Betrifft: File-Objekt | Folder-Objekt


CopyFile-Methode

Kopiert eine Datei oder mehrere Dateien von einem Speicherort in einen anderen.

Objekt.CopyFile( Quelle, Ziel [, Überschreiben] )

Argumente

Objekt
Erforderlich. Objekt ist stets der Name eines FileSystemObject-Objekts.
Quelle
Erforderlich. Zeichenfolge zur Angabe der zu kopierenden Dateien. Darf Platzhalterzeichen enthalten.
Ziel
Erforderlich. Zeichenfolge zur Angabe des Ziels, in das die Datei(en) aus Quelle kopiert werden soll(en). Platzhalterzeichen sind nicht erlaubt.
Überschreiben
Optional. Boolescher Wert, der angibt, ob vorhandene Dateien überschrieben werden sollen. Ist dieser true, werden vorhandene Dateien überschrieben, ist er false, werden sie nicht überschrieben. Der Standardwert ist true. Beachten Sie, dass CopyFile fehlschlägt, wenn für Ziel das Schreibschutzattribut gesetzt ist. Dabei ist der Wert von Überschreiben nicht relevant.

Hinweise

Platzhalterzeichen dürfen nur in der letzten Pfadkomponente des Arguments Quelle verwendet werden. Dies ist z. B. erlaubt:

[JScript]
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\Eigene Dateien\\Briefe\\*.doc", "c:\\temp\\")
[VBScript]
FileSystemObject.CopyFile "c:\Eigene Dateien\Briefe\*.doc", "c:\temp\"

Dies hingegen nicht:

[JScript]
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\Eigene Dateien\\*\\R1???97.xls ", "c:\\temp")
[VBScript]
FileSystemObject.CopyFile "c:\Eigene Dateien\*\R1???97.xls", "c:\temp"

Wenn Quelle Platzhalterzeichen enthält oder Ziel mit einem Pfadtrennzeichen endet (\), wird angenommen, dass Ziel ein vorhandener Ordner ist, in den die übereinstimmenden Dateien kopiert werden. Andernfalls ist Ziel der Name einer zu erstellenden Datei. Folgende drei Situationen können eintreten, wenn eine einzelne Datei kopiert wird.

  • Falls Ziel nicht vorhanden ist, wird Quelle kopiert. Dies ist der Normalfall.
  • Falls Ziel eine vorhandene Datei ist, tritt ein Fehler auf, wenn Überschreiben auf false gesetzt ist. Andernfalls wird versucht, Quelle über die vorhandene Datei zu kopieren.
  • Falls Ziel ein Verzeichnis ist, tritt ein Fehler auf.

Es kommt weiterhin zu einem Fehler, wenn eine Quelle mit Platzhalterzeichen mit keiner der Dateien übereinstimmt. Die CopyFile-Methode wird beim ersten auftretenden Fehler abgebrochen. Vor dem Fehler durchgeführte Änderungen werden nicht rückgängig gemacht.

Siehe auch

Copy-Methode | CopyFolder-Methode | CreateTextFile-Methode | DeleteFile-Methode | MoveFile-Methode

Betrifft: FileSystemObject-Objekt


CopyFolder-Methode

Kopiert rekursiv einen Ordner von einem Speicherort in einen anderen.

Objekt.CopyFolder( Quelle, Ziel[, Überschreiben] );

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Quelle
Erforderlich. Zeichenfolge zur Angabe der zu kopierenden Ordner. Darf Platzhalterzeichen enthalten.
Ziel
Erforderlich. Zeichenfolge zur Angabe des Ziels, in das die Ordner und untergeordneten Ordner aus der Quelle kopiert werden sollen. Platzhalterzeichen sind nicht erlaubt.
Überschreiben
Optional. Boolescher Wert, der angibt, ob vorhandene Ordner überschrieben werden sollen. Ist dieser true, werden vorhandene Dateien überschrieben, ist er false, werden sie nicht überschrieben. Der Standardwert ist true.

Hinweise

Platzhalterzeichen dürfen nur in der letzten Pfadkomponente des Arguments Quelle verwendet werden. Dies ist z. B. erlaubt:

[JScript]
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\Eigene Dateien\\Briefe\\*", "c:\\temp\\")
[VBScript]
FileSystemObject.CopyFolder "c:\Eigene Dateien\Briefe\*", "c:\temp\"

Dies hingegen nicht:

[JScript]
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\Eigene Dateien\\*\\*", "c:\\temp\\")
[VBScript]
FileSystemObject.CopyFolder "c:\Eigene Dateien\*\*", "c:\temp\"

Wenn Quelle Platzhalterzeichen enthält oder Ziel mit einem Pfadtrennzeichen endet (\), wird angenommen, dass Ziel ein vorhandener Ordner ist, in den die übereinstimmenden Ordner und untergeordneten Ordner kopiert werden. Andernfalls ist Ziel der Name eines zu erstellenden Ordners. Folgende vier Situationen können eintreten, wenn ein einzelner Ordner kopiert wird.

  • Falls Ziel nicht vorhanden ist, wird Quelle mit seinem vollständigen Inhalt kopiert. Dies ist der Normalfall.
  • Falls Ziel eine vorhandene Datei ist, tritt ein Fehler auf.
  • Falls Ziel ein Verzeichnis ist, wird versucht, den Ordner mitsamt Inhalt zu kopieren. Falls eine Datei in Quelle bereits in Ziel vorhanden ist, tritt ein Fehler auf, wenn Überschreiben auf false gesetzt ist. Andernfalls wird versucht, Quelle über die vorhandene Datei zu kopieren.
  • Falls Ziel ein schreibgeschütztes Verzeichnis ist, tritt ein Fehler auf, wenn eine vorhandene schreibgeschützte Datei in dieses Verzeichnis kopiert werden soll und Überschreiben auf false gesetzt ist.

Es kommt weiterhin zu einem Fehler, wenn eine Quelle mit Platzhalterzeichen mit keinem der Ordner übereinstimmt.

Die CopyFolder-Methode wird beim ersten auftretenden Fehler abgebrochen. Vor dem Fehler durchgeführte Änderungen werden nicht rückgängig gemacht.

Siehe auch

CopyFile-Methode | Copy-Methode | CreateFolder-Methode | DeleteFolder-Methode | MoveFolder-Methode

Betrifft: FileSystemObject-Objekt


CreateFolder-Methode

Erstellt einen Ordner.

Objekt.CreateFolder(Ordnername)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Ordnername
Erforderlich. Zeichenfolgenausdruck, der den zu erstellenden Ordner bezeichnet.

Hinweise

Ist der angegebene Ordner bereits vorhanden, so tritt ein Fehler auf.

Das folgende Beispiel veranschaulicht die Verwendung der CreateFolder-Methode zum Erstellen eines neuen Ordners.

[JScript]
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateFolder("c:\\Neuer Ordner");
[VBScript]
Function CreateFolderDemo
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.CreateFolder("c:\Neuer Ordner")
   CreateFolderDemo = f.Path
End Function

Siehe auch

CopyFolder-Methode | DeleteFolder-Methode | MoveFolder-Methode

Betrifft: FileSystemObject-Objekt


CreateTextFile-Methode

Erstellt eine Datei mit dem angegebenen Namen und gibt ein TextStream-Objekt für Schreib- und Lesezugriffe auf die Datei zurück.

Objekt.CreateTextFile(Dateiname[, Überschreiben[, Unicode]])

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject- oder Folder-Objekts.
Dateiname
Erforderlich. Zeichenfolgenausdruck, der die zu erstellende Datei bezeichnet.
Überschreiben
Optional. Boolescher Wert, der angibt, ob eine ggf. vorhandene Datei überschrieben werden kann. Dieser hat den Wert true, wenn die Datei überschrieben werden kann, und den Wert false, wenn sie nicht überschrieben werden darf. Ohne Angabe werden vorhandene Dateien nicht überschrieben.
Unicode
Optional. Boolescher Wert, der anzeigt, ob eine Unicode- oder ASCII-Datei erstellt werden soll. Der Wert ist true, wenn die Datei als Unicode-Datei erstellt wird, und false, wenn die Datei als ASCII-Datei erstellt wird. Ohne Angabe wird eine ASCII-Datei erstellt.

Hinweise

Folgende Codezeilen demonstrieren, wie Sie mit der CreateTextFile-Methode eine Datei erstellen und öffnen.

[JScript]
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testdatei.txt", true);
a.WriteLine("Dies ist ein Test.");
a.Close();
[VBScript]
Sub ErstelleEineDatei
   Dim fso, MeineDatei
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MeineDatei = fso.CreateTextFile("c:\testdatei.txt", True)
   MeineDatei.WriteLine("Dies ist ein Test.")
   MeineDatei.Close
End Sub

Hat das Argument Überschreiben den Wert false oder wurde es nicht angegeben, so tritt ein Fehler auf, wenn bereits eine Datei dieses Namens vorhanden ist.

Siehe auch

CreateFolder-Methode | OpenAsTextStream-Methode | OpenTextFile-Methode

Betrifft: FileSystemObject-Objekt | Folder-Objekt


DateCreated-Eigenschaft

Gibt Datum und Zeitpunkt zurück, an denen die angegebene Datei bzw. der angegebene Ordner erstellt wurde. Schreibgeschützt.

Objekt.DateCreated

Objekt ist stets ein File- oder Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der DateCreated-Eigenschaft mit einer Datei:

[JScript]
function ZeigeDateiInfo(dateiAngabe)
{
   var fso, f, s="";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s += "Erstellungsdatum: " + f.DateCreated;
   return(s);
}
[VBScript]
Function ZeigeDateiInfo(dateiAngabe)
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   ZeigeDateiInfo = "Erstellungsdatum: " & f.DateCreated
End Function

Siehe auch

Attributes-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: File-Objekt | Folder-Objekt


Delete-Methode

Löscht eine angegebene Datei bzw. einen angegebenen Ordner.

Objekt.Delete(Erzwingen);

Argumente

Objekt
Erforderlich. Stets der Name eines File- oder Folder-Objekts.
Erzwingen
Optional. Boolescher Wert, der true ist, wenn Dateien oder Ordner mit gesetztem Schreibschutzattribut gelöscht werden sollen. Der Wert ist false (Standard), wenn dem nicht so sein soll.

Hinweise

Ein Fehler tritt auf, wenn die angegebene Datei bzw. der angegebene Ordner nicht vorhanden ist.

Die Ergebnisse der Delete-Methode für eine Datei oder einen Ordner entsprechen denen der Operationen, die mithilfe von FileSystemObject.DeleteFile oder FileSystemObject.DeleteFolder durchgeführt werden.

Die Delete-Methode unterscheidet nicht zwischen Ordnern mit oder ohne Inhalt. Die ausgewählten Ordner werden ungeachtet des Inhalts gelöscht.

Das folgende Beispiel zeigt die Verwendung der Delete-Methode.

[JScript]
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\test.txt", true);
f.WriteLine("Dies ist ein Test.");
f.Close();
f = fso.GetFile("c:\\test.txt");
f.Delete();
[VBScript]
Dim fso, MeineDatei
Set fso = CreateObject("Scripting.FileSystemObject")
Set MeineDatei = fso.CreateTextFile("c:\testdatei.txt", True)
MeineDatei.WriteLine("Dies ist ein Test.")
MeineDatei.Close
Set MeineDatei = fso.GetFile("c:\testdatei.txt")
MeineDatei.Delete

Siehe auch

Copy-Methode | DeleteFile-Methode | DeleteFolder-Methode | Move-Methode | OpenAsTextStream-Methode

Betrifft: File-Objekt | Folder-Objekt


DeleteFile-Methode

Löscht eine angegebene Datei.

Objekt.DeleteFile(Dateiangabe [, Erzwingen]);

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Dateiangabe
Erforderlich. Der Name der zu löschenden Datei. Dateiangabe darf in der letzten Pfadkomponente Platzhalterzeichen enthalten.
Erzwingen
Optional. Boolescher Wert, der true ist, wenn Dateien mit gesetztem Schreibschutzattribut gelöscht werden sollen. Er ist false (Standard), wenn dem nicht so sein soll.

Hinweise

Werden keine übereinstimmenden Dateien gefunden, so tritt ein Fehler auf. Die DeleteFile-Methode wird beim ersten auftretenden Fehler abgebrochen. Vor dem Fehler durchgeführte Änderungen werden nicht rückgängig gemacht.

Das folgende Beispiel veranschaulicht die Verwendung der DeleteFile-Methode.

[JScript]
function DateiLoeschen(dateiAngabe)
{
   var fso;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.DeleteFile(dateiAngabe);
}
[VBScript]
Sub LoescheEineDatei(dateiAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.DeleteFile(dateiAngabe)
End Sub

Siehe auch

CopyFile-Methode | CreateTextFile-Methode | Delete-Methode | DeleteFolder-Methode | MoveFile-Methode

Betrifft: FileSystemObject-Objekt


DeleteFolder-Methode

Löscht einen angegebenen Ordner samt Inhalt.

Objekt.DeleteFolder(Ordnerangabe [, Erzwingen]);

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Ordnerangabe
Erforderlich. Name des zu löschenden Ordners. Ordnerangabe darf in der letzten Pfadkomponente Platzhalterzeichen enthalten.
Erzwingen
Optional. Boolescher Wert, der true ist, wenn Ordner mit gesetztem Schreibschutzattribut gelöscht werden sollen, andernfalls false (Standard).

Hinweise

Die DeleteFolder-Methode unterscheidet nicht zwischen Ordnern mit oder ohne Inhalt. Die ausgewählten Ordner werden ungeachtet des Inhalts gelöscht.

Ein Fehler tritt auf, wenn keine übereinstimmenden Ordner gefunden werden. Die DeleteFolder-Methode wird beim ersten auftretenden Fehler abgebrochen. Vor dem Fehler durchgeführte Änderungen werden nicht rückgängig gemacht.

Das folgende Beispiel zeigt die Verwendung der DeleteFolder-Methode.

[JScript]
function LoescheOrdner(ordnerAngabe)
{
   var fso;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.DeleteFolder(ordnerAngabe)
}
[VBScript]
Sub LoescheEinenOrdner(dateiAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.DeleteFolder(dateiAngabe)
End Sub

Siehe auch

CopyFolder-Methode | CreateFolder-Methode | Delete-Methode | DeleteFile-Methode | MoveFolder-Methode

Betrifft: FileSystemObject-Objekt


DriveExists-Methode

Gibt true zurück, wenn das angegebene Laufwerk vorhanden ist, andernfalls false.

Objekt.DriveExists(Laufwerkangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Laufwerkangabe
Erforderlich. Ein Laufwerkbuchstabe bzw. eine vollständige Pfadangabe.

Hinweise

Bei Laufwerken mit austauschbaren Datenträgern gibt die DriveExists-Methode true zurück, auch wenn kein Datenträger eingelegt ist. Verwenden Sie die IsReady-Eigenschaft des Drive-Objekts, um festzustellen, ob das Laufwerk bereit ist.

Das folgende Beispiel veranschaulicht die Verwendung der DriveExists-Methode.

[JScript]
function LWStatusBerichten(lwPfad)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.DriveExists(lwPfad))
      s += "Laufwerk " + lwPfad + " existiert.";
   else
      s += "Laufwerk " + lwPfad + " existiert nicht.";
   return(s);
}
[VBScript]
Function LWStatusBerichten(lwPfad)
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   If fso.DriveExists(lwPfad) Then
      msg = ("Laufwerk " & UCase(lwPfad) & " existiert.")
   Else
      msg = ("Laufwerk " & UCase(lwPfad) & " existiert nicht.")
   End If
   LWStatusBerichten = msg
End Function

Siehe auch

Drive-Objekt | Drives-Auflistung | FileExists-Methode | FolderExists-Methode | GetDrive-Methode | GetDriveName-Methode | IsReady-Eigenschaft

Betrifft: FileSystemObject-Objekt


FileExists-Methode

Gibt true zurück, wenn die angegebene Datei existiert. Gibt false zurück, wenn dem nicht so ist.

Objekt.FileExists(Dateiangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Dateiangabe
Erforderlich. Der Name der Datei, deren Existenz bestimmt werden soll. Ist anzunehmen, dass die Datei nicht in dem aktuellen Ordner vorhanden ist, so muss eine vollständige Pfadangabe (absolut oder relativ) erfolgen.

Das folgende Beispiel veranschaulicht die Verwendung der FileExists-Methode.

[JScript]
function DateiStatusBerichten(dateiAngabe)
{
   var fso, s = dateiAngabe;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.FileExists(dateiAngabe))
      s += " existiert.";
   else
      s += " existiert nicht.";
   return(s);
}
[VBScript]
Function DateiStatusBerichten(dateiAngabe)
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   If (fso.FileExists(dateiAngabe)) Then
      msg = dateiAngabe & " ist vorhanden."
   Else
      msg = dateiAngabe & " existiert nicht."
   End If
   DateiStatusBerichten = msg
End Function

Siehe auch

DriveExists-Methode | FolderExists-Methode | GetFile-Methode | GetFileName-Methode

Betrifft: FileSystemObject-Objekt


Files-Eigenschaft

Gibt eine Files-Auflistung zurück, die alle File-Objekte in dem angegebenen Ordner einschließlich der Dateien enthält, bei denen die Attribute "Hidden" (Versteckt) und/oder "System" gesetzt sind.

Objekt.Files

Objekt ist stets ein Folder-Objekt.

Hinweise

Der folgende Code veranschaulicht die Verwendung der Files-Eigenschaft:

[JScript]
function DateilisteAnzeigen(ordnerAngabe)
{
   var fso, f, fc, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   fc = new Enumerator(f.files);
   s = "";
   for (; !fc.atEnd(); fc.moveNext())
   {
      s += fc.item();
      s += "<br>";
   }
   return(s);
}
[VBScript]Function DateilisteAnzeigen(ordnerAngabe)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   Set fc = f.Files
   For Each f1 in fc
      s = s & f1.name
      s = s &   "<BR>"
   Next
   DateilisteAnzeigen = s
End Function

Siehe auch

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Betrifft: Folder-Objekt


FolderExists-Methode

Gibt true zurück, wenn der angegebene Ordner existiert. Gibt false zurück, wenn dem nicht so ist.

Objekt.FolderExists(Ordnerangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Ordnerangabe
Erforderlich. Der Name des Ordners, dessen Existenz bestimmt werden soll. Ist anzunehmen, dass der Ordner nicht in dem aktuellen Ordner vorhanden ist, so muss eine vollständige Pfadangabe (absolut oder relativ) erfolgen.

Das folgende Beispiel veranschaulicht die Verwendung der FolderExists-Methode.

[JScript]
function OrdnerStatusBerichten(ordnerAngabe)
{
   var fso, s = ordnerAngabe;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.FolderExists(ordnerAngabe))
      s += " existiert.";
   else
      s += " existiert nicht.";
   return(s);
}
[VBScript]
Function OrdnerStatusBerichten(ordnerAngabe)
   Dim fso, msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   If (fso.FolderExists(ordnerAngabe)) Then
      msg = ordnerAngabe & " ist vorhanden."
   Else
      msg = ordnerAngabe & " existiert nicht."
   End If
   OrdnerStatusBerichten = msg
End Function

Siehe auch

DriveExists-Methode | FileExists-Methode | GetFolder-Methode | GetParentFolderName-Methode

Betrifft: FileSystemObject-Objekt


GetAbsolutePathName-Methode

Gibt aus einer angegebenen Pfadangabe einen vollständigen und eindeutigen Pfad zurück.

Objekt.GetAbsolutePathName(Pfadangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfadangabe
Erforderlich. Pfadangabe, die in einen vollständigen und eindeutigen Pfad geändert werden soll.

Hinweise

Ein Pfad ist vollständig und eindeutig, wenn er einen vollständigen Verweis auf das Stammverzeichnis des angegebenen Laufwerkes enthält. Ein vollständiger Pfad darf nur mit einem Pfadtrennzeichen (\) enden, wenn er den Stammordner eines zugeordneten Laufwerkes angibt.

Für die folgende Tabelle, die die Funktionsweise der GetAbsolutePathName-Methode verdeutlichen soll, wird angenommen, dass c:\Eigene Dateien\Berichte das aktuelle Verzeichnis ist.

Pfadangabe | Rückgabepfad
"c:" | "c:\Eigene Dateien\Berichte"
"c:.." | "c:\Eigene Dateien"
"c:\\" | "c:\"
"c:*.*\\Mai97" | "c:\Eigene Dateien\Berichte\*.*\Mai97"
"Region1" | "c:\Eigene Dateien\Berichte\Region1"
"c:\\..\\..\\Eigene Dateien" | "c:\Eigene Dateien"

Das folgende Beispiel zeigt die Verwendung der GetAbsolutePathName-Methode.

function ZeigeGetAbsolutePath(pfadAngabe)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetAbsolutePathName(pfadAngabe);
   return(s);
}

Siehe auch

GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetBaseName-Methode

Gibt eine Zeichenfolge zurück, die den Basisnamen der letzten Komponente (ohne Dateinamenerweiterung) eines Pfades enthält.

Objekt.GetBaseName(Pfad)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfad
Erforderlich. Die Pfadangabe der Komponente, deren Basisname zurückgegeben werden soll.

Hinweise

Die GetBaseName-Methode gibt eine Zeichenfolge der Länge Null ("") zurück, wenn das Pfad-Argument keine Komponenten enthält.

Anmerkung Die GetBaseName-Methode analysiert nur das Argument Pfad. Sie versucht weder, den Pfad aufzulösen, noch prüft sie das Vorhandensein des angegebenen Pfades.

Das folgende Beispiel veranschaulicht die Verwendung der GetBaseName-Methode.

[JScript]
function ZeigeGet(dateiAngabe)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetBaseName(dateiAngabe);
   return(s);
}
[VBScript]
Function HoleBasisname(dateiAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   HoleBasisname = fso.GetBaseName(dateiAngabe)
End Function

Siehe auch

GetAbsolutePathName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetDrive-Methode

Gibt ein Drive-Objekt zurück, das dem Laufwerk eines angegebenen Pfades entspricht.

Objekt.GetDrive(Laufwerkangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Laufwerkangabe
Erforderlich. Das Argument Laufwerkangabe kann ein Laufwerkbuchstabe (c), ein Laufwerkbuchstabe mit angefügtem Doppelpunkt (c:), ein Laufwerkbuchstabe mit angefügtem Doppelpunkt und Pfadtrennzeichen (c:\) oder eine Netzlaufwerkangabe (\\Computer2\Freigabe1) sein.

Hinweise

Bei Netzlaufwerken wird geprüft, ob diese vorhanden sind.

Ein Fehler tritt auf, wenn Laufwerkangabe keinem dieser zulässigen Formate entspricht oder nicht vorhanden ist.

Verwenden Sie zum Aufruf der GetDrive-Methode für eine normale Pfadzeichenfolge die folgende Sequenz, um eine zulässige Laufwerkangabe zu erzeugen:

[JScript]
Laufwerkangabe = GetDriveName(GetAbsolutePathName(Pfad))

[JScript]

Das folgende Beispiel veranschaulicht die Verwendung der GetDrive-Methode.

[JScript]
function ZeigeFreienSpeicher(lwPfad)
{
   var fso, d, s ="";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + lwPfad.toUpperCase( ) + " - ";
   s += d.VolumeName + "<br>";
   s += "Freier Speicherplatz: " + d.FreeSpace/1024 + " KB";
   return(s);
}
[VBScript]
Laufwerkangabe = GetDriveName(GetAbsolutePathName(Pfad))

[VBScript]

Das folgende Beispiel veranschaulicht die Verwendung der GetDrive-Methode:

[VBScript]
Function ZeigeFreienSpeicher(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk " & UCase(lwPfad) & " - "
   s = s & d.VolumeName   & "<BR>"
   s = s & "Freier Speicherplatz: " & FormatNumber(d.FreeSpace/1024, 0)
   s = s & " KB"
   ZeigeFreienSpeicher = s
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetDriveName-Methode

Gibt eine Zeichenfolge zurück, die den Namen des Laufwerkes in einem angegebenen Pfad enthält.

Objekt.GetDriveName(Pfad)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfad
Erforderlich. Die Pfadangabe der Komponente, deren Laufwerknamen zurückgegeben werden soll.

Hinweise

Die GetDriveName-Methode gibt eine Zeichenfolge der Länge Null ("") zurück, wenn das Laufwerk nicht bestimmt werden kann.

Anmerkung Die GetDriveName-Methode analysiert nur das Argument Pfad. Sie versucht weder, den Pfad aufzulösen, noch prüft sie das Vorhandensein des angegebenen Pfades.

Das folgende Beispiel veranschaulicht die Verwendung der GetDriveName-Methode.

[JScript]
function HoleLWBuchstaben(pfad)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(pfad)));
   return(s);
}
[VBScript]
Function HoleEinenNamen(lwAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   HoleEinenNamen = fso.GetDriveName(lwAngabe)
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetExtensionName-Methode

Gibt eine Zeichenfolge zurück, die den Erweiterungsnamen der letzten Komponente eines Pfades enthält.

Objekt.GetExtensionName(Pfad)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject.
Pfad
Erforderlich. Die Pfadangabe der Komponente, deren Erweiterungsname zurückgegeben werden soll.

Hinweise

Bei Netzlaufwerken gilt das Hauptverzeichnis (\) als Komponente.

Die GetExtensionName-Methode gibt eine Zeichenfolge der Länge Null ("") zurück, wenn keine Komponente mit dem Pfad-Argument übereinstimmt.

Das folgende Beispiel veranschaulicht die Verwendung der GetExtensionName-Methode.

[JScript]
function ShowExtensionName(filespec)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetExtensionName(filespec);
   return(s);
}
[VBScript]
Function HoleErweiterung(lwAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   HoleErweiterung = fso.GetExtensionName(lwAngabe)
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-MethodeMethod | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetFile-Methode

Gibt ein File-Objekt zurück, das der Datei in einem angegebenen Pfad entspricht.

Objekt.GetFile(Dateiangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject.
Dateiangabe
Erforderlich. Dateiangabe ist der Pfad (absolut oder relativ) einer bestimmten Datei.

Hinweise

Ist die angegebene Datei nicht vorhanden, so tritt ein Fehler auf.

Das folgende Beispiel veranschaulicht die Verwendung der GetFile-Methode.

[JScript]
function ShowFileAccessInfo(filespec)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(filespec);
   s = f.Path.toUpperCase() + "<br>";
   s += "Erstellt: " + f.DateCreated + "<br>";
   s += "Letzter Zugriff: " + f.DateLastAccessed + "<br>";
   s += "Letzte Änderung: " + f.DateLastModified
   return(s);
}
[VBScript]
Function ZeigeDateizugriffsinfo(dateiAngabe)
   Dim fso, f, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   s = f.Path & "<br>"
   s = s & "Erstellt: " & f.DateCreated & "<br>"
   s = s & "Letzter Zugriff: " & f.DateLastAccessed & "<br>"
   s = s & "Letzte Änderung: " & f.DateLastModified
   ZeigeDateizugriffsinfo = s
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetFileName-Methode

Gibt die letzte Komponente des angegebenen Pfades zurück, die nicht Teil der Laufwerkangabe ist.

Objekt.GetFileName(Pfadangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject.
Pfadangabe
Erforderlich. Der Pfad (absolut oder relativ) zu einer bestimmten Datei.

Hinweise

Die GetFileName-Methode gibt eine Zeichenfolge der Länge Null ("") zurück, wenn Pfadangabe nicht mit einer benannten Komponente endet.

Anmerkung Die GetFileName-Methode analysiert nur die als Argument übergebene Pfadzeichenfolge. Sie versucht weder, den Pfad aufzulösen, noch prüft sie das Vorhandensein des angegebenen Pfades.

Das folgende Beispiel veranschaulicht die Verwendung der GetFileName-Methode.

[JScript]
function ShowFileName(filespec)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetFileName(filespec);
   return(s);
}
[VBScript]
Function HoleEinenNamen(lwAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   HoleEinenNamen = fso.GetFileName(lwAngabe)
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetFileVersion-Methode

Gibt die Versionsnummer einer angegebenen Datei zurück.

Objekt.GetFileVersion(Pfadangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfadangabe
Erforderlich. Der Pfad (absolut oder relativ) zu einer bestimmten Datei.

Hinweise

Die GetFileVersion-Methode gibt eine Zeichenfolge der Länge Null ("") zurück, wenn Pfadangabe nicht mit der benannten Komponente endet.

Anmerkung Die GetFileVersion-Methode analysiert nur das Argument Pfadangabe. Sie versucht weder, den Pfad aufzulösen, noch prüft sie das Vorhandensein des angegebenen Pfades.

Das folgende Beispiel veranschaulicht die Verwendung der GetFileVersion-Methode.

[JScript]
function ZeigeDateinamen(dateiAngabe){
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetFileVersion(dateiAngabe);
   return(s);
}
[VBScript]
Function HoleVersion(lwAngabe)
   Dim fso, temp
   Set fso = CreateObject("Scripting.FileSystemObject")
   temp = fso.GetFileVersion(Pfadangabe)
   If Len(temp) Then
      HoleVersion = temp
   Else
      HoleVersion = "Keine Versionsinformationen verfügbar."
   End If
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode
Betrifft: FileSystemObject-Objekt


GetFolder-Methode

Gibt ein Folder-Objekt zurück, das dem Ordner in einem angegebenen Pfad entspricht.

Objekt.GetFolder(Ordnerangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Ordnerangabe
Erforderlich. Ordnerangabe ist der Pfad (absolut oder relativ) zu einem bestimmten Ordner.

Hinweise

Ist der angegebene Ordner nicht vorhanden, so tritt ein Fehler auf.

Das folgende Beispiel veranschaulicht die Verwendung der GetFolder-Methode.

[JScript]
function ZeigeOrdnerListe(ordnerAngabe)
{
   var fso, f, fc, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   fc = new Enumerator(f.SubFolders);
   s = "";
   for (;!fc.atEnd(); fc.moveNext())
   {
      s += fc.item();
      s += "<br>";
   }
   return(s);
}
[VBScript]
Sub NeuenOrdnerHinzufuegen(pfad, ordnerName)
   Dim fso, f, fc, nf
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(pfad)
   Set fc = f.SubFolders
   If ordnerName <> "" Then
      Set nf = fc.Add(ordnerName)
   Else
      Set nf = fc.Add("Neuer Ordner")
   End If
End Sub

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetParentFolderName-Methode

Gibt eine Zeichenfolge zurück, die den Namen des übergeordneten Ordners der letzten Komponente in einem angegebenen Pfad enthält.

Objekt.GetParentFolderName(Pfad)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfad
Erforderlich. Die Pfadangabe der Komponente, deren übergeordneter Ordnername zurückgegeben werden soll.

Hinweise

Die GetParentFolderName-Methode gibt eine Zeichenfolge der Länge Null ("") zurück, wenn es keinen übergeordneten Ordner für die im Argument Pfad angegebene Komponente gibt.

Anmerkung Die GetParentFolderName-Methode analysiert nur das Argument Pfad. Sie versucht weder, den Pfad aufzulösen, noch prüft sie das Vorhandensein des angegebenen Pfades.

Das folgende Beispiel veranschaulicht die Verwendung der GetParentFolderName-Methode.

[JScript]
function ZeigeGetParentFolderName(dateiAngabe)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetParentFolderName(dateiAngabe);
   return(s);
}
[VBScript]
Function HoleUebergeordnetenOrdner(lwAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   HoleUebergeordnetenOrdner = fso.GetParentFolderName(lwAngabe)
End Function

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetSpecialFolder-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetSpecialFolder-Methode

Gibt das angegebene Sonderordnerobjekt zurück.

Objekt.GetSpecialFolder(Ordnerangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Ordnerangabe
Erforderlich. Der Name des zurückzugebenden Sonderordners. Möglich ist eine der Konstanten, die im Abschnitt "Einstellungen" gezeigt werden.

Einstellungen

Das Argument Ordnerangabe kann einen der folgenden Werte aufweisen:

Konstante | Wert | Beschreibung
WindowsOrdner | 0 | Der Ordner Windows enthält die Dateien, die vom Betriebssystem Windows installiert werden.
SystemOrdner | 1 | Der Ordner System enthält Bibliotheken, Schriften und Gerätetreiber.
TempOrdner | 2 | Im Ordner Temp werden temporäre Dateien gespeichert. Den Pfad finden Sie in der Umgebungsvariablen TMP.

Das folgende Beispiel zeigt die Verwendung der GetSpecialFolder-Methode.

[JScript]
var fso, tempDatei;
fso = new ActiveXObject("Scripting.FileSystemObject");

function TempDateiErstellen()
{
   var tOrdner, tDatei, tName, dName, TempOrdner = 2;
   tOrdner = fso.GetSpecialFolder(TempOrdner);
   tName = fso.GetTempName();
   tDatei = tOrdner.CreateTextFile(tName);
   return(tDatei);
}
tempDatei = TempDateiErstellen();
tempDatei.writeline("Hallo Welt");
tempDatei.close();
[VBScript]
Dim fso, tempDatei
Set fso = CreateObject("Scripting.FileSystemObject")

Function TempDateiErstellen
   Dim tOrdner, tName, tDatei
   Const TempOrdner = 2
   Set tOrdner = fso.GetSpecialFolder(TempOrdner)
   tName = fso.GetTempName
   Set tDatei = tOrdner.CreateTextFile(tName)
   Set TempDateiErstellen = tDatei
End Function

Set tempDatei = TempDateiErstellen
tempDatei.WriteLine "Hallo Welt"
tempDatei.Close

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetTempName-Methode

Betrifft: FileSystemObject-Objekt


GetTempName-Methode

Gibt einen willkürlich erstellten Namen einer temporären Datei bzw. eines temporären Ordners zurück, die bzw. der nützlich beim Durchführen von Operationen ist, die eine temporäre Datei oder einen temporären Ordner erfordern.

Objekt.GetTempName( )

Das optionale Objekt ist stets der Name eines FileSystemObject-Objekts.

Hinweise

Die GetTempName-Methode erstellt keine Datei. Sie stellt nur einen temporären Dateinamen bereit, der zusammen mit CreateTextFile zum Erstellen einer Datei verwendet werden kann.

Das folgende Beispiel veranschaulicht die Verwendung der GetTempName-Methode.

[JScript]
var fso, tempDatei;
fso = new ActiveXObject("Scripting.FileSystemObject");{}

function TempDateiErstellen()
{
   var tOrdner, tDatei, tName, dName, TempOrdner = 2;
   tOrdner = fso.GetSpecialFolder(TempOrdner);
   tName = fso.GetTempName();
   tDatei = tOrdner.CreateTextFile(tName);
   return(tDatei);
}
tempDatei = TempDateiErstellen();
tempDatei.writeline("Hallo Welt");
tempDatei.close();
[VBScript]
Dim fso, tempDatei
Set fso = CreateObject("Scripting.FileSystemObject")

Function TempDateiErstellen
   Dim tOrdner, tName, tDatei
   Const TempOrdner = 2
   Set tOrdner = fso.GetSpecialFolder(TempOrdner)
   tName = fso.GetTempName
   Set tDatei = tOrdner.CreateTextFile(tName)
   Set TempDateiErstellen = tDatei
End Function

Set tempDatei = TempDateiErstellen
tempDatei.WriteLine "Hallo Welt"
tempDatei.Close

Siehe auch

GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFileVersion-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode

Betrifft: FileSystemObject-Objekt


Move-Methode

Verschiebt eine angegebene Datei bzw. einen angegebenen Ordner von einem Speicherort zu einem anderen.

Objekt.Move( Ziel );

Argumente

Objekt
Erforderlich. Stets der Name eines File- oder Folder-Objekts.
Ziel
Erforderlich. Ziel, in das die Datei oder der Ordner verschoben werden soll. Platzhalterzeichen sind nicht zulässig.

Hinweise

Die Move-Methode bewirkt bei einer Datei oder einem Ordner letztlich dasselbe wie die Methoden FileSystemObject.MoveFile bzw. FileSystemObject.MoveFolder, wenn diesen die Datei oder der Ordner, auf die Objekt verweist, als Argument übergeben wird. Beachten Sie jedoch, dass bei diesen alternativen Operationen mehrere Dateien bzw. Ordner verschoben werden können.

Siehe auch

Copy-Methode | Delete-Methode | MoveFile-Methode | MoveFolder-Methode | OpenAsTextStream-Methode

Betrifft: File-Objekt | Folder-Objekt


MoveFile-Methode

Verschiebt eine Datei oder mehrere Dateien aus einem Speicherort in einen anderen.

Objekt.MoveFile(Quelle, Ziel)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Quelle
Erforderlich. Der Pfad zu den zu verschiebenden Dateien. Das Argument Quelle darf nur in der letzten Pfadkomponente Platzhalterzeichen enthalten.
Ziel
Erforderlich. Der Pfad, in den die Dateien verschoben werden. Das Argument Ziel darf keine Platzhalterzeichen enthalten.

Hinweise

Wenn Quelle Platzhalterzeichen enthält oder Ziel mit einem Pfadtrennzeichen (\) endet, wird angenommen, dass Ziel einen vorhandenen Ordner angibt, in den die mit Quelle übereinstimmenden Dateien verschoben werden. Andernfalls ist Ziel der Name der zu erstellenden Zieldatei. Beim Verschieben einer einzelnen Datei können folgende drei Situationen eintreten:

  • Wenn Ziel nicht vorhanden ist, wird die Datei verschoben. Dies ist der Normalfall.
  • Falls das Ziel eine vorhandene Datei ist, tritt ein Fehler auf.
  • Falls Ziel ein Verzeichnis ist, tritt ein Fehler auf.

Ein Fehler tritt des Weiteren auf, wenn ein in Quelle verwendetes Platzhalterzeichen nicht mit Dateien übereinstimmt. Die MoveFile-Methode wird beim ersten auftretenden Fehler abgebrochen. Vor dem Fehler durchgeführte Änderungen werden nicht rückgängig gemacht.

Anmerkung Diese Methode erlaubt das Verschieben von Dateien zwischen Datenträgern nur dann, wenn dies vom Betriebssystem unterstützt wird.

Das folgende Beispiel veranschaulicht die Verwendung der MoveFile-Methode:

[JScript]
function VerschiebeDateiAufDesktop(dateiAngabe)
{
   var fso;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.MoveFile(dateiAngabe, "c:\\windows\\desktop\\");
}
[VBScript]
Sub VerschiebeDatei(dateiAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.MoveFile dateiAngabe, "c:\windows\desktop\"
End Sub

Siehe auch

CopyFile-Methode | DeleteFile-Methode | GetFile-Methode | GetFileName-Methode | Move-Methode | MoveFolder-Methode | OpenTextFile-Methode

Betrifft: FileSystemObject-Objekt


MoveFolder-Methode

Verschiebt einen oder mehrere Ordner aus einem Speicherort in einen anderen.

Objekt.MoveFolder(Quelle, Ziel)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Quelle
Erforderlich. Der Pfad zu den zu verschiebenden Ordnern. Das Argument Quelle darf nur in der letzten Pfadkomponente Platzhalterzeichen enthalten.
Ziel
Erforderlich. Der Pfad, in den die Ordner verschoben werden sollen. Das Argument Ziel darf keine Platzhalterzeichen enthalten.

Hinweise

Wenn Quelle Platzhalterzeichen enthält oder Ziel mit einem Pfadtrennzeichen (\) endet, wird angenommen, dass Ziel einen vorhandenen Ordner angibt, in den die mit Quelle übereinstimmenden Ordner verschoben werden. Andernfalls ist Ziel der Name des zu erstellenden Zielordners. Beim Verschieben eines einzelnen Ordners können folgende drei Situationen eintreten:

  • Wenn Ziel nicht vorhanden ist, wird der Ordner verschoben. Dies ist der Normalfall.
  • Falls das Ziel eine vorhandene Datei ist, tritt ein Fehler auf.
  • Falls Ziel ein Verzeichnis ist, tritt ein Fehler auf.

Ein Fehler tritt des Weiteren auf, wenn ein in Quelle verwendetes Platzhalterzeichen mit keinem Ordner übereinstimmt. Die MoveFolder-Methode wird beim ersten auftretenden Fehler abgebrochen. Vor dem Fehler durchgeführte Änderungen werden nicht rückgängig gemacht.

Wichtig Diese Methode erlaubt das Verschieben von Ordnern zwischen Datenträgern nur, wenn dies vom Betriebssystem unterstützt wird.

Das folgende Beispiel veranschaulicht die Verwendung der MoveFolder-Methode:

[JScript]
function VerschiebeOrdnerAufDesktop(ordnerAngabe)
{
   var fso;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.MoveFolder(ordnerAngabe, "c:\\windows\\desktop\\");
}
[VBScript]
Sub VerschiebeOrdner(lwAngabe)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.MoveFolder lwAngabe, "c:\windows\desktop\"
End Sub

Siehe auch

CopyFile-Methode | DeleteFile-Methode | GetFile-Methode | GetFileName-Methode | Move-Methode | MoveFile-Methode | OpenTextFile-Methode

Betrifft: FileSystemObject-Objekt


OpenAsTextStream-Methode

Öffnet eine angegebene Datei und gibt ein TextStream-Objekt zum Lesen aus der Datei, Schreiben in die Datei oder Anfügen an die Datei zurück.

Objekt.OpenAsTextStream([E/A-Modus[, Format]])

Argumente

Objekt
Erforderlich. Stets der Name eines File-Objekts.
E/A-Modus
Optional. Gibt den Aus-/Eingabemodus an. Es gibt drei mögliche Konstanten: ForReading, ForWriting oder ForAppending.
Format
Optional. Einer von drei Tristate-Werten, mit denen das Format der geöffneten Datei angezeigt wird. Ohne Angabe wird die Datei als ASCII geöffnet..

Einstellungen

Das E/A-Modus-Argument kann eine der folgenden Einstellungen aufweisen:

Konstante | Wert | Beschreibung
ForReading | 1 | Öffnet eine Datei nur zum Lesen. Schreibzugriffe sind nicht möglich.
ForWriting | 2 | Öffnet eine Datei zum Schreiben. Existiert eine Datei mit demselben Namen, wird der vorherige Inhalt überschrieben.
ForAppending | 8 | Öffnet eine Datei und schreibt an das Dateiende.

Das Format-Argument kann eine der folgenden Einstellungen aufweisen:

Konstante | Wert | Beschreibung
TristateUseDefault | -2 | Öffnen der Datei im Format des Systemstandardwertes.
TristateTrue | -1 | Öffnen der Datei im Unicode-Format.
TristateFalse | 0 | Öffnen der Datei im ASCII-Format.

Hinweise

Die OpenAsTextStream-Methode bietet dieselbe Funktionalität wie die OpenTextFile-Methode von FileSystemObject. Darüber hinaus kann die OpenAsTextStream-Methode zum Schreiben in eine Datei verwendet werden.

Der folgende Code verdeutlicht das Verwenden der OpenAsTextStream-Methode:

[JScript]
function TextStreamTest( )
{
   var fso, f, ts, s;
   var ForReading = 1, ForWriting = 2, ForAppending = 8;
   var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   fso.CreateTextFile( "test1.txt" );           // Erstellt eine Datei.
   f = fso.GetFile("test1.txt");
   ts = f.OpenAsTextStream(ForWriting, TristateUseDefault);
   ts.Write( "Hallo Welt" );
   ts.Close( );
   ts = f.OpenAsTextStream(ForReading, TristateUseDefault);
   s = ts.ReadLine( );
   ts.Close( );
   return(s);
}
[VBScript]
Function TextStreamTest
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
   Dim fso, f, ts
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.CreateTextFile "test1.txt"   ' Erstellt eine Datei.
   Set f = fso.GetFile("test1.txt")
   Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
   ts.Write "Hallo Welt"
   ts.Close
   Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
   TextStreamTest = ts.ReadLine
   ts.Close
End Function

Siehe auch

Copy-Methode | CreateTextFile-Methode | Delete-Methode | Move-Methode | OpenTextFile-Methode

Betrifft: File-Objekt


OpenTextFile-Methode

Öffnet eine angegebene Datei und gibt ein TextStream-Objekt zum Lesen aus der Datei, Schreiben in die Datei oder Anfügen an die Datei zurück.

Objekt.OpenTextFile(Dateiname[, E/A-Modus[, Erstellen[, Format]]])

Argumente

Objekt
Erforderlich. Objekt ist stets der Name eines FileSystemObject-Objekts.
Dateiname
Erforderlich. Zeichenfolgenausdruck, der die zu öffnende Datei angibt.
E/A-Modus
Optional. Es gibt drei mögliche Konstanten: ForReading, ForWriting oder ForAppending.
Erstellen
Optional. Boolescher Wert, der angibt, ob eine neue Datei erstellt werden soll, wenn der angegebene Dateiname nicht existiert. true, wenn eine neue, false, wenn keine neue Datei erstellt werden soll. Falls ausgelassen, wird keine neue Datei erstellt.
Format
Optional. Einer von drei Tristate-Werten, mit denen das Format der geöffneten Datei angezeigt wird. Ohne Angabe wird die Datei als ASCII geöffnet..

Einstellungen

Das E/A-Modus-Argument kann eine der folgenden Einstellungen aufweisen:

Konstante | Wert | Beschreibung
ForReading | 1 | Öffnet eine Datei nur zum Lesen. Schreibzugriffe sind nicht möglich.
ForWriting | 2 | Öffnet eine Datei zum Schreiben.
ForAppending | 8 | Öffnet eine Datei und schreibt an das Dateiende.

Das Format-Argument kann eine der folgenden Einstellungen aufweisen:

Wert | Beschreibung
TristateTrue | Öffnet die Datei als Unicode.
TristateFalse | Öffnet die Datei als ASCII.
TristateUseDefault | Öffnet die Datei mit dem Systemstandardwert.

Hinweise

Der folgende Code verdeutlicht die Verwendung der OpenTextFile-Methode, um eine Datei zum Anfügen von Text zu öffnen:

[JScript]
var fs, a, ForAppending;
ForAppending = 8;
fs = new ActiveXObject("Scripting.FileSystemObject");
a = fs.OpenTextFile("c:\\test.txt", ForAppending, false);
...
a.Close();
[VBScript]
Sub OpenTextFileTest
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!"
   f.Close
End Sub

Siehe auch

CreateTextFile-Methode | OpenAsTextStream-Methode

Betrifft: FileSystemObject-Objekt


Read-Methode (FileSystemObject)

Scripting Runtime Library

Read-Methode

Liest eine angegebene Anzahl von Zeichen aus einer TextStream-Datei und gibt die daraus resultierende Zeichenfolge zurück.

Objekt.Read(Zeichen)

Argumente

Objekt
Erforderlich. Stets der Name eines TextStream-Objekts.
Zeichen
Erforderlich. Anzahl der aus der Datei zu lesenden Zeichen.

Das folgende Beispiel veranschaulicht die Verwendung der Read-Methode, um einen sechs Buchstaben langen Dateianfang zu lesen und die Ergebniszeichenfolge zurückzugeben:

[JScript]
function HoleAnfang()
{
   var fso, f;
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
   f.Write("Anfang");
   f.Write("1234567890987654321");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   return(f.Read(6));
}
[VBScript]
Function LeseTextdateiTest
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f, Msg
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   LeseTextdateiTest = f.Read(5)
End Function

Siehe auch

ReadAll-Methode | ReadLine-Methode | Skip-Methode | SkipLine-Methode

Betrifft: TextStream-Objekt


ReadAll-Methode (FileSystemObject)

Scripting Runtime Library

ReadAll-Methode

Liest eine ganze TextStream-Datei und gibt die daraus resultierende Zeichenfolge zurück.

Objekt.ReadAll( );

Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Bei großen Dateien werden beim Einsatz der ReadAll-Methode unnötig Speicherressourcen belegt. Andere Vorgehensweisen wie zeilenweises Einlesen einer Datei sind dafür besser geeignet.

Das folgende Beispiel veranschaulicht die Verwendung der ReadAll-Methode:

[JScript]
function HoleAlles()
{
   var fso, f;
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
   f.Write("Anfang");
   f.Write("1234567890987654321");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   return(f.ReadAll());
}
[VBScript]
Function LeseGesamteTextdatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   LeseGesamteTextdatei =   f.ReadAll
End Function

Siehe auch

Read-Methode | ReadLine-Methode | Skip-Methode | SkipLine-Methode

Betrifft: TextStream-Objekt


ReadLine-Methode (FileSystemObject)

Scripting Runtime Library

ReadLine-Methode

Liest eine ganze Zeile (bis zum Zeilenumbruchzeichen, aber nicht dieses Zeichen selbst) aus einer TextStream-Datei und gibt die resultierende Zeichenfolge zurück.

Objekt.ReadLine( )

Objekt ist immer der Name eines TextStream-Objekts.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der Readline-Methode:

[JScript]
function HoleZeile()
{
   var fso, f, r;
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
   f.WriteLine("Hallo Welt");
   f.WriteLine("JScript ist klasse!");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   r =  f.ReadLine();
   return(r);
}
[VBScript]
Function LeseZeileTextdatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, MeineDatei
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MeineDatei = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   MeineDatei.WriteLine "Hallo Welt!"
   MeineDatei.WriteLine "Franz jagt im komplett verwahrlosten Taxi"
   MeineDatei.Close
   Set MeineDatei = fso.OpenTextFile("c:\test.txt", ForReading)
   LeseZeileTextdatei = MeineDatei.ReadLine    ' Gibt "Hallo Welt!" zurück.
End Function

Siehe auch

Read-Methode | ReadAll-Methode | Skip-Methode | SkipLine-Methode

Betrifft: TextStream-Objekt


Skip-Methode (FileSystemObject)

Scripting Runtime Library

Skip-Methode

Überspringt beim Einlesen einer TextStream-Datei eine bestimmte Anzahl von Zeichen.

Objekt.Skip(Zeichen)

Argumente

Objekt
Erforderlich. Stets der Name eines TextStream-Objekts.
Zeichen
Erforderlich. Anzahl von Zeichen, die beim Einlesen übersprungen werden sollen.

Hinweise

Übersprungene Zeichen werden verworfen.

Das folgende Beispiel veranschaulicht die Verwendung der Skip-Methode:

[JScript]
function SkipDemo()
{
   var fso, f, r;
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject")
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
   f.WriteLine("Hallo Welt");
   f.WriteLine("JScript ist klasse!");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   f.Skip(6);
   r = f.ReadLine();
   return(r);
}
[VBScript]
Function UeberspringeTextdatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   f.Skip(6)
   UeberspringeTextdatei =   f.ReadLine
End Function

Siehe auch

Close-Methode | Read-Methode | ReadAll-Methode | ReadLine-Methode | SkipLine-Methode | Write-Methode | WriteBlankLines-Methode | WriteLine-Methode

Betrifft: TextStream-Objekt


SkipLine-Methode (FileSystemObject)

Scripting Runtime Library

SkipLine-Methode

Überspringt beim Einlesen einer TextStream-Datei die nächste Zeile.

Objekt.SkipLine( )

Objekt ist stets der Name eines TextStream-Objekts.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der SkipLine-Methode:

[JScript]
function SkipLineDemo()
{
   var fso, f, r
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject")
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true)
   f.WriteLine("Hallo Welt");
   f.WriteLine("JScript ist klasse!");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   f.SkipLine();
   r = f.ReadLine();
   return(r);
}
[VBScript]
Function UeberspringeZeileInDatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!" & vbCrLf & "VBScript ist klasse!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   f.SkipLine
   UeberspringeZeileInDatei = f.ReadLine
End Function

Siehe auch

Read-Methode | ReadAll-Methode | ReadLine-Methode | Skip-Methode

Betrifft: TextStream-Objekt


Write-Methode (FileSystemObject)

Scripting Runtime Library

Write-Methode

Schreibt eine angegebene Zeichenfolge in eine TextStream-Datei.

Objekt.Write(Zeichenfolge)

Argumente

Objekt
Erforderlich. Stets der Name eines TextStream-Objekts.
Zeichenfolge
Erforderlich. Der in die Datei zu schreibende Text.

Hinweise

Die angegebenen Zeichenfolgen werden ohne zwischenstehende Leerzeichen oder andere Zeichen in die Datei geschrieben. Um ein Zeilenumbruchzeichen oder eine Zeichenfolge, die mit einem Zeilenumbruchzeichen endet, in eine Datei zu schreiben, verwenden Sie die WriteLine-Methode.

Das folgende Beispiel veranschaulicht die Verwendung der Write-Methode:

[JScript]
function WriteDemo()
{
   var fso, f, r
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject")
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true)
   f.Write("Hallo Welt");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   r = f.ReadLine();
   return(r);
}
[VBScript]
Function SchreibeInDatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.Write "Hallo Welt!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   SchreibeInDatei =   f.ReadLine
End Function

Siehe auch

WriteBlankLines-Methode | WriteLine-Methode

Betrifft: TextStream-Objekt


WriteBlankLines-Methode (FileSystemObject)

Scripting Runtime Library

WriteBlankLines-Methode

Schreibt eine angegebene Anzahl von Zeilenumbruchzeichen in eine TextStream-Datei.

Objekt.WriteBlankLines(Anzahl)

Argumente

Objekt
Erforderlich. Stets der Name eines TextStream-Objekts.
Anzahl
Erforderlich. Anzahl der in die Datei zu schreibenden Zeilenumbruchzeichen.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der WriteBlankLines-Methode:

[JScript]
function WriteBlankLinesDemo()
{
   var fso, f, r;
   var ForReading = 1, ForWriting = 2;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
   f.Write("Hallo Welt");
   f.WriteBlankLines(2);
   f.Write("JScript ist klasse!");
   f.Close();
   f = fso.OpenTextFile("c:\\test.txt", ForReading);
   r = f.ReadAll();
   return(r);
}
[VBScript]
Function SchreibeLeereZeilenInDatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.WriteBlankLines 2
   f.WriteLine "Hallo Welt!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   SchreibeLeereZeilenInDatei = f.ReadAll
End Function

Siehe auch

Write-Methode | WriteLine-Methode

Betrifft: TextStream-Objekt


WriteLine-Methode (FileSystemObject)

Scripting Runtime Library

WriteLine-Methode

Schreibt eine angegebene Zeichenfolge und ein Zeilenumbruchzeichen in eine TextStream-Datei.

Objekt.WriteLine([Zeichenfolge])

Argumente

Objekt
Erforderlich. Stets der Name eines TextStream-Objekts.
Zeichenfolge
Optional. In die Datei zu schreibender Text. Ohne Angabe wird ein Zeilenumbruchzeichen in die Datei geschrieben.

Hinweise

Das folgende Beispiel veranschaulicht die Verwendung der WriteLine-Methode:

[JScript]
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\test.txt", true);
f.WriteLine("Dies ist ein Test.");
f.Close();
[VBScript]
Function SchreibeZeileInDatei
   Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
   f.WriteLine "Hallo Welt!"
   f.WriteLine "VBScript ist klasse!"
   Set f = fso.OpenTextFile("c:\test.txt", ForReading)
   SchreibeZeileInDatei = f.ReadAll
End Function

Siehe auch

Write-Methode | WriteBlankLines-Methode

Betrifft: TextStream-Objekt


FileSystemObject-Objekte

In diesem Abschnitt

Dictionary-Objekt
Ein Objekt, das Element/Schlüssel-Paare speichert.
Drive-Objekt
Ermöglicht den Zugriff auf die Eigenschaften eines bestimmten Festplattenlaufwerkes oder einer Netzwerkfreigabe.
File-Objekt
Ermöglicht den Zugriff auf alle Eigenschaften einer Datei.
FileSystemObject-Objekt
Ermöglicht den Zugriff auf das Dateisystem des Computers.
Folder-Objekt
Ermöglicht den Zugriff auf alle Eigenschaften eines Ordners.
TextStream-Objekt
Vereinfacht den sequenziellen Zugriff auf eine Datei.

Verwandte Abschnitte

Scripting-Laufzeitreferenz
Liste von Elementen, aus denen die Scripting-Laufzeitreferenz besteht.
FileSystemObject-Grundlagen
Ein Leitfaden der Grundlagen des FileSystemObject-Objekts.
FileSystemObject-Auflistungen
Liste von Auflistungen, die mit dem FileSystemObject-Objektmodell verwendet werden können.


Drive-Objekt

Ermöglicht den Zugriff auf die Eigenschaften eines bestimmten Festplatten- oder Netzlaufwerkes.

Hinweise

Der folgende Code veranschaulicht die Verwendung des Drive-Objekts, um auf Laufwerkeigenschaften zuzugreifen:

[JScript]
function FreienSpeicherAnzeigen(lwPfad)
{
   var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(lwPfad));
   s = "Laufwerk " + lwPfad + " - " ;
   s += d.VolumeName + "<br>";
   s += "Freier Speicherplatz: " + d.FreeSpace/1024 + " KB";
   return(s);
}
[VBScript]
Function FreienSpeicherAnzeigen(lwPfad)
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set d = fso.GetDrive(fso.GetDriveName(lwPfad))
   s = "Laufwerk " & UCase(lwPfad) & " - "
   s = s & d.VolumeName   & "<BR>"
   s = s & "Freier Speicherplatz: " & FormatNumber(d.FreeSpace/1024, 0)
   s = s & " KB"
   FreienSpeicherAnzeigen = s
End Function

Methoden

Das Drive-Objekt verfügt über keinerlei Methoden.

Eigenschaften

AvailableSpace-Eigenschaft | DriveLetter-Eigenschaft | DriveType-Eigenschaft | FileSystem-Eigenschaft | FreeSpace-Eigenschaft | IsReady-Eigenschaft | Path-Eigenschaft | RootFolder-Eigenschaft | SerialNumber-Eigenschaft | ShareName-Eigenschaft | TotalSize-Eigenschaft | VolumeName-Eigenschaft

Siehe auch

Drives-Auflistung | File-Objekt | Files-Auflistung | Folder-Objekt | Folders-Auflistung | GetDrive-Methode


File-Objekt

Ermöglicht den Zugriff auf alle Eigenschaften einer Datei.

Hinweise

Der folgende Code veranschaulicht das Abrufen eines File-Objekts und das Anzeigen einer seiner Eigenschaften.

[JScript]
function ZeigeDateiInfo(dateiAngabe)
{
   var fso, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(dateiAngabe);
   s = f.DateCreated;
   return(s);
}
[VBScript]
Function ZeigeErstellungsdatum(dateiAngabe)
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile(dateiAngabe)
   ZeigeErstellungsdatum = f.DateCreated
End Function

Methoden

Copy-Methode | Delete-Methode | Move-Methode | OpenAsTextStream-Methode

Eigenschaften

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | Type-Eigenschaft

Siehe auch

Drive-Objekt | Drives-Auflistung | Files-Auflistung | Folder-Objekt | Folders-Auflistung


FileSystemObject-Objekt

Ermöglicht den Zugriff auf das Dateisystem des Computers.

Hinweise

[JScript]

Der folgende Code veranschaulicht die Verwendung des FileSystemObject-Objekts zum zurückgeben eines TextStream-Objekts, das gelesen oder auf das geschrieben werden kann:

[JScript]
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testdatei.txt", true);
a.WriteLine("Dies ist ein Test.");
a.Close();

[JScript]

Im Beispielcode wird das ActiveXObject-Objekt dem FileSystemObject (fso) zugewiesen. Die CreateTextFile-Methode erstellt anschließend die Datei als TextStream-Objekt (a), und die WriteLine-Methode schreibt eine Textzeile in die erstellte Textdatei. Die Close-Methode leert den Puffer und schließt die Datei.

[VBScript]

Der folgende Code veranschaulicht die Verwendung des FileSystemObject-Objekts, um ein TextStream-Objekt zurückzugeben, von dem gelesen oder auf das geschrieben werden kann:

[VBScript]
Dim fso, MeineDatei
Set fso = CreateObject("Scripting.FileSystemObject")
Set MeineDatei = fso.CreateTextFile("c:\testdatei.txt", True)
MeineDatei.WriteLine("Dies ist ein Test.")
MeineDatei.Close

[VBScript]

Im Codebeispiel weiter oben gibt die CreateObject-Funktion das FileSystemObject-Objekt (fso) zurück. Die CreateTextFile-Methode erstellt anschließend die Datei als TextStream-Objekt (a), und die WriteLine-Methode schreibt eine Textzeile in die erstellte Textdatei. Die Close-Methode leert den Puffer und schließt die Datei.

Methoden

BuildPath-Methode | CopyFile-Methode | CopyFolder-Methode | CreateFolder-Methode | CreateTextFile-Methode | DeleteFile-Methode | DeleteFolder-Methode | DriveExists-Methode | FileExists-Methode | FolderExists-Methode | GetAbsolutePathName-Methode | GetBaseName-Methode | GetDrive-Methode | GetDriveName-Methode | GetExtensionName-Methode | GetFile-Methode | GetFileName-Methode | GetFolder-Methode | GetParentFolderName-Methode | GetSpecialFolder-Methode | GetTempName-Methode | MoveFile-Methode | MoveFolder-Methode | OpenTextFile-Methode

Eigenschaften

Drives-Eigenschaft

Siehe auch

Dictionary-Objekt | Drive-Objekt | Drives-Auflistung | File-Objekt | Files-Auflistung | Folder-Objekt | Folders-Auflistung | TextStream-Eigenschaft


Folder-Objekt

Ermöglicht den Zugriff auf alle Eigenschaften eines Ordners.

Hinweise

Der folgende Code veranschaulicht das Abrufen eines Folder-Objekts und das Zurückgeben einer seiner Eigenschaften:

[JScript]
function ZeigeOrdnerInfo(ordnerAngabe)
{
   var fso, ordner, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   ordner = fso.GetFolder(ordnerAngabe);
   s = ordner.DateCreated;
   return(s);
}
[VBScript]
Function ZeigeErstellungsdatum(ordnerAngabe)
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   ZeigeErstellungsdatum = f.DateCreated
End Function

Methoden

Copy-Methode | Delete-Methode | Move-Methode | OpenAsTextStream-Methode

Eigenschaften

Attributes-Eigenschaft | DateCreated-Eigenschaft | DateLastAccessed-Eigenschaft | DateLastModified-Eigenschaft | Drive-Eigenschaft | Files-Eigenschaft | IsRootFolder-Eigenschaft | Name-Eigenschaft | ParentFolder-Eigenschaft | Path-Eigenschaft | ShortName-Eigenschaft | ShortPath-Eigenschaft | Size-Eigenschaft | SubFolders-Eigenschaft | Type-Eigenschaft

Siehe auch

Drive-Objekt | Drives-Auflistung | File-Objekt | Files-Auflistung | Folders-Auflistung


TextStream-Objekt

Vereinfacht den sequenziellen Zugriff auf eine Datei.

TextStream.{Eigenschaft | Methode( )}

Bei den Argumenten Eigenschaft und Methode kann es sich um beliebige Eigenschaften und Methoden handeln, die mit dem TextStream-Objekt verknüpft sind. Bei der tatsächlichen Verwendung wird TextStream durch einen Variablenplatzhalter ersetzt, der das vom Objekt FileSystemObject zurückgegebene TextStream-Objekt darstellt.

Hinweise

Im folgenden Code ist a das TextStream-Objekt, das von der CreateTextFile-Methode des Objekts FileSystemObject zurückgegeben wird:

[JScript]
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testdatei.txt", true);
a.WriteLine("Dies ist ein Test.");
a.Close();
[VBScript]
Dim fso, MeineDatei
Set fso = CreateObject("Scripting.FileSystemObject")
Set MeineDatei= fso.CreateTextFile("c:\testdatei.txt", True)
MeineDatei.WriteLine("Dies ist ein Test.")
MeineDatei.Close

WriteLine und Close sind zwei Methoden des TextStream-Objekts.

Methoden

Close-Methode | Read-Methode | ReadAll-Methode | ReadLine-Methode | Skip-Methode | SkipLine-Methode | Write-Methode | WriteBlankLines-Methode | WriteLine-Methode

Eigenschaften

AtEndOfLine-Eigenschaft | AtEndOfStream-Eigenschaft | Column-Eigenschaft | Line-Eigenschaft

Dictionary-Objekt | FileSystemObject-Objekt


FileSystemObject-Auflistungen

In diesem Abschnitt

Drives-Auflistung
Schreibgeschützte Auflistung aller verfügbaren Laufwerke.
Files-Auflistung
Auflistung aller File-Objekte in einem Ordner.
Folders-Auflistung
Auflistung aller Folder-Objekte in einem Folder-Objekt.

Verwandte Abschnitte

Scripting-Laufzeitreferenz
Liste von Elementen, aus denen die Scripting-Laufzeitreferenz besteht.
FileSystemObject-Grundlagen
Ein Leitfaden der Grundlagen des FileSystemObject-Objekts.


Drives-Auflistung

Schreibgeschützte Auflistung aller verfügbaren Laufwerke.

Hinweise

In Laufwerken mit austauschbaren Datenträgern muss kein Datenträger eingelegt sein, damit diese in der Auflistung Drives angezeigt werden.

[JScript]

Das folgende Beispiel verdeutlicht das Abrufen der Auflistung Drives unter Verwendung der Eigenschaft Drives und dem Durchlaufen der Auflistung mit dem Enumerator-Objekt:

[JScript]
function ZeigeLaufwerkliste()
{
   var fso, s, n, e, x;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);
   s = "";
   for (; !e.atEnd(); e.moveNext())
   {
      x = e.item();
      s = s + x.DriveLetter;
      s += " - ";
      if (x.DriveType == 3)
         n = x.ShareName;
      else if (x.IsReady)
         n = x.VolumeName;
      else
         n = "[Laufwerk nicht bereit]";
      s +=  n + "<br>";
   }
   return(s);
}

[VBScript]

Der folgende Code veranschaulicht das Abrufen der Drives-Auflistung und das Durchlaufen der Auflistung mit der For Each...Next-Anweisung:

[VBScript]
Function ZeigeLaufwerkliste
   Dim fso, d, dc, s, n
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dc = fso.Drives
   For Each d in dc
      n = ""
      s = s & d.DriveLetter & " - "
      If d.DriveType = Remote Then
         n = d.ShareName
      ElseIf d.IsReady Then
         n = d.VolumeName
      End If
      s = s & n & "<BR>"
   Next
   ZeigeLaufwerkliste = s
End Function

Methoden

Die Drives-Auflistung verfügt über keinerlei Methoden.

Eigenschaften

Count-Eigenschaft | Item-Eigenschaft

Siehe auch

Drive-Objekt | Drives-Eigenschaft | File-Objekt | Files-Auflistung | Folder-Objekt | Folders-Auflistung


Files-Auflistung

Auflistung aller File-Objekte in einem Ordner.

Hinweise

[JScript]

Das folgende Beispiel verdeutlicht das Abrufen der Auflistung Files und das Durchlaufen der Auflistung mit dem Enumerator-Objekt und der for-Anweisung:

[JScript]
function ZeigeDateiliste(ordnerAngabe)
{
   var fso, f, f1, fc, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   fc = new Enumerator(f.files);
   s = "";
   for (; !fc.atEnd(); fc.moveNext())
   {
      s += fc.item();
      s += "<br>";
   }
   return(s);
}

[VBScript]

Der folgende Code veranschaulicht das Abrufen einer Files-Auflistung und das Durchlaufen der Auflistung mit der For Each...Next-Anweisung:

[VBScript]
Function ZeigeDateiliste(ordnerAngabe)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   Set fc = f.Files
   For Each f1 in fc
      s = s & f1.name
      s = s & "<BR>"
   Next
   ZeigeDateiliste = s
End Function

Methoden

Die Files-Auflistung verfügt über keinerlei Methoden.

Eigenschaften

Count-Eigenschaft | Item-Eigenschaft

Siehe auch

Drive-Objekt | Drives-Auflistung | File-Objekt | Folder-Objekt | Folders-Auflistung


Folders-Auflistung

Auflistung aller Folder-Objekte in einem Folder-Objekt.

Hinweise

[JScript]

Das folgende Beispiel verdeutlicht das Abrufen der Auflistung Folders und das Durchlaufen der Auflistung mit dem Enumerator-Objekt und der for-Anweisung:

[JScript]
function ZeigeOrdnerliste(ordnerAngabe)
{
   var fso, f, fc, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(ordnerAngabe);
   fc = new Enumerator(f.SubFolders);
   s = "";
   for (;!fc.atEnd(); fc.moveNext())
   {
      s += fc.item();
      s += "<br>";
   }
   return(s);
}

[VBScript]

Der folgende Code veranschaulicht das Abrufen einer Folders-Auflistung und das Durchlaufen der Auflistung mit der For Each...Next-Anweisung:

[VBScript]
Function ZeigeOrdnerliste(ordnerAngabe)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(ordnerAngabe)
   Set fc = f.SubFolders
   For Each f1 in fc
      s = s & f1.name
      s = s &   "<BR>"
   Next
   ZeigeOrdnerliste = s
End Function

Methoden

Add-Methode (Folders)

Eigenschaften

Count-Eigenschaft | Item-Eigenschaft

Siehe auch

Drive-Objekt | Drives-Auflistung | File-Objekt | Files-Auflistung | Folder-Objekt | SubFolders-Eigenschaft


Script Encoder-Überblick

Script Encoder ist ein einfaches Befehlszeilentool, mit dem Skriptentwickler das endgültige Skript verschlüsseln können, damit Webhosts und Webclients den Quelltext nicht anzeigen oder ändern können. Dabei ist zu beachten, dass diese Verschlüsselung nur das beiläufige Anzeigen des Codes verhindert. Sie bietet keinen Schutz gegen entschlossene Hacker, die anzeigen wollen, was und wie Sie programmiert haben.

Webdesigner verwenden das Scripting in Webseiten und serverseitigen Active Server Pages (ASP), damit sämtliche nur vorstellbaren Features hinzugefügt werden können. Darüber hinaus wird das Scripting vom Windows® Scripting Host (WSH) und zahlreichen anderen Anwendungen mit ähnlich beeindruckenden Ergebnissen verwendet.

Bis dato war einer der Nachteile bei der Verwendung von Skripts, dass kein Schutz für das enthaltene geistige Eigentum vorhanden war. Auch konnte nicht sichergestellt werden, dass die Benutzer das erhielten, was Sie erstellt hatten. Überlegte Algorithmen und sorgfältig entworfene Skripts lagen stets offen, da sie als Standardtext gespeichert wurden. Dies hatte zur Folge, dass die Skriptbenutzer den Code des Skriptentwicklers auf allen Ebenen einsehen konnten, um ihn zu übernehmen, zu bearbeiten und für eigene Zwecke zu nutzen. Wenn Sie gegenüber Ihrer Konkurrenz einen Wettbewerbsvorteil erzielen möchten, ist dies sicherlich kein Vorteil.

Mit der Einführung von Scriptlets wird der Schutz des Quellcodes noch wichtiger. Skriptentwickler möchten diese einfache Komponentenarchitektur nutzen, ohne dabei zwingend ihren Quellcode für jedermann freizugeben. Wenn ein Skript verschlüsselt wurde, führt das Ändern eines beliebigen Teils der resultierenden Datei dazu, dass das Skript nicht mehr verwendet werden kann. Auf diese Weise wird die absolute Integrität des verschlüsselten Skripts sichergestellt.

Siehe auch

Verwenden von Script Encoder | Script Encoder-Syntax | Skriptverschlüsselungsbeispiel


Verwenden von Script Encoder

Der Script Encoder verschlüsselt ausschließlich Skriptcode. Der restliche Dateiinhalt wird ignoriert und als Standardtext angezeigt. Um den Script Encoder zu verwenden, entwickeln und debuggen Sie ein Skript auf herkömmliche Weise, und wenden Sie dann dieses Dienstprogramm an, um das endgültige Skript zu verschlüsseln. Der Script Encoder verwendet Markierungen im Quellcode, um zu kennzeichnen, wo die Verschlüsselung beginnen soll.

Das folgende Visual Basic® Scripting Edition (VBScript)-Beispiel zeigt, wie die Verschlüsselungsmarkierung verwendet wird, um eine Copyright-Meldung als Standardtext offen zu legen:

<SCRIPT LANGUAGE="VBScript">
'Copyright© 1998. XYZ Productions. All rights reserved.
'**Start Encode**
' Code hier einfügen.
</SCRIPT>

In JScript® sieht die Verschlüsselungsmarkierung wie folgt aus:

<SCRIPT LANGUAGE="JScript">
//Copyright© 1998. ZYX Productions. All rights reserved.
//**Start Encode**
// Code hier einfügen.
</SCRIPT>

Beim Aufruf des Script Encoders bleibt der gesamte Inhalt des Skriptblockes vor der Startmarkierung unverschlüsselt, während der restliche Inhalt des Skriptblockes verschlüsselt wird. Beim Auslassen der Startmarkierung wird demnach der gesamte Skriptblock verschlüsselt. Befindet sich die Startmarkierung dagegen am Ende des Skriptblockes, findet keine Verschlüsselung statt.

Nach der Verschlüsselung ändert sich der Sprachbezeichner in dem <SCRIPT>-Tag. Bei VBScript sieht der neue Bezeichner folgendermaßen aus:

<SCRIPT LANGUAGE="VBScript.Encode">

Bei JScript (oder JavaScript) sieht der neue Bezeichner folgendermaßen aus:

<SCRIPT LANGUAGE="JScript.Encode">

Der Script Encoder wird auf der MS-DOS-Eingabeaufforderung oder im Dialogfeld Ausführen folgendermaßen aufgerufen:

SRCENC [switches] inputfile outputfile

Siehe auch

Script Encoder-Überblick | Script Encoder-Syntax | Skriptverschlüsselungsbeispiel


Script Encoder-Syntax

Verschlüsselt den Skriptquellcode so, dass dieser von Benutzern nicht problemlos angezeigt oder geändert werden kann.

Syntax

SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] input file output file

Die Script Encoder-Syntax besteht aus folgenden Komponenten:

Komponente | Beschreibung
/s | Optional. Ein Schalter, der angibt, dass der Script Encoder im Hintergrund ausgeführt werden soll, d. h. keine Bildschirmausgabe erstellt. Ist der Schalter nicht gesetzt, wird standardmäßig eine ausführliche Ausgabe angezeigt.
/f | Optional. Gibt an, dass die Eingabedatei von der Ausgabedatei überschrieben werden soll. Diese Option löscht die ursprüngliche Eingabequelldatei. Ist diese Option nicht gesetzt, wird die Ausgabedatei nicht überschrieben.
/xl | Optional. Gibt an, dass die Direktive @language oberhalb von ASP-Dateien nicht hinzugefügt wird. Ist dieser Schalter nicht gesetzt, wird die Direktive @language für alle ASP-Dateien hinzugefügt.
/l defLanguage | Optional. Gibt die standardmäßige Skripterstellungssprache (JScript® oder VBScript) an, die für die Verschlüsselung verwendet wird. Es wird unterstellt, dass Skriptblöcke in der zu verschlüsselnden Datei, die kein Sprachattribut enthalten, zu dieser angegebenen Sprache gehören. Wird diese Option nicht gesetzt, ist JScript die Standardsprache für HTML-Seiten und Scriptlets, während VBScript die Voreinstellung für Active Server Pages ist. Bei reinen Textdateien bestimmt die Dateierweiterung (JS oder VBS) die Standardskriptsprache.
/e defExtension | Optional. Ordnet der Eingabedatei einen speziellen Dateityp zu. Verwenden Sie diesen Schalter, wenn der Dateityp durch die Dateierweiterung nicht erkennbar ist, d. h. wenn die Erweiterung der Eingabedatei nicht zu den bekannten Erweiterungen gehört, der Dateiinhalt jedoch einem der bekannten Typen entspricht. Für diese Option gibt es keine Standardeinstellung Wenn eine Datei mit einer nicht bekannten Erweiterung gefunden wird und diese Option nicht angegeben ist, misslingt die Ausführung des Script Encoders bei dieser nicht bekannten Datei. Bekannte Dateierweiterungen sind ASA, ASP, CDX, HTM, HTML, JS, SCT und VBS.
inputfile | Obligatorisch. Der Name der zu verschlüsselnden Eingabedatei mit allen erforderlichen Pfadinformationen relativ zum aktuellen Verzeichnis.
outputfile | Obligatorisch. Der Name der zu erstellenden Ausgabedatei mit allen erforderlichen Pfadinformationen relativ zum aktuellen Verzeichnis.

Hinweise

Der Script Encoder kann vier verschiedene Dateitypen verarbeiten. Dazu zählen:

  • ASP. Dieses Format besteht aus einer Active Server Page-Textseite mit gültigen HTML-Tags und -Skriptblöcken, die in<SCRIPT> ... </SCRIPT>-Tags oder <% ... %>-Tags eingebettet sind. Zu den Anwendungen, die dieses Format verwenden, gehört Microsoft® Internet Information Services (IIS). Bekannte Dateinamenerweiterungen sind ASP, ASA und CDX.
  • HTML. Dieses Format besteht aus einer Textdatei mit gültigen HTML- und eingebetteten Skriptblöcken. Anwendungen, die dieses Skripterstellungsformat verwenden, sind Microsoft FrontPage®, Microsoft® Visual InterDev™ und praktisch alle Webdesigner und Browser. Zu den bekannten Erweiterungen zählen HTM und HTML.
  • Reiner Text. Dieses Format besteht aus einer Textdatei, die nur Skriptcode ohne umgebende Tags enthält. Anwendungen, die dieses Skripterstellungsformat nutzen, sind Windows® Scripting Host (WSH) und Microsoft® Outlook®. Bekannte Dateierweiterungen sind JS und VBS, die nach der Verschlüsselung in JSE und VBE geändert werden.
  • Scriptlet. Dieses Format besteht aus einer Textdatei mit gültigem Scriptlet-Code innerhalb von <SCRIPT> ... </SCRIPT>-Tags. Bekannte Dateierweiterungen sind SCT und WSH.

Beispiele

Es folgen Beispiele für die Verwendung des Script Encoders und eine kurze Erläuterung der Ergebnisse.

Wenn Sie die Eingabedatei test.html verschlüsseln und die Ausgabedatei encode.html erstellen möchten, verwenden Sie:

screnc test.html encode.html

Wenn Sie die Eingabedatei test.html verschlüsseln und diese mit der verschlüsselten Ausgabedatei überschreiben möchten, verwenden Sie:

screnc /f test.htm

Wenn Sie alle ASP-Dateien im aktuellen Verzeichnis verschlüsseln und die verschlüsselten Ausgabedateien in dem Verzeichnis C:\temp ablegen möchten, verwenden Sie:

screnc *.asp c:\temp

Wenn Sie alle Dateien im aktuellen Verzeichnis als ASP-Dateien verschlüsseln und diese in dem Verzeichnis C:\temp ablegen möchten, verwenden Sie: screnc /e asp *.* c:\temp

Wenn Sie die Eingabedatei test.htm verschlüsseln und die Ausgabedatei encode.htm erstellen möchten, während Sie gleichzeitig sicherstellen, dass bei allen Skriptblöcken ohne Sprachattribut VBScript verwendet wird, verwenden Sie:

screnc /l vbscript test.htm encode.htm

Wenn Sie alle Scriptlet-Dateien im aktuellen Verzeichnis verschlüsseln und diese mit den verschlüsselten Dateien überschreiben möchten, ohne eine Meldung anzuzeigen, verwenden Sie:

screnc /s /f *.sct

Siehe auch

Script Encoder-Überblick | Verwenden von Script Encoder | Skriptverschlüsselungsbeispiel


Skriptverschlüsselungsbeispiel

Hier ist ein kurzes Beispiel einer Webseite, die zu schützenden JScript-Code enthält:

<HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//Copyright© 1998 Microsoft Corporation. All Rights Reserved.
//**Start Encode**
function verifyCorrectBrowser(){
  if(navigator.appName == "Microsoft Internet Explorer")
    if (navigator.appVersion.indexOf ("5.") >= 0)
      return(true);
    else
      return(false);
}
function getAppropriatePage(){
  var str1 = "Wäre dies tatsächlich eine Website, d.h. eine Seite, die mit anderen";
  var str2 = "Browsern als ";
  var str3 = "Microsoft Internet Explorer 5.0 ";
  var str4 = "kompatibel ist, wäre sie geladen worden.";
  if (verifyCorrectBrowser())
    document.write(str1 + str3 + str4);
  else
    document.write(str1 + str2 + str3 + str4);
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>
So sieht dieselbe Seite nach dem Durchlaufen des Script Encoders aus:
<HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript.Encode">
<!--//
//Copyright© 1998 Microsoft Corporation. All Rights Reserved.
//**Start Encode**#@~^QwIAAA==@#@&0;mDkWP7nDb0zZKD.n1YAMGhk+Dvb`@#@&P,kW`UC7kLlDGDcl22gl:n~{'~Jtr1DGkW6YP&xDnD+OPA62sKD+ME#@#@&P,~~k6PvxC\rLmYGDcCwa.n.kkWU bx[+X66Pcr*cJ#,@*{~!*P~P,P~.YEMU`DDEbIP,P,+s/n@#@&P~P,~PM+O;Mx`WC^/n#pN6EU1YbWx,oObaw.WaDrCD+nmL+v#@#@&~P7lMPdY.q,'~J_CN,Y4rkP4nnPCx,C1Y;mV,+(PkrY~~l,wCLPmKhwmYk(snPSkDt~JI@#@&P~\m.PkY.+,'PE8MWA/.kPGDtDPDtmUPri@#@&,P-CMP/D.&,'Pr\rmMWkWWY~(YnDnY,2a2^WDn.,* !,Ep@#@&,P7lD,/D.c,'~JSW;s9Ptm-+,4+U~VKl9+[REI,Pr0,c\DrWHZW..mOAMGS/nM`*#@#@&P,~P9W^Es+UOchDbO+v/YMq~_,/DDfPQ~kY.c*IP,+sd@#@&~~,P[W1;s+UDRSDkD+vdYMF~_,/O.yP_,dYM&P3~dYMc*iNz&R @*^#~@
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>
Anmerkung Wenn Sie nach dem Verschlüsseln nur ein Zeichen in dem verschlüsselten Text ändern, geht die Integrität des gesamten Skripts verloren, woraufhin es nicht mehr verwendet werden kann.

Siehe auch

Script Encoder-Überblick | Verwenden von Script Encoder | Script Encoder-Syntax


Windows Script Host

Windows Script Host

In diesem Abschnitt

Erste Schritte

WSH-Grundlagen

Ausführen von Skripts

Grundfunktionen von Windows Script Host

Sicherheit und Windows Script Host

Verzeichnis


Erste Schritte

In diesem Abschnitt

Neuigkeiten in WSH
Beschreibung der neuen Features in WSH 5.6.
Typografische Vereinbarungen
Beschreibung der Syntax und Konventionen in der Hilfedokumentation von WSH 5.6.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


Neuigkeiten in WSH 5.6

In dieser Version von Windows Script Host (Version 5.6) wurden verschiedene Funktionsbereiche neu überarbeitet.

  • Verbesserte Bearbeitung von Argumenten - Die Bearbeitung und Dokumentierung von Befehlszeilenargumenten wurde vereinfacht. Der Vorgang des Integrierens der Skripts in andere Befehlszeilenskripts wurde vereinfacht; zudem ist es nun einfacher, Skripts mit Hilfeinformationen für Benutzer zu erstellen. In der folgenden Tabelle finden Sie Informationen zu den Sprachfeatures von WSH, durch die Sie direkt zu den neuen Funktionen gelangen.
Informationen zu | Finden Sie unter
Gruppieren der Skriptparameter. | <runtime>-Element
Definieren der benannten Skriptparameter. | <named>-Element
Definieren der unbenannten Skriptparameter. | <unnamed>-Element
Erstellen einer Dokumentation für das Skript. | <example>-Element <description>-Element
Gemeinsames Nutzen der Umgebung des aktuellen Prozesses (IOW, WSH) mit einem eingeleiteten Prozess. | Exec-Methode
Programmseitiges Zugreifen auf die Standardströme. | Exec-Methode WshScriptExec-Objekt
Programmseitiges Zugreifen auf Umgebungsvariablen. | Environment-Eigenschaft WshEnvironment-Objekt ExpandEnvironmentStrings-Methode Remove-Methode
Ermitteln, ob ein eingeleiteter Skriptprozess derzeit ausgeführt wird. | Status-Eigenschaft (WshScriptExec)
Zugreifen auf den StdIn-Eingabestrom des eingeleiteten Skriptprozesses. | StdIn-Eigenschaft (WshScriptExec)
Zugreifen auf den StdOut-Ausgabestrom des eingeleiteten Skriptprozesses. | StdOut-Eigenschaft (WshScriptExec)
Zugreifen auf den StdErr-Ausgabestrom des eingeleiteten Skriptprozesses. | StdErr-Eigenschaft (WshScriptExec)
Beenden eines eingeleiteten Skriptprozesses. | Terminate-Methode (WshScriptExec)
Zugreifen auf die benannten Befehlszeilen-Skriptargumente. | WshNamed-Objekt
Ermitteln, ob ein bestimmter Schlüsselwert im WshNamed-Objekt vorhanden ist. | Exists-Methode
Ermitteln der Anzahl von Parametern in den Objekten WshNamed oder WshUnnamed. | Count-Methode
  • Ausführen von Skripts auf Remotesystemen - Sie können Skripts auf verschiedene Remotecomputersysteme laden und alle gleichzeitig ausführen. Während der Ausführung eines Remoteskripts können Sie den Fortschritt überprüfen. Am Ende der Ausführung können Sie sicherstellen, dass das Skript erfolgreich ausgeführt wurde, oder die Ursache des verfrühten Abbruchs feststellen. Es wurde ein neues Dispatch-Objekt zum Erstellen von WSH-Remoteobjekten entwickelt: das Controller-Objekt. Darüber hinaus existiert ein neues Objekt, das eine Instanz eines ausgeführten Skripts repräsentiert: das Remote WSH-Objekt.
Informationen zu | Finden Sie unter
Erstellen eines Remoteskriptobjekts - die WSH-Remoteschnittstelle. | WshController-Objekt
Erstellen eines Remoteskriptobjekts - Verwenden der WSH-Remoteschnittstelle. | CreateScript-Methode
Erstellen eines Remoteskriptobjekts - Abrufen einer Zugriffsnummer. | WshRemote-Objekt
Starten eines Remoteskriptprozesses. | Execute-Methode
Ermitteln, ob ein Remoteskript derzeit ausgeführt wird. | Status-Eigenschaft (WshRemote)
Ermitteln der Gründe für das Beenden eines Remoteskripts. | Description-Eigenschaft (WshRemoteError)
Identifizieren der Anweisung, die zum Beenden des Remoteskripts führte. | Line-Eigenschaft (WshRemoteError)
Zugreifen auf Fehlerinformationen nach dem Beenden eines Remoteskripts. | WshRemoteError-Objekt
Identifizieren des fehlerhaften Zeichens in der Codezeile. | Character-Eigenschaft
Identifizieren der Fehlernummer, die für einen Skriptfehler steht. | Number-Eigenschaft
Identifizieren der Quelle des Skriptfehlers. | Source-Eigenschaft
Identifizieren der Quellcodezeile, die einen Fehler auslöste. | SourceText-Eigenschaft
Bearbeiten von Remoteobjektereignissen. | Start-Ereignis End-Ereignis Error-Ereignis
  • Neue Prozesse können beim Starten als Objekte behandelt werden - Sie bestimmen den Status der eingeleiteten Prozesse und greifen auf ihre Standard-E/A-Ströme zu.
Informationen zu | Finden Sie unter
Einleiten eines Prozesses. | Exec-Methode
Zugreifen auf das Objekt, das für ausgeführte Prozesse steht. | WshScriptExec-Objekt
Zugreifen auf die Statusinformationen eines Prozesses. | Status-Eigenschaft (WshScriptExec)
Zugreifen auf die Standard-E/A-Ströme. | StdOut-Eigenschaft (WshScriptExec)
 | StdIn-Eigenschaft (WshScriptExec)
 | StdErr-Eigenschaft (WshScriptExec)
  • Zugreifen auf das aktuelle Arbeitsverzeichnis — Sie können das aktuelle Arbeitsverzeichnis des aktiven Prozesses bestimmen/ändern.
Informationen zu | Finden Sie unter
Zugreifen auf Informationen im aktiven Verzeichnis. | CurrentDirectory-Eigenschaft
  • Sicherheitsprobleme im Zusammenhang mit Skripts wurden gelöst — Durch ein neues Sicherheitsmodell ist die Verteilung und Ausführung von Skripts sicherer geworden.
Informationen zu | Finden Sie unter
Signieren und Überprüfen von Skripts. | Sicherheit und Windows Script Host


Aktualisieren von Windows Script Host

Wenn Sie derzeit mit Windows 2000 oder Windows ME arbeiten, ist WSH, Version 2.0 (Windows Script Host) auf Ihrem Computer installiert. Wenn Sie Windows 95, 98 oder Windows NT 4.0 verwenden, ist Version 1.0 installiert. Besuchen Sie die Microsoft-Website "Windows Script Technologies" unter (http://www.microsoft.com/germany/scripting), um zu WSH 5.6 zu aktualisieren.

Anmerkung Die neueste Version von WSH ist Version 5.6. Aufgrund von Dateiversionsproblemen wurden der Einfachheit halber einige Versionsnummern übersprungen.


Typografische Vereinbarungen

In der Hilfe zu Windows Script Host 5.6 werden unterschiedliche Schriftarten, Schriftstärken und Farben verwendet, um Ihre Aufmerksamkeit auf besondere Textpassagen zu lenken.

Beispiele für Textformate

Art der Information | Beispiel
Codeausschnitte werden in Courier blau angezeigt
WScript.Echo "VBScript sagt Hallo"
Wichtige Elemente in den Codeausschnitten werden in Fettschrift in Courier blau angezeigt
WScript.Echo "VBScript sagt Hallo"
Schlüsselwörter werden in Fettschrift angezeigt | Im Dialogfeld Eigenschaften auf der Registerkarte Skript…
Verknüpfungen werden unterstrichen angezeigt | WshNetwork-Objekt
Popup-Verknüpfungen werden in Kursiv- sowie Fettschrift angezeigt | <?job error="flag" debug="flag" ?>


WSH-Versionsinformationen

Die folgende Tabelle listet die Versionen von Windows Script Host auf, die von Microsoft-Hostanwendungen implementiert werden.

Hostanwendung | 1.0 | 2.0 | 5.6
Microsoft Windows 98 | x |  |
Microsoft Windows NT 4 Option Pack | x |  |
Microsoft Windows 2000 |  | X |

Die folgende Tabelle listet die Windows Script Host-Sprachelemente und die Versionen in der Reihenfolge ihrer Einführung auf.

Sprachelement | 1.0 | 2.0 | 5.6
<?job ?>-Element |  | X |
<?XML ?>-Element |  | X |
AddPrinterConnection-Methode | x |  |
AddWindowsPrinterConnection-Methode |  | X |
AppActivate-Methode |  | X |
Arguments-Eigenschaft | x |  |
AtEndOfLine-Eigenschaft |  | X |
AtEndOfStream-Eigenschaft |  | X |
Character-Eigenschaft |  |  | x
Close-Methode |  | X |
Column-Eigenschaft |  | X |
ComputerName-Eigenschaft | x |  |
ConnectObject-Methode |  | x |
Count-Methode | x |  |
CreateObject-Methode | x |  |
CreateScript-Methode |  |  | x
CreateShortcut-Methode | x |  |
Description-Eigenschaft | x |  |
Description-Eigenschaft (WshRemote) |  |  | x
DisconnectObject-Methode | x |  |
Echo-Methode | x |  |
EnumNetworkDrives-Methode | x |  |
EnumPrinterConnections-Methode | x |  |
Environment-Eigenschaft | x |  |
Error-Eigenschaft (WshRemote) |  |  | x
<example>-Element |  |  | x
Exec-Methode |  |  | x
Execute-Methode |  |  | x
Exists-Methode |  |  | x
ExitCode-Eigenschaft |  |  | x
ExpandEnvironmentStrings-Methode | x |  |
FullName-Eigenschaft | x |  |
GetObject-Methode | x |  |
GetResource-Methode |  | x |
HotKey-Eigenschaft | x |  |
IconLocation-Eigenschaft | x |  |
Item-Eigenschaft | x |  |
Item-Eigenschaft (WshNamed) |  |  | x
Item-Eigenschaft (WshUnnamed) |  |  | x
<job>-Element |  | x | x
Length-Eigenschaft | x |  |
Line-Eigenschaft |  | x |
Line-Eigenschaft (WshRemote) |  |  | x
LogEvent-Methode |  | x |
MapNetworkDrive-Methode | x |  |
Name-Eigenschaft | x |  |
<named>-Element |  |  | x
Number-Eigenschaft |  |  | x
<object>-Element |  | x |
<package>-Element |  | x |
Path-Eigenschaft | x |  |
Popup-Methode | x |  |
ProcessID-Eigenschaft |  |  | x
Quit-Methode | x |  |
Read-Methode |  | x |
ReadAll-Methode |  | x |
ReadLine-Methode |  | x |
<reference>-Element |  | x |
RegDelete-Methode | x |  |
RegRead-Methode | x |  |
RegWrite-Methode | x |  |
Remove-Methode | x |  |
RemoveNetworkDrive-Methode | x |  |
RemovePrinterConnection-Methode | x |  |
<resource>-Element |  |  |
Run-Methode | x |  |
<runtime>-Element |  |  | x
Save-Methode | x |  |
<script>-Element |  | x |
ScriptFullName-Eigenschaft | x |  |
ScriptName-Eigenschaft | x |  |
SendKeys-Methode |  | x |
SetDefaultPrinter-Methode | x |  |
ShowUsage-Methode |  |  | x
Skip-Methode |  | x |
SkipLine-Methode |  | x |
Sleep-Methode |  | x |
Source-Eigenschaft |  |  | x
SourceText-Eigenschaft |  |  | x
SpecialFolders-Eigenschaft | x |  |
Status-Eigenschaft (WshRemote) |  |  | x
Status-Eigenschaft (WshScriptExec) |  |  | x
StdErr-Eigenschaft |  | x |
StdErr-Eigenschaft (WshScriptExec) |  |  | x
StdIn-Eigenschaft |  | x |
StdIn-Eigenschaft (WshScriptExec) |  |  | x
StdOut-Eigenschaft |  | x |
StdOut-Eigenschaft (WshScriptExec) |  |  | x
TargetPath-Eigenschaft | x |  |
Terminate-Methode (WshScriptExec) |  |  | x
<usage>-Element |  |  | x
UserDomain-Eigenschaft | x |  |
UserName-Eigenschaft | x |  |
Version-Eigenschaft | x |  |
WindowStyle-Eigenschaft | x |  |
WorkingDirectory-Eigenschaft | x |  |
Write-Methode |  | x |
WriteBlankLines-Methode |  | x |
WriteLine-Methode |  | x |
WScript-Objekt | x |  |
WshArguments-Objekt | x |  |
WshController-Objekt |  |  | x
WshEnvironment-Objekt | x |  |
WshNamed-Objekt |  |  | x
WshNetwork-Objekt | x |  |
WshRemote-Objekt |  |  | x
WshRemoteError-Objekt |  |  | x
WshScriptExec-Objekt |  |  | x
WshShell-Objekt | x |  |
WshShortcut-Objekt | x |  |
WshSpecialFolders-Objekt | x |  |
WshUnnamed-Objekt |  |  | x
WshUrlShortcut-Objekt | x |  |


Grundlagen zu Windows Script Host

Microsoft® Windows® Script Host (WSH) ist ein sprachunabhängiger Skripthost für Skriptmodule, die mit Windows Script kompatibel sind. Mit WSH stehen Ihnen einfache, leistungsstarke und flexible Skriptfunktionen auf der Windows-32-Bit-Plattform zur Verfügung, die es Ihnen ermöglichen, Skripts sowohl auf dem Windows-Desktop als auch an der Eingabeaufforderung auszuführen.

Windows Script Host ist ideal für nicht-interaktive Skriptanforderungen, wie Anmeldeskripts, Verwaltungsskripts und die Computerautomatisierung.

In diesem Abschnitt

Was ist WSH?
Allgemeiner Überblick über Windows Script Host
Hostumgebungen und Skriptmodule
Informationen zur WSH-Hostumgebung und die möglichen Skriptmodule
Erstellen von Skripts, die WSH verwenden kann
Erstellen eines mit WSH kompatiblen Skripts
Windows Script Host-Objektmodell
Ein Wegweiser für die Architektur von WSH


Was ist WSH?

WSH (Windows Script Host) ist ein Verwaltungstool für Windows.

WSH erstellt eine Umgebung, die als Host für Skripts eingesetzt werden kann. Wenn also ein Skript auf Ihren Computer gelangt, übernimmt WSH die Rolle des Hosts - WSH stellt also dem Skript Objekte und Dienste sowie eine Reihe von Richtlinien zur Verfügung, die bei der Ausführung des Skripts eingehalten werden. Unter anderem verwaltet Windows Script Host die Sicherheit und ruft das geeignete Skriptmodul auf.

WSH zeichnet sich durch Sprachunabhängigkeit für WSH-kompatible Skriptmodule aus. Mit WSH stehen Ihnen einfache, leistungsstarke und flexible Skriptfunktionen auf der Windows-Plattform zur Verfügung und ermöglichen es Ihnen so, Skripts sowohl auf dem Windows-Desktop als auch an der Eingabeaufforderung auszuführen.

Windows Script Host ist ideal für nicht-interaktive Skriptanforderungen, wie Anmeldeskripts, Verwaltungsskripts und die Computerautomatisierung.

Objekte und Dienste von WSH

Windows Script Host stellt mehrere Objekte für die direkte Bearbeitung der Skriptausführung sowie Hilfsfunktionen für andere Aktionen bereit. Mit Hilfe dieser Objekte und Dienste können Sie Aufgaben wie die Folgenden ausführen:

  • Ausgeben von Meldungen auf dem Bildschirm
  • Ausführen von Grundfunktionen, wie CreateObject und GetObject
  • Zuordnen von Netzlaufwerken
  • Herstellen von Verbindungen zu Druckern
  • Abrufen und Ändern von Umgebungsvariablen
  • Ändern von Registrierungsschlüsseln

Wo befindet sich WSH?

Windows Script Host ist in Microsoft Windows 98, 2000 und die Millennium Editions integriert. Wenn Sie Windows 95 ausführen, können Sie Windows Script Host 5.6 von der Microsoft-Website "Windows Script Technologies" downloaden (http://www.microsoft.com/germany/scripting).

Anmerkung Auf dieser Website können Sie auch Updates für die derzeit verwendeten Module downloaden. Die zum Lieferumfang von Windows 98, 2000 und den Millennium Editions gehörende Version ist entweder Version 1.0 oder 2.0. Sie profitieren nur von den neuen Features, wenn Sie zu Version 5.6 aktualisieren.

Windows Script Host-Objektmodell | CreateObject | GetObject


Skripts und die Automatisierung von Windows

Computer sind wunderbare Werkzeuge, die wiederholt vorkommende Aufgaben ausführen. Was jedoch, wenn Sie eine Reihe von wiederholt vorkommenden Aufgaben ausführen müssen? Die richtige Antwort sind Skripts.

Was ist ein Skript?

Ein Skript ist ein Programm, das in einer Skriptsprache erstellt wurde, wie etwa JScript und VBScript. Weitere Skriptsprachen sind Rexx, Python und Perl. Im Vergleich zu Programmiersprachen wie C++ und Visual Basic eignen sich Skriptsprachen besser, um kurze Anwendungen zu entwickeln, die rasch Lösungen zu kleineren Problemen bieten.

Automatisieren von Windows

In vielen Fällen werden Skripts zur Automatisierung manueller Aufgaben verwendet, vergleichbar mit einem Makro. Skripts eignen sich optimal für die folgenden Aufgaben:

  • Bearbeiten der Windows-Umgebung
  • Ausführen sonstiger Programme
  • Automatisieren von Anmeldeprozeduren
  • Senden von Schlüsselsequenzen an eine Anwendung

Bei mehreren ähnlichen Aufgaben können Sie ein allgemeines Skript schreiben, das alle Aufgaben gleichzeitig bearbeitet.

Sie können Skripts schreiben, die eine Aktion als Reaktion auf ein Ereignis starten. Sie können auch Skripts erstellen, die eine Reihe von Ereignissen ausführen und Aktionen nur auslösen, wenn bestimmte Kriterien erfüllt sind.

Skripts eignen sich auch optimal für nicht wiederholt vorkommende Aufgaben. Wenn es im Rahmen einer Aufgabe notwendig ist, mehrere Aufgaben in Folge auszuführen, können Sie diese Aufgabenfolge mit Hilfe eines Skripts zu einer einzelnen Aufgabe umwandeln.

Skriptdateitypen


Skriptdateitypen

Eigenständige Skripts kommen in unterschiedlichen Formen vor, wobei jede über eine eigene Dateinamenerweiterung verfügt. In der folgenden Tabelle finden Sie eine Liste der häufigsten Typen.

Erweiterung | Skripttyp | Beschreibung
BAT | MS-DOS-Batchdatei | Batchdatei des MS-DOS-Betriebssystems
ASP | ASP-Seite | Active Server Page-Datei
HTML | HTML-Datei | Webseite
JS | JScript-Datei | Windows-Skript
VBS | VBScript-Datei | Windows-Skript
WSF | Windows Script Host-Datei | Container- oder Projektdatei für ein Windows-Skript; unterstützt von WSH 2.0 und höher.
WSH | Windows Script Host-Dateien | Eigenschaftendatei für eine Skriptdatei; unterstützt von WSH 1.0 und höher.

Jeder Skripttyp ist auf unterschiedliche Anwendungsanforderungen zugeschnitten und zeichnet sich durch eigene Stärken und Schwächen aus. Die Wahl des Skripttyps hängt von Ihren Anforderungen ab.

Bei bestimmten Szenarien können Sie das Gesamtproblem in mehrere kleine Teile unterteilen und dabei ein gesondertes Skript für jeden Teil erstellen, wobei jedes Skript in der geeignetsten Skriptsprache geschrieben werden kann.

Genau hierzu eignen sich Windows Script Host-Dateien (WSF-Dateien). WSF-Dateien können weitere Skriptdateien im Rahmen des Skripts enthalten. Somit können mehrere WSF-Dateien auf Bibliotheken mit nützlichen Funktionen verweisen, die an einem zentralen Ort erstellt und gespeichert werden können.

Windows Script Host-Objektmodell


Hostumgebungen und Skriptmodule

Skripts sind oft in Webseiten eingebaut - entweder in einer HTML-Seite (auf der Clientseite) oder in einer ASP-Seite (auf der Serverseite). Bei einem in eine HTML-Seite eingebauten Skript wird die Modulkomponente, die den Skriptcode interpretiert und ausführt, vom Webbrowser, wie z. B. Internet Explorer, geladen. Bei einem in eine ASP-Seite eingebauten Skript ist das Modul, das den Skriptcode interpretiert und ausführt, in IIS (Internet Information Services) integriert.

Windows Script Host führt Skripts außerhalb von HTML- oder ASP-Seiten aus, die als eigenständige Textdateien vorliegen.

Verfügbare Skriptmodule

Im Allgemeinen werden Skripts entweder in Microsoft JScript oder in VBScript erstellt. Diese beiden Skriptmodule gehören zum Lieferumfang von Microsoft Windows 98, 2000 und den Millennium Editions. Sie können auch andere Skriptmodule, wie Perl, REXX und Python, zusammen mit Windows Script Host verwenden.

Anmerkung Informationen finden Sie unter Microsoft Developer Network (MSDN) (http://msdn.microsoft.com/workshop/languages/clinic/vbsvjs.asp).

Ein eigenständiges, in JScript erstelltes Skript weist die Dateinamenerweiterung JS auf, während ein eigenständiges in VBScript erstelltes Skript über die Erweiterung VBS verfügt. Diese Erweiterungen sind in Windows registriert. Wenn Sie nun einen dieser Dateitypen ausführen, wird Windows Script Host von Windows gestartet und das zugehörige Skriptmodul zur Übertragung und Ausführung der Datei aufgerufen.

Anmerkung Wenn Sie ein anderes Modul ausführen möchten, muss dieses Modul richtig registriert sein.


Erstellen von Skripts, die WSH verwenden kann

Ein Windows-Skript ist eine Textdatei. Sie können ein Skript mit Hilfe eines beliebigen Texteditors erstellen, sofern Sie das Skript mit einer mit WSH kompatiblen Skripterweiterung (JS, VBS oder WSF) speichern.

Mit dem Editor ist der am einfachsten zugängliche Texteditor bereits auf Ihrem Computer installiert. Sie können aber auch einen von Ihnen bevorzugten HTML-Editor, Microsoft Visual C++ oder Visual InterDev verwenden.

So erstellen Sie ein Skript mit Hilfe des Editors

  1. Starten Sie den Editor.
  2. Erstellen Sie das Skript. Geben Sie beispielsweise WScript.Echo("Hallo Welt!"); ein.
  3. Speichern Sie diese Textdatei mit der Erweiterung JS (anstelle der Standarderweiterung TXT). Zum Beispiel, Hallo.js.
  4. Navigieren Sie zu der gespeicherten Datei, und doppelklicken Sie darauf.
  5. Windows Script Host ruft das JScript-Modul auf und führt das Skript aus. Im Beispiel wird ein Meldungsfeld mit dem Inhalt "Hallo Welt!" angezeigt.


Aufteilen von Skripts in wiederverwendbare Teile

Zur Vereinfachung der Skripterstellung können Sie ein Skript in mehrere Teile aufspalten. Bei diesem Ansatz erstellen Sie eine WSF-Datei und verwenden sie als Ausgangspunkt der Ausführung. Bei den anderen Teilen könnte es sich um JS- oder VBS-Dateien handeln. Sie können aus der WSF-Datei heraus auf diese Dateien verweisen.

Durch diesen Ansatz wird der Code robuster, da einzelne Teile isoliert werden und so das Debuggen der einzelnen Teile nacheinander möglich ist. Darüber hinaus lässt sich der Code wiederverwenden, da Sie Funktionen erstellen können, die sich wieder und wieder aufrufen lassen.


Windows Script Host-Objektmodell

Das Objektmodell von Windows Script Host setzt sich aus 14 Objekten zusammen. Das Stammobjekt ist das WScript-Objekt.

Die folgende Darstellung veranschaulicht die Hierarchie des Windows Script Host-Objektmodells. Klicken Sie auf ein Objekt im Diagramm, damit das zugehörige Hilfethema angezeigt wird.

WshScriptExec-ObjektWshSpecialFolders-AuflistungWshEnvironment-AuflistungWshUrlShortCut-ObjektWshShortCut-ObjektWshShell-ObjektWshNetwork-ObjektWshRemoteError-ObjektWshRemote-ObjektWshController-ObjektWshUnnamed-AuflistungWshNamed-AuflistungWshArguments-AuflistungWScript-Objekt

Das Objektmodell von Windows Script Host stellt eine logische, systematische Möglichkeit zur Ausführung mehrerer Verwaltungsaufgaben bereit. Die bereitgestellten COM-Schnittstellen können in zwei Hauptkategorien unterteilt werden:

  • Skriptausführung und Problembehandlung

    Diese Reihe von Schnittstellen ermöglicht die Ausführung von Grundfunktionen von Windows Script Host, die Ausgabe von Meldungen auf dem Bildschirm und die Ausführung von COM-Grundfunktionen, wie etwa CreateObject und GetObject.

  • Hilfsfunktionen

    Hilfsfunktionen sind Eigenschaften und Methoden zur Ausführung von Aktionen, wie z. B. der Zuordnung von Netzlaufwerken, der Verbindung zu Druckern, dem Abfragen und Ändern von Umgebungsvariablen und der Bearbeitung von Registrierungsschlüsseln. Systemadministratoren können die Hilfsfunktionen von Windows Script Host zum Erstellen einfacher Anmeldeskripts verwenden.

WSH-Objekte und zugehörige Aufgaben

In der folgenden Tabelle finden Sie eine Liste der WSH-Objekte sowie der zugeordneten Standardaufgaben.

Objekt | Das Objekt ermöglicht Folgendes:
Wscript
  • Festlegen und Abrufen von Befehlszeilenargumenten
  • Bestimmen des Namens der Skriptdatei
  • Bestimmen des Namens der Hostdatei (wscript.exe oder cscript.exe)
  • Ermitteln der Hostversionsinformationen
  • Erstellen, Herstellen von Verbindungen zu und Trennen der Verbindungen zu COM-Objekten
  • Auffangen von Ereignissen
  • Programmseitiges Beenden der Skriptausführung
  • Ausgeben von Informationen auf dem Standardausgabegerät (z. B. in einem Dialogfeld oder an der Befehlszeile)
WshArguments | Zugreifen auf die gesamte Gruppe der Befehlszeilenargumente
WshNamed | Zugreifen auf die Gruppe der benannten Befehlszeilenargumente
WshUnnamed | Zugreifen auf die Gruppe der unbenannten Befehlszeilenargumente
WshNetwork
  • Herstellen von Verbindungen zu Netzwerkfreigaben und Netzwerkdruckern bzw. Trennen der Verbindungen
  • Zuordnen von Netzwerkfreigaben bzw. Aufheben der Zuordnungen
  • Zugreifen auf Informationen über den derzeit angemeldeten Benutzer
WshController | Erstellen eines Remote-Skriptprozesses mit Hilfe der Controller-Methode CreateScript()
WshRemote
  • Verwalten von Remote-Computersystemen in einem Computernetzwerk
  • Programmseitiges Bearbeiten anderer Programme/Skripts
WshRemote Error | Zugreifen auf die Fehlerinformationen, die bereitgestellt werden, wenn ein Remoteskript (ein WshRemote-Objekt) aufgrund eines Skriptfehlers beendet wird
WshShell
  • Lokales Ausführen eines Programms
  • Bearbeiten des Inhalts der Registrierung
  • Erstellen einer Verknüpfung
  • Zugreifen auf einen Systemordner
  • Bearbeiten von Umgebungsvariablen (z. B. WINDIR, PATH oder PROMPT)
WshShortcut | Programmseitiges Erstellen einer Verknüpfung
WshSpecialfolders | Zugreifen auf einen der Windows-Ordner mit Sonderfunktion
WshURLShortcut | Programmseitiges Erstellen einer Verknüpfung zu einer Internetressource
WshEnvironment | Zugreifen auf eine der Umgebungsvariablen (z. B. WINDIR, PATH oder PROMPT)
WshScriptExec Ermitteln der Status- und Fehlerinformationen zu einem Skript, das mit Hilfe von Exec() ausgeführt wurde

Zugreifen auf die Kanäle StdIn, StdOut und StdErr

Zusätzlich zu den von Windows Script Host bereitgestellten Objektschnittstellen können Systemadministratoren alle ActiveX-Steuerelemente verwenden, die Automatisierungsschnittstellen zum Ausführen verschiedener Aufgaben auf der Windows-Plattform offen legen. So können Administratoren beispielsweise Skripts erstellen, um die Windows-ADSI (Active Directory Service Interface) zu verwalten.


Ausführen von Skripts

Sie können Ihre Skripts auf drei verschiedene Arten ausführen.

  • Doppelklicken Sie in der Windows-Umgebung auf das Symbol für das Skript (Sie führen Skriptdateien auf die gleiche Weise wie normale ausführbare Dateien aus).
  • Klicken Sie in der Windows-Umgebung auf die Schaltfläche Start und anschließend auf Ausführen. Geben Sie im Dialogfeld Ausführen im Feld Öffnen den vollständigen Pfad zu dem Skript an, und klicken Sie auf OK.
  • Geben Sie auf der Befehlszeile den Namen des Skripts ein.

Siehe auch

Ausführen von Skripts mit WScript.exe | Ausführen von Skripts mit CScript.exe | Was müssen Sie einschließen, um ein Skript auszuführen | Unterstützung für Drag & Drop


Verwenden von Windows-Skriptdateien (WSF)

Bei einer Windows-Skriptdatei (WSF) handelt es sich um ein Textdokument, das Extensible Markup Language (XML)-Code enthält. Sie integriert viele Features, die Ihnen eine höhere Flexibilität beim Schreiben von Skripts bietet. Da Windows-Skriptdateien nicht modulspezifisch sind, können Sie Skriptcode von jedem Windows Script-kompatiblen Scriptmodul enthalten. Sie agieren als Container.

Mit WSF-Dateien können Sie beim Erstellen von Skripts folgende Features ausnutzen:

WSF-Dateien unterstützen | Sie können
Include-Anweisungen | Funktionen aus VBScript- oder JScript-Dateien in Ihr Windows Script Host-Projekt integrieren.
Mehrere Module | mehr als eine Skriptsprache pro Datei verwenden.
Typbibliotheken | Konstanten in Ihren Code einfügen.
Tools | Dateien mit jedem beliebigen XML-Editor bearbeiten.
Mehrere Aufträge in einer Datei | Ihren gesamten Code an einem einzelnen Speicherort ablegen.

Include-Statements

Wenn Sie noch JS- und VBS-Dateien aus vorangegangenen Windows Script Host-Projekten besitzen, ermöglicht Ihnen eine WSF-Datei diese mit Windows Script Host zu verwenden. Eine WSF-Datei kapselt eine Funktionsbibliothek, die wiederum vom mehreren WSF-Dateien verwendet werden kann.

Das folgende Beispiel zeigt eine WSF-Datei, die eine JScript-Datei (fso.js) enthält, sowie eine VBScript-Funktion, die eine Funktion (GetFreeSpace) in der enthaltenen Datei aufruft. Die Inhalte von fso.js werden ebenfalls angezeigt.

<job id="IncludeExample">
   <script language="JScript" src="FSO.JS"/>
   <script language="VBScript">
      ' Get the free space for drive C.
      s = GetFreeSpace("c:")
      WScript.Echo s
   <sScript>
</job>

Die Datei fso.js enthält folgenden Code:

function GetFreeSpace(drvPath) {
   var fs, d, s;
   fs = new ActiveXObject("Scripting.FileSystemObject");
   d = fs.GetDrive(fs.GetDriveName(drvPath));
   s = "Drive " + drvPath + " - " ;
   s += d.VolumeName;
   s += " Free Space: " + d.FreeSpace/1024 + " Kbytes";
   return s;
}

Unterstützung für mehrere Module

Da eine einzelne Skriptsprache möglicherweise nicht die gesamte Funktionalität zur Verfügung stellt, die Sie benötigen, bietet Windows Script Host Ihnen die Möglichkeit, mehrere Sprachen in einer einzelnen WSF-Datei zu kombinieren. Das folgende Beispiel zeigt eine WSF-Datei, die sowohl VBScript- als auch PerlScript-Code enthält:

<job id="PERLandVBS">
   <script language="PerlScript">
      sub PerlHello {
         my $str = @_[0];
         $WScript->Echo($str);
      }
   </script>

   <script language="VBScript">
      WScript.Echo "Hallo dies ist VBScript"
      PerlHello "Hallo dies ist PERLScript"
   </script>
</job>

Unterstützung für eine Typbibliothek

Im folgenden Beispiel wurde "MyComponent" mit Microsoft Visual Basic 5.0 entwickelt. "MyComponent" definiert die Konstante MyError mit dem folgenden Statement.

Public Const MyError = "Sie verwenden MyComponent nicht richtig"

Die Typbibliothek ist in mycomponent.lib enthalten, die an folgender Stelle installiert ist: C:\MyComponent.

<job id="IncludeExample">
   <reference progid="MyComponent.MyClass">
   <script language="VBScript">
      Dim MyVar
      Set MyVar = CreateObject("MyComponent.MyClass")
      Currentreturn = MyVar.MyMethod
      If Currentreturn = False then
         WScript.Echo MyError
      End If
   </script>
</job>

Unterstützung für Tools

Da WSF-Dateien das XML-Format besitzen, können Sie zum Bearbeiten dieser Dateien jeden Editor verwenden, der XML unterstützt. Dies gilt auch für Texteditoren, wie z. B. Notepad.

Mehrere Jobs in einer Datei

Statt all Ihre Skripts in separaten Dateien zu organisieren, können Sie diese alle in eine WSF-Datei integrieren und sie in viele verschiedene Jobs aufteilen. Sie können dann jeden Job separat ausführen, wenn Sie eine ähnliche Syntax wie im folgenden Beispiel nutzen. "MyFirstJob" ist der Name des Jobs, der in der Datei MyScripts.wsf enthalten ist.

CScript //Job:MyFirstJob MyScripts.wsf


WSH-Unterstützung für Drag & Drop

Sie können Dateien mit der Maus auf ein WSH-Skript ziehen. Die Dateinamen werden in Argumente auf der Befehlszeile übersetzt. Diese Dateinamen können in einer Liste angezeigt werden, die sie verwenden können, um Dateien mit einem beliebigen Skript-Objekt zu manipulieren.

So zeigen Sie die Liste mit den Argumenten eines Skripts an

  1. Erstellen Sie eine Datei mit einem Namen mit einer Skripterweiterung (z. B. DragDrop.vbs).
  2. Fügen Sie den Code in die Skriptdatei ein, z. B.:
    Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
   WScript.Echo objArgs(I)
Next
  3. Speichern Sie die Datei auf Ihrer Festplatte.
  4. Ziehen Sie beliebige Dateien auf die gespeicherte Datei, und legen Sie diese dort ab. In dem Beispiel werden die Namen erneut auf dem Bildschirm angezeigt.

Die Anzahl von Dateien, die Sie auf ein Skript ziehen können, ist durch die maximale Länge der Befehlszeile Ihres Systems beschränkt. Wenn die Gesamtzahl der Zeichen in allen gezogenen Dateien diese Grenze überschreitet, misslingt die Drag & Drop-Operation.


Festlegen und Anpassen von Skripteigenschaften (WSH)

Sie können bestimmte Einstellungen für jedes Ihrer individuellen Skripts mit einer Windows Script Host-Steuerdatei (WSH) aufzeichnen. Die WSH-Datei ist ein Textdokument, in dem Sie die Ausführung eines oder mehrerer Ihrer Skripts anpassen können. Sie wird automatisch erstellt, wenn Sie die Eigenschaften für eine unterstützte Skriptdatei festlegen.

Wenn Sie mehrere WSH-Dateien für ein einzelnes Skript erstellen, können Sie die Art wie das Skript abläuft an die Bedürfnisse spezieller Gruppen oder sogar einzelner Personen innerhalb eines Unternehmens anpassen. Sie können beispielsweise ein einzelnes Anmeldeskript erstellen, das von zwei verschiedenen WSH-Dateien aufgerufen wird, die unterschiedliche Einstellungen und Parameter enthalten.

Wenn Sie auf einer WSH-Datei doppelklicken oder diese über die Befehlszeile ausführen, liest CScript.exe oder WScript.exe die WSH-Datei, um die speziellen Einstellungen zu bestimmen, die bei der Ausführung des Skripts verwendet werden sollen. CScript/WScript führt das Originalskript aus und übergeben dabei die Eigenschaften, die in der WSH-Datei definiert sind.

So erstellen Sie eine WSH-Datei für ein gegebenes Skript

  1. Klicken Sie im Windows-Explorer mit der rechten Maustaste auf die Skriptdatei.
  2. Klicken Sie im Kontextmenü auf Eigenschaften.
  3. Wählen Sie die gewünschten Einstellungen für das Skript.
  4. Klicken Sie auf OK oder auf Anwenden.

    Es wird eine WSH-Datei mit demselben Namen wie dem der ausgewählten Skriptdatei erstellt.

Das folgende Beispiel zeigt eine typische WSH-Datei:

[ScriptFile]
Path=C:\WINNT\Samples\WSH\showprop.vbs
[Options]
Timeout=0
DisplayLogo=1
BatchMode=0

Die Pfadinformationen im Abschnitt [ScriptFile] identifizieren die Skriptdatei, die der WSH-Datei zugeordnet ist. Die Tasten im Abschnitt [Options] entsprechen den Einstellungen im Dialogfeld Eigenschaften auf der Registerkarte Skript.

Anmerkung Sie müssen die ursprüngliche Skriptdatei zur Hand haben, wenn Sie die WSH-Datei ausführen. Wenn die WSH-Datei das Skript nicht ausführen kann, überprüfen Sie in der WSH-Datei die Information Path= , um sicherzustellen, dass die Angaben auf das Skript verweisen, das Sie ausführen möchten.


Ausführen von Skripts über die Befehlszeile

Windows Script Host ermöglicht Ihnen das Ausführen von Skripts über die Befehlszeile. CScript.exe bietet Befehlszeilenparameter zum Einrichten von Skripteigenschaften.

So führen Sie Skripts mit "CScript.exe" aus

  • Geben Sie mit folgender Syntax einen Befehl auf der Befehlszeile ein:
    cscript [hostoptionen...] [skriptname] [skriptoptionen und parameter]

Hostoptionen aktivieren oder deaktivieren verschiedene Windows Script Host-Features. Den Hostoptionen gehen zwei Schrägstriche (//) voraus. Skriptname ist der Name der Skriptdatei mit Erweiterung und den notwendigen Pfadinformationen, z. B.: d:\admin\vbscripts\chart.vbs. Skriptoptionen und Parameter werden dem Skript übergeben. Den Skriptparametern geht ein einzelner Schrägstrich (/) voraus.

Die einzelnen Parameter sind optional. Sie können jedoch ohne Angabe eines Skriptnamens keine Skriptoptionen angeben. Wenn Sie keine Parameter angeben, zeigt CScript die CScript-Syntax und die gültigen Hostparameter an.

Ein Beispiel mit CScript

Einige Beispielskripts, die zusammen mit Windows Script Host installiert werden, stehen zudem unter der folgenden Adresse zum Download bereit: (http://www.microsoft.com/germany/scripting).

Unterstellen wir für dieses Beispiel, Sie hätten das Beispielskript Charts.vbs in folgenden Ordner auf Ihrem Computer kopiert.

c:\sample scripts\chart.vbs

Sie können das Skript mit oder ohne Logo wie folgt ausführen.

So führen Sie ein Skript mit oder ohne Logo aus

  1. Starten Sie die MS-DOS-Eingabeaufforderung.
  2. Geben Sie auf der Befehlszeile folgende Befehle ein (nehmen Sie entsprechende Änderungen vor, wenn Sie Ihre Beispielskripte in einem anderen Ordner abgelegt haben):
cscript //logo c:\"sample scripts"\chart.vbs
cscript //nologo c:\"sample scripts"\chart.VBScript

Siehe auch

Ausführen von Skripts aus Windows | Was müssen Sie einschließen, um ein Skript auszuführen | Optionen für Script.exe und CScript.exe


Ausführen von Skripts aus Windows

Windows Script Host ermöglicht Ihnen das Ausführen von Skripts aus Windows. WScript.exe verfügt über ein Windows-basierendes Dialogfeld zum Einrichten von Skripteigenschaften. Mit WScript.exe können Sie Skripts unter Windows auf folgende Weise ausführen. Gleichgültig ob Sie WScript oder CScript einsetzen, Sie führen die Skripts auf gleiche Weise aus. Der Unterschied liegt nur in der Ausgabe - WScript generiert eine Ausgabe in Fensterform, während CScript seine Ausgabe an das Befehlsfenster sendet, in dem das Programm gestartet wurde.

Bei der anfänglichen Installation ist der Standardhost WScript. Wenn Sie diese Einstellung auf CScript ändern möchten, geben Sie folgenden Befehl auf der Befehlszeile ein:

cscript //h:cscript

Wenn Sie von CScript auf WScript wechseln möchten, geben Sie folgenden Befehl ein:

wscript //h:cscript

So führen Sie ein Skript mit dem Standardmodul aus

  1. Doppelklicken Sie im Windows-Explorer oder auf dem Desktop auf das Skript.
  2. Klicken Sie auf Start und anschließend auf Ausführen, und geben Sie den Namen des Skripts ein.
    Anmerkung Geben Sie nur unter Windows NT und Windows 2000 einfach den Skriptnamen auf der Befehlszeile ein.

So führen Sie ein Skript mit einem speziellen Modul aus

  • Klicken Sie im Windows-Explorer mit der rechten Maustaste, und wählen Sie Öffnen, um das Skript mit WScript auszuführen, oder wählen Sie Öffnen im MS-DOS-Fenster (Windows 9x) oder Öffnen in Befehlsfenster (Windows NT und Windows 2000), um das Skript mit CScript auszuführen.

oder

  • Klicken Sie auf Start, wählen Sie Ausführen, und geben Sie "cscript" oder "wscript" gefolgt von dem Skriptnamen ein.

oder

  • Geben Sie "cscript" oder "wscript" gefolgt vom Skriptnamen auf der Befehlszeile ein.

So führen Sie Skripts mit WScript.exe aus

  • Doppelklicken Sie auf Dateien oder Symbolen. Dies können Dateien oder Symbole sein, die im Ordner Arbeitsplatz, im Windows-Explorer, im Fenster Suchen, im Startmenü oder auf dem Desktop aufgelistet sind.

oder

  1. Klicken Sie auf die Schaltfläche Starten und anschließend auf Ausführen.
  2. Geben Sie im Feld Öffnen den vollständigen Pfad zu dem Skript ein, und klicken Sie auf OK. Sie können auch WScript gefolgt von dem vollständigen Namen und Pfad des Skripts eingeben, das Sie ausführen möchten.

Wenn Sie einen Doppelklick auf einer Skriptdatei ausführen, deren Erweiterung noch nicht mit WScript.exe verknüpft wurde, wird das Dialogfeld Öffnen mit angezeigt, in dem der Benutzer gefragt wird, mit welchem Programm die Datei geöffnet werden soll. Wählen Sie WScript, und aktivieren Sie das Kontrollkästchen Dateien dieses Typs immer mit diesem Programm öffnen. So registrieren Sie WScript als Standardanwendung für alle Dateien mit dieser Erweiterung.

Das Dialogfeld Eigenschaften von WScript.exe und CSript.exe bietet folgende Optionen:

Eigenschaft | Beschreibung
Skript nach einer angegebenen Anzahl von Sekunden anhalten. | Gibt die maximale Zeit in Sekunden an, die ein Skript ablaufen darf. Die Standardeinstellung ist keine Beschränkung. Das Äquivalent für CScript.exe: //T:nn
Logo anzeigen, wenn das Skript in der Befehlskonsole ausgeführt wird. | Zeigt vor der Ausführung des Skripts ein Banner an. Dies ist die Standardeinstellung. Die gegenteilige Einstellung ist //nologo. Das Äquivalent für CScript.exe: //logo or //nologo

In dem Dialogfeld Eigenschaften von WScript.exe können Sie globale Skriptoptionen für alle Skripts einrichten, die WScript auf dem lokalen Computer ausführt. Zudem können Sie auch Optionen für individuelle Skripts setzen, die eine WSF-Datei verwenden.

Siehe auch

Ausführen von Skripts über die Befehlszeile | Was müssen Sie einschließen, um ein Skript auszuführen | Optionen für WScript.exe und CScript.exe


Optionen für "WScript.exe" und "CScript.exe"

Der Großteil der in der folgenden Tabelle aufgelisteten Optionen lässt sich auf WScript.exe und CSript.exe anwenden. Ausnahmen werden kommentiert.

Parameter | Beschreibung
//B | Stapelverarbeitungsmodus (batch); unterdrückt die Befehlszeilenanzeige von Benutzereingabeaufforderungen und Skriptfehlern. Die Standardeinstellung ist der Interaktive Modus.
//D | Schaltet den Debugger ein.
//E:engine | Führt das Skript mit dem angegebenen Skriptmodul aus.
//H:CScript or //H:Wscript | Registriert CScript.exe oder WScript.exe als Standardanwendung für die Ausführung von Skripts. Wenn diese Angabe ausgelassen wird, wird WScript.exe als Standardanwendung unterstellt.
//I | Standardeinstellung. Interaktiver Modus; zeigt Benutzereingabeaufforderungen und Skriptfehler an. Das Gegenteil ist der Stapelverarbeitungsmodus (Batchmodus).
//Job:<JobID> | Führt die angegebene Auftrags-ID aus der WSF-Datei aus.
//logo | Standardeinstellung. Zeigt ein Banner an. Gegenteil von nologo.
//nologo | Unterdrückt die Anzeige eines Ausführungsbanners zur Laufzeit. Die Standardeinstellung ist logo.
//S | Speichert die aktuellen Befehlszeilenoptionen für diesen Benutzer.
//T:nn | Aktiviert eine Ablaufzeit: Bestimmt die maximale Zeit in Sekunden, die ein Skript ablaufen darf. Die Standardeinstellung ist keine Beschränkung. Der Parameter //T verhindert die exzessive Ausführung von Skripts, indem ein Zeitgeber gesetzt wird. Wenn die Ausführungszeit den angegebenen Wert überschreitet, unterbricht CScript das Skriptmodul mit der Methode IActiveScript::InterruptThread, und der Prozess wird terminiert.
//U | Wird mit Windows NT und Windows 2000 verwendet, um die Befehlszeilenausgabe im Unicode-Format zu erzwingen. CScript hat keine Möglichkeit festzustellen, ob die Ausgabe im Unicode- oder im ANSI-Format erfolgen soll. Standardeinstellung ist ANSI.
//X | Führt das Programm im Debugger aus.
//? | Zeigt eine kurze Beschreibung für Befehlsparameter und deren Verwendung an.


Was müssen Sie einschließen, um ein Skript auszuführen

Die Informationen, die Sie eingeben, wenn Sie ein Skript durch Eingabe des Namens ausführen möchten, hängt von der eingesetzten Windows-Version und von der Methode zur Ausführung des Skripts ab.

Ausführbare WSH-Datei | Windows-Version | Folgendes müssen Sie einschließen
Befehlszeile | Windows NT oder 2000 | Geben Sie den Skriptnamen ohne Dateinamenerweiterung an. Beispiel: myScript. Anmerkung Wenn Sie den Namen der ausführbaren WSH-Datei angeben, müssen Sie auch die Dateinamenerweiterung des Skripts angeben. Beispiel: cscript myScript.wsf.
Befehlszeile | Windows 9x oder Millennium | Geben Sie die Dateinamenerweiterung des Skripts an, und lassen Sie dem Skriptnamen den Namen der ausführbaren WSH-Datei vorangehen. Beispiel: cscript myScript.wsf
Befehl Ausführen aus dem Dialogfeld Öffnen | Windows NT, 2000, 9x oder Millennium | Geben Sie die Dateinamenerweiterung des Skripts an.

Siehe auch

Ausführen von Skripts mit WScript.exe | Ausführen von Skripts mit CScript.exe | Unterstützung für Drag & Drop


Einrichten von Remote WSH

Remote WSH ist eine neue Technologie, die zum Lieferumfang von WSH 5.6 gehört. Sie bietet die Möglichkeit, ein Skript auf einem oder mehreren Remotecomputern auszuführen. Bei Remote WSH wird das Skript physisch von einem lokalen Computer auf den Remotecomputer kopiert, bevor es ausgeführt wird. Zunächst müssen Sie den Remotecomputer mit den korrekten Sicherheitseinstellungen einrichten, damit Sie die Remote WSH-Funktionalität aktivieren können. Mit den folgenden Schritten führen Sie die notwendigen Aufgaben aus, um Remote WSH zu aktivieren.

Anmerkung Sowohl der lokale Computer als auch der Remotecomputer müssen Windows NT 4 mit SP3 oder höher ausführen, damit Sie Remote WSH verwenden können.

So aktivieren Sie einen Computer für die Ausführung von Remoteskripten

  1. Installieren Sie WSH V5.6 auf dem Computer. Wenn Sie Windows 2001 einsetzen oder Internet Explorer 6 oder höher installiert haben, ist WSH 5.6 bereits installiert.
    Anmerkung Sie können WSH 5.6 vom Web unter folgender Adresse downloaden: http://www.microsoft.com/germany/scripting
  2. Fügen Sie Ihren Benutzernamen in die Gruppe der lokalen Administratoren auf dem Remotecomputer ein.
  3. Verwenden Sie Poledit.exe auf dem Server, um Remote WSH zu aktivieren.
    Anmerkung Ein Administrator, der Remote WSH aktivieren möchte, muss sich entweder das Windows 2000 Resource Kit beschaffen oder die Adresse http://www.microsoft.com/germany/scripting verwenden, um die notwendige Datei windowsscript.adm zu erlangen, die die WSH-Einstellungen beinhaltet. Die Datei windowsscript.adm muss auf den Server kopiert werden, der die anwendbaren Gruppenrichtlinien setzt. Obwohl es nicht notwendig ist, die Datei in das Verzeichnis \WINNT\INF des Servers zu kopieren, ist dies nichtsdestotrotz der Ort, an dem ADM-Dateien abgelegt werden.
    Anmerkung Weitere Informationen zu Poledit.exe finden Sie im Online-Hilfesystem zu Poledit.exe.
  4. WSH sollte nun auf diesem Computer aktiviert sein. Wenn Sie es testen möchten, lesen Sie den Abschnitt Ausführen von Skripts auf Remotesystemen.

Siehe auch

Sicherheit und Windows Script Host | Ausführen von Skripts auf Remotesystemen


Grundfunktionen von Windows Script Host

In diesem Abschnitt finden Sie einige häufig verwendete Windows Script Host 5.6-Skripts, die die Grundfunktionen veranschaulichen.

Anmerkung Die im Rahmen der folgenden Aufgaben präsentierten Skripts sind in JScript bzw. VBScript praktisch identisch. Sofern Unterschiede zwischen den Skriptmodellen vorhanden sind, wird speziell darauf hingewiesen. Darüber hinaus ist jede Aufgabe sowohl in JScript als auch in VBScript verfasst.

In diesem Abschnitt

  • Zugreifen auf Netzwerke
  • Erstellen eines automatischen Anmeldeskripts
  • Steuern von Anwendungen
  • Ausführen von Dateimanagementvorgängen
  • Verwalten von Verknüpfungen
  • Bearbeiten der Systemregistrierung
  • Ausführen von Skripts auf Remotesystemen
  • Signieren eines Skripts
  • WSH und die Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI)


Zugreifen auf Netzwerke

Mit Hilfe von WSH können Sie problemlos programmseitig auf ein Netzwerk zugreifen. Die folgenden Aufgaben veranschaulichen einige dieser Fähigkeiten.

In diesem Abschnitt

Zugreifen auf Netzwerkverbindungen

Steuern von Netzwerkdruckern

WSH-Beispiele


Zugreifen auf Netzwerkverbindungen

Das Network-Objekt ermöglicht es Ihnen, auf Informationen zu Ihrem Netzwerk zuzugreifen. In den folgenden Skripts wird das Zuordnen eines Netzlaufwerkes dargestellt. Zunächst erstellt das Skript ein Network-Objekt. Dann führt die MapNetworkDrive-Methode - eine der Methoden des Network-Objekts - den Zuordnungsvorgang aus. Die MapNetworkDrive-Methode akzeptiert fünf Argumente:

  • Die Zuordnung des lokalen Laufwerkes (zum Beispiel I:)
  • Den UNC-Pfad (Universal Naming Convention) zum zugeordneten Remotelaufwerk
  • Ein optionaler boolescher Wert, der anzeigt, ob das Laufwerk permanent verbunden sein wird
  • Ein optionaler Benutzername, wenn Sie unterschiedliche Anmeldeinformationen verwenden möchten
  • Ein optionales Kennwort, das mit dem anderen Benutzernamen verwendet werden kann
// JScript.
var net;
net = new ActiveXObject("WScript.Network");
net.MapNetworkDrive("I:", "\\\\computer2\\public","True","jdoe","jdoepassword");

' VBScript.
Dim net
Set net = CreateObject("WScript.Network")
net.MapNetworkDrive "I:", "\\computer2\public","True","jdoe","jdoepassword"

Zugreifen auf Netzwerke


Steuern von Netzwerkdruckern

Mit dem Network-Objekt können Sie auf Druckergeräte in Ihrem Netzwerk zuzugreifen. In den folgenden Skripts wird die Verwendung des Network-Objekts zur Steuerung eines Netzwerkdrucker-Geräts veranschaulicht.

Herstellen einer Verbindung zu einem Remotedrucker

In den folgenden Skripts wird das Herstellen einer Verbindung zu einem Druckergerät, das in einem Netzwerk gemeinsam genutzt wird, veranschaulicht. Zunächst erstellt das Skript ein Network-Objekt. Dann führt die AddWindowsPrinterConnection-Methode - eine der Methoden des Network-Objekts - den Verbindungsvorgang aus. Die AddWindowsPrinterConnection-Methode akzeptiert zwei Parameter: den Namen des Druckers und den UNC-Pfad (Universal Naming Convention) zum Druckergerät.

// JScript.
var net;
net = new ActiveXObject("WScript.Network");
net.AddWindowsPrinterConnection("\\\\ServerName\\PrinterName");

' VBScript.
Dim net
Set net = CreateObject("WScript.Network")
net.AddWindowsPrinterConnection "\\ServerName\PrinterName"

Einrichten des Standarddruckers

Im folgenden Skript wird das Einrichten des gewünschten Standarddruckergeräts veranschaulicht. Zunächst erstellt das Skript ein Network-Objekt. Dann führt die SetDefaultPrinter-Methode - eine der Methoden des Network-Objekts - den Vorgang aus. Die SetDefaultPrinter-Methode akzeptiert einen einzelnen Parameter (den Namen des Druckers), wobei es sich entweder um den Namen des lokalen Druckers oder eines Remotedruckers bei Verwendung des UNC-Pfades (Universal Naming Convention) zum Druckergerät handelt.

// JScript.
var net;
net = new ActiveXObject("WScript.Network");
net.SetDefaultPrinter("\\\\ServerName\\PrinterName");

' VBScript.
Dim net
Set net = CreateObject("WScript.Network")
net.SetDefaultPrinter "\\ServerName\PrinterName"

Siehe auch

Zugreifen auf Netzwerke | AddWindowsPrinterConnection-Methode | SetDefaultPrinter-Methode | RemovePrinterConnection-Methode


Erstellen eines automatischen Anmeldeskripts

Mit Hilfe von WSH können Sie automatische Anmeldeskripts erstellen. Im folgenden Beispiel wird angenommen, dass ein Unternehmen über zwei Dateiserver (namens "server1" und "server2") und zwei Druckerserver (namens "printer1" und "printer2") verfügt. Zur einheitlichen Nutzung der Server werden Benutzer, deren Benutzername mit den Anfangsbuchstaben A - K beginnen, zum ersten Datei- und Druckerserver geleitet, während Benutzer, deren Benutzernamen mit den Anfangsbuchstaben L - Z beginnen, zum zweiten Server gelenkt werden.

Anmerkung Fügen Sie unter Windows 9x eine Verzögerung ein, bis die Benutzeranmeldung wirksam wird.
// JScript.
var oNet, sUser, cInitial, startTime;
oNet = new ActiveXObject("WScript.Network");
// Fragen Sie den Benutzernamen ab. Unter Windows 98 und Windows ME ist der Benutzer eventuell noch nicht angemeldet,
// wenn die Ausführung des Skripts beginnt; überprüfen Sie fortlaufend alle 1/2 Sekunde,
// bis der Benutzer angemeldet ist
sUser = oNet.UserName;
startTime = new Date();
while (sUser == "")
{
   var curTime = new Date();
   if (curTime – startTime > 30000) WScript.Quit();
   WScript.Sleep(500);
   sUser = oNet.UserName;
}
// Fügen Sie eine Freigabe für Laufwerk "h" und den Drucker hinzu, auf der Grundlage des
// Anfangsbuchstabens des Benutzernamens
cInitial = sUser.charAt(0).toUpperCase();
if (cInitial < "L")
{
   oNet.MapNetworkDrive("h:", "\\\\server1\\users\\" + sUser);
   oNet.AddWindowsPrinterConnection("\\\\printer1\\hp", "HP LaserJet 4");
}
else
{
   oNet.MapNetworkDrive("h:", "\\\\server2\\users\\" + sUser);
   oNet.AddWindowsPrinterConnection("\\\\printer2\\hp", "HP LaserJet 4");
}

' VBScript.

Option Explicit
Dim oNet, sUser, cInitial, startTime
' Helper object
Set oNet = CreateObject("WScript.Network")
' Fragen Sie den Benutzernamen ab. Unter Windows 9x ist der Benutzer eventuell noch nicht angemeldet,
' wenn die Ausführung des Skripts beginnt; überprüfen Sie fortlaufend alle 1/2 Sekunde,
' bis der Benutzer angemeldet ist.
sUser = oNet.UserName
startTime = Now
Do While sUser = ""
   If DateDiff("s", startTime, Now) > 30 Then Wscript.Quit
   Wscript.Sleep 500
   sUser = oNet.UserName
Loop
' Fügen Sie eine Freigabe für Laufwerk "h" und den Drucker hinzu, auf der Grundlage des
' Anfangsbuchstabens des Benutzernamens
cInitial = UCase(Left(sUser, 1))
If (cInitial < "L") Then
   oNet.MapNetworkDrive "h:", "\\server1\users\" & sUser
   oNet.AddWindowsPrinterConnection "\\printer1\hp", "HP LaserJet 4"
Else
   oNet.MapNetworkDrive "h:", "\\server2\users\" & sUser
   oNet.AddWindowsPrinterConnection "\\printer2\hp", "HP LaserJet 4"
End If

WSH-Beispiele


Steuern von Anwendungen

Sie können Anwendungen mit Hilfe von WSH starten. Die folgenden Skripts veranschaulichen einige dieser Fähigkeiten.

Erstellen einer lokalen Serveranwendung

Einige Anwendungen, wie etwa Microsoft Word, legen Objekte offen, auf die programmseitig zugegriffen werden kann. Im folgenden Skript wird die Rechtschreibprüfung von Word verwendet.

// JScript.
var Word, Doc, Uncorrected, Corrected;
var wdDialogToolsSpellingAndGrammar = 828;
var wdDoNotSaveChanges = 0;
Uncorrected = "Halllo Welt!";
Word = new ActiveXObject("Word.Application");
Doc = Word.Documents.Add();
Word.Selection.Text = Uncorrected;
Word.Dialogs(wdDialogToolsSpellingAndGrammar).Show();
if (Word.Selection.Text.length != 1)
   Corrected = Word.Selection.Text;
else
   Corrected = Uncorrected;
Doc.Close(wdDoNotSaveChanges);
Word.Quit();

' VBScript.

Dim Word, Doc, Uncorrected, Corrected
Const wdDialogToolsSpellingAndGrammar = 828
Const wdDoNotSaveChanges = 0

Uncorrected = "Halllo Welt!"
Set Word = CreateObject("Word.Application")
Set Doc = Word.Documents.Add
Word.Selection.Text = Uncorrected
Word.Dialogs(wdDialogToolsSpellingAndGrammar).Show

If Len(Word.Selection.Text) <> 1 Then
Corrected = Word.Selection.Text
Else
   Corrected = Uncorrected
End If

Doc.Close wdDoNotSaveChanges
Word.Quit

Einleiten von Programmen mit Hilfe des Befehls "Shell.Exec"

Der Befehl Shell.Exec stellt zusätzliche Fähigkeiten zur Verfügung, die über die Shell.Run-Methode hinausreichen. Zu diesen Fähigkeiten gehören:

  • Verbesserte Weitergabe von Umgebungsvariablen
  • Fähigkeit, auf Standardströme der ausführbaren Datei zuzugreifen

Im folgenden VBScript-Beispiel wird die Verwendung von Standardströmen und des Befehls Shell.Exec zum Durchsuchen einer Datenträgers nach einem Dateinamen, der mit einem regulären Ausdruck übereinstimmt, dargestellt.

Dieses kurze Skript schreibt den vollständigen Pfad aller Dateien im aktuellen Verzeichnis und allen untergeordneten Ordnern (rekursiv) in StdOut.

' VBScript.
'  MYDIR.VBS
Option Explicit
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
DoDir FSO.GetFolder(".")
Sub DoDir(Folder)
   On Error Resume Next
   Dim File, SubFolder
   For Each File In Folder.Files
      WScript.StdOut.WriteLine File.Path
   Next
   For Each SubFolder in Folder.SubFolders
      DoDir SubFolder
   Next
End Sub

Dann durchsucht das Skript StdIn nach einem Muster und schreibt alle Zeilen, die mit diesem Muster übereinstimmen, in StdOut.

' MyGrep.VBS
Option Explicit
Dim RE, Line
If WScript.Arguments.Count = 0 Then WScript.Quit
Set RE = New RegExp
RE.IgnoreCase = True
RE.Pattern = WScript.Arguments(0)
While Not WScript.StdIn.AtEndOfStream
   Line = WScript.StdIn.ReadLine
   If RE.Test(Line) Then WScript.StdOut.WriteLine Line
WEnd

Gemeinsam führen diese beiden Skripts die erforderlichen Aufgaben aus: während das eine alle Dateien in einer Verzeichnisstruktur auflistet, sucht das andere nach Zeilen, die mit einem regulären Ausdruck übereinstimmen. Dann wird ein drittes Programm geschrieben, das zwei Aufgaben erledigt: es setzt das Betriebssystem ein, um die Ausgabe des einen Programms an das andere weiterzuleiten und dann das Ergebnis an StdOut zu übertragen:

// MyWhere.JS
if (WScript.Arguments.Count() == 0)
   WScript.Quit();
var Pattern = WScript.Arguments(0);
var Shell = new ActiveXObject("WScript.Shell");
var Pipe = Shell.Exec("%comspec% /c \"cscript //nologo mydir.vbs | cscript //nologo mygrep.vbs " + Pattern + "\"");
while(!Pipe.StdOut.AtEndOfStream)
   WScript.StdOut.WriteLine(Pipe.StdOut.ReadLine());

WSH-Beispiele | Exec-Methode | Run-Methode


Ausführen von Dateimanagementvorgängen

Mit Hilfe von WSH können Sie Dateien und Ordner problemlos programmseitig erstellen, kopieren, verschieben und löschen. Die folgenden Aufgaben veranschaulichen diese Fähigkeiten.

In diesem Abschnitt

Kopieren von Dateien und Ordnern

Verknüpfen mit einem Ordner mit Sonderfunktion

WSH-Beispiele


Kopieren von Dateien und Ordnern

Zur Dateisystembearbeitung, wie z. B. dem Kopieren von Dateien und Ordnern, wird die Verwendung des File System Object (FSO, Dateisystemobjekt) vorausgesetzt. Die folgenden Skripts veranschaulichen die Verwendung des FSO, um Dateien und Ordner zu kopieren.

Kopieren von Dateien

In den folgenden Skripts wird das Kopieren einer Datei aus einem lokalen Ordner in einen anderen dargestellt. Zunächst erstellt das Skript ein File System Object. Die CopyFile-Methode (eine Dateisystemobjekt-Methode) führt dann den Dateikopiervorgang aus. Die CopyFile-Methode akzeptiert zwei Parameter - die Quelldatei und das Ziel.

// JScript.
var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CopyFile("c:\\COMPlusLog.txt", "c:\\x\\");

' VBScript.
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "c:\COMPlusLog.txt", "c:\x\"

Kopieren von Ordnern

Im folgenden Skript wird das Kopieren des Inhalts eines lokalen Ordners in einen anderen Ordner auf dem lokalen Computer veranschaulicht.

Anmerkung Der Zielordner muss bereits vorhanden sein, damit diese Methode erfolgreich beendet werden kann. Informationen zum Erstellen eines Verzeichnisses mit Hilfe von WSH finden Sie unter CreateFolder-Methode.

Zunächst erstellt das Skript ein File System Object. Die CopyFile-Methode (eine Dateisystemobjekt-Methode) führt dann den Ordnerkopiervorgang aus. Die CopyFolder-Methode akzeptiert zwei Parameter - den Quellordner und das Ziel.

// JScript.
var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CopyFolder("c:\\x", "c:\\y");

' VBScript.
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFolder "c:\x", "c:\y"

Siehe auch

Ausführen von Dateiverwaltungsvorgängen

| FileSystemObject | CopyFile-Methode | CopyFolder-Methode | CreateFolder-Methode | MoveFolder-Methode


Verknüpfen mit einem Ordner mit Sonderfunktion

Die Verknüpfung mit Ordnern mit Sonderfunktionen, wie etwa dem Desktopordner Eigene Dateien, setzt die Verwendung des Shell-Objekts voraus. Die folgenden Skripts veranschaulichen die Verwendung des Shell-Objekts, um eine Verknüpfung zu einem Ordner auf dem Desktop zu erstellen.

// JScript.
var Shell, DesktopPath, URL;
Shell = new ActiveXObject("WScript.Shell");
DesktopPath = Shell.SpecialFolders("Desktop");
URL = Shell.CreateShortcut(DesktopPath + "\\MSDN Scripting.url");
URL.TargetPath = "HTTP://www.microsoft.com/germany/scripting";
URL.Save();

' VBScript.
Dim Shell, DesktopPath, URL
Set Shell = CreateObject("WScript.Shell")
DesktopPath = Shell.SpecialFolders("Desktop")
Set URL = Shell.CreateShortcut(DesktopPath & "\MSDN Scripting.URL")
URL.TargetPath = "HTTP://www.microsoft.com/germany/scripting"
URL.Save

Ausführen von Dateimanagementvorgängen


Verwalten von Verknüpfungen

Mit Hilfe von WSH können Sie Verknüpfungen problemlos programmseitig erstellen, löschen, verschieben und kopieren. Die folgenden Aufgaben veranschaulichen einige dieser Fähigkeiten.

In diesem Abschnitt

Kopieren einer Verknüpfung

Erstellen einer Verknüpfung

Löschen einer Verknüpfung

Verschieben einer Verknüpfung

WSH-Beispiele


Kopieren einer Verknüpfung

Das Kopieren von Verknüpfungen setzt die Verwendung des File System Object (FSO, Dateisystemobjekts) voraus. Die folgenden Skripts veranschaulichen die Verwendung des File System Object zum Kopieren von Verknüpfungen.

// JScript.
Shell = new ActiveXObject("WScript.Shell");
FSO = new ActiveXObject("Scripting.FileSystemObject");
DesktopPath = Shell.SpecialFolders("Desktop") + "\\MSDN Scripting url";
MyDocumentsPath = Shell.SpecialFolders("MyDocuments") + "\\"
FSO.CopyFile(DesktopPath, MyDocumentsPath);

' VBScript.
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
DesktopPath = Shell.SpecialFolders("Desktop") + "\MSDN Scripting.url"
MyDocumentsPath = Shell.SpecialFolders("MyDocuments") + "\\"
FSO.CopyFile DesktopPath, MyDocumentsPath

Verwalten von Verknüpfungen


Erstellen einer Verknüpfung

Das Erstellen von Verknüpfungen setzt die Verwendung des File Shell-Objekts voraus. Die folgenden Skripts veranschaulichen die Verwendung des File Shell-Objekts zum Erstellen von Verknüpfungen.

// JScript.
Shell = new ActiveXObject("WScript.Shell");
DesktopPath = Shell.SpecialFolders("Desktop");
link = Shell.CreateShortcut(DesktopPath + "\\test.lnk");
link.Arguments = "1 2 3";
link.Description = "Verknüpfung testen";
link.HotKey = "STRG+ALT+UMSCHALT+X";
link.IconLocation = "foo.exe,1";
link.TargetPath = "c:\\blah\\foo.exe";
link.WindowStyle = 3;
link.WorkingDirectory = "c:\\blah";
link.Save();

' VBScript.
Set Shell = CreateObject("WScript.Shell")
DesktopPath = Shell.SpecialFolders("Desktop")
Set link = Shell.CreateShortcut(DesktopPath & "\test.lnk")
link.Arguments = "1 2 3"
link.Description = "Verknüpfung testen"
link.HotKey = "CTRL+ALT+SHIFT+X"
link.IconLocation = "foo.exe,1"
link.TargetPath = "c:\blah\foo.exe"
link.WindowStyle = 3
link.WorkingDirectory = "c:\blah"
link.Save

Verwalten von Verknüpfungen


Löschen einer Verknüpfung

Das Löschen von Verknüpfungen setzt die Verwendung des File System Object (FSO, Dateisystemobjekt) voraus. Die folgenden Skripts veranschaulichen die Verwendung des File System Object zum Löschen von Verknüpfungen.

// JScript.
Shell = new ActiveXObject("WScript.Shell");
FSO = new ActiveXObject("Scripting.FileSystemObject");
DesktopPath = Shell.SpecialFolders("Desktop");
FSO.DeleteFile(DesktopPath + "\\test.lnk")

' VBScript.
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
DesktopPath = Shell.SpecialFolders("Desktop")
FSO.DeleteFile DesktopPath & "\test.lnk"

Verwalten von Verknüpfungen


Verschieben einer Verknüpfung

Das Verschieben von Verknüpfungen setzt die Verwendung des Dateisystemobjekts (FSO, File System Object) voraus. Die folgenden Skripts veranschaulichen die Verwendung des Dateisystemobjekts zum Verschieben von Verknüpfungen.

// JScript.

Shell = new ActiveXObject("WScript.Shell");
FSO = new ActiveXObject("Scripting.FileSystemObject");
DesktopPath = Shell.SpecialFolders("Desktop") + "\\test.lnk";
MyDocumentsPath = Shell.SpecialFolders("MyDocuments") + "\\test.lnk";
FSO.MoveFile(DesktopPath, MyDocumentsPath);
' VBScript.

Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
DesktopPath = Shell.SpecialFolders("Desktop") & "\test.lnk"
MyDocumentsPath = Shell.SpecialFolders("MyDocuments") & "\test.lnk"
FSO.MoveFile DesktopPath, MyDocumentsPath

Verwalten von Verknüpfungen


Bearbeiten der Systemregistrierung

Sie können die Systemregistrierung mit Hilfe von WSH verwalten. Die folgenden Skripts veranschaulichen einige dieser Fähigkeiten.

// JScript.
Sh = new ActiveXObject("WScript.Shell");
key =  "HKEY_CURRENT_USER\\"
Sh.RegWrite( key + "WSHTest\\", "testkeydefault");
Sh.RegWrite( key + "WSHTest\\string1", "testkeystring1");
Sh.RegWrite( key + "WSHTest\\string2", "testkeystring2", "REG_SZ");
Sh.RegWrite( key + "WSHTest\\string3", "testkeystring3", "REG_EXPAND_SZ");
Sh.RegWrite( key + "WSHTest\\int", 123, "REG_DWORD");
WScript.Echo( Sh.RegRead(key + "WSHTest\\"));
WScript.Echo ( Sh.RegRead(key + "WSHTest\\string1"));
WScript.Echo ( Sh.RegRead(key + "WSHTest\\string2"));
WScript.Echo ( Sh.RegRead(key + "WSHTest\\string3"));
WScript.Echo ( Sh.RegRead(key + "WSHTest\\int"));
Sh.RegDelete(key + "WSHTest\\");

' VBScript.
Set Sh = CreateObject("WScript.Shell")
key =  "HKEY_CURRENT_USER\"
Sh.RegWrite key & "WSHTest\", "testkeydefault"
Sh.RegWrite key & "WSHTest\string1", "testkeystring1"
Sh.RegWrite key & "WSHTest\string2", "testkeystring2", "REG_SZ"
Sh.RegWrite key & "WSHTest\string3", "testkeystring3", "REG_EXPAND_SZ"
Sh.RegWrite key & "WSHTest\int", 123, "REG_DWORD"
WScript.Echo Sh.RegRead(key & "WSHTest\")
WScript.Echo Sh.RegRead(key & "WSHTest\string1")
WScript.Echo Sh.RegRead(key & "WSHTest\string2")
WScript.Echo Sh.RegRead(key & "WSHTest\string3")
WScript.Echo Sh.RegRead(key & "WSHTest\int")
Sh.RegDelete key & "WSHTest\"

WSH-Beispiele


Ausführen von Skripts auf Remotesystemen

WSH 5.6 kann Skripts ausführen, die sich auf Remotesystemen befinden. Die folgenden Skripts veranschaulichen diese Fähigkeit. Bei diesen Skripts wird angenommen, dass sich die Dateien in einem Verzeichnis auf einem lokalen Computer namens C:\wsh5.6 befinden; ändern Sie den lokalen Pfad und den Namen des Remotecomputers bei Bedarf.

Am Anfang der Ausführung von RemoteTest.WSF auf dem lokalen Computer kann es zu einer kurzen Unterbrechung kommen, da DCOM die Identität des Benutzers überprüft. Wenn die Meldung "Fertig" angezeigt wird, weist eine Datei namens C:\beenhere.txt auf dem Remotecomputer auf die Uhrzeit hin, zu der Sie den Befehl ausgeführt haben (abgeleitet von der Uhr des Remotecomputers).

// JScript.
RemoteTest.WSF
-------------------------------
<package>
<job>
<script language="JScript">
var oController = new ActiveXObject("WSHController");
var oProcess = oController.CreateScript("c:\\wsh5.6\\beenhere.wsf", "remmachine");
oProcess.Execute();
while (oProcess.Status != 2) WScript.Sleep(100);
WScript.Echo("Done");
</script>
</job>
</package>
-------------------------------
BeenHere.WSF
-------------------------------
<package>
<job>
<script language="JScript">
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fout = fso.CreateTextFile("c:\\beenhere.txt", true);
fout.WriteLine(new Date);
fout.Close();
</script>
</job>
</package>
-------------------------------

' VBScript.
RemoteTest.WSF
-------------------------------
<package>
<job>
<script language="VBScript">
set oController = CreateObject("WSHController")
set oProcess = oController.CreateScript("c:\wsh5.6\beenhere.wsf", "remmachine")
oProcess.Execute
While oProcess.Status <> 2
   WScript.Sleep 100
WEnd
WScript.Echo "Fertig"
</script>
</job>
</package>
-------------------------------

BeenHere.WSF
-------------------------------
<package>
<job>
<script language="VBScript">
set fso = CreateObject("Scripting.FileSystemObject")
set fout = fso.CreateTextFile("c:\beenhere.txt", true)
fout.WriteLine Now
fout.Close
</script>
</job>
</package>

WSH-Beispiele | Einrichten von Remote WSH | WshRemote-Objekt


Signieren eines Skripts

Die folgenden Skripts veranschaulichen das Erstellen einer Signatur, die in einem Überprüfungsvorgang verwendet wird. Das Skript setzt das Signer-Objekt und die SignFile-Methode ein, um eine digitale Signatur zu erstellen.

// JScript.
<job>
<runtime>
   <named name="file" helpstring="die zu signierende Datei" required="true" type="string"/>
   <named name="cert" helpstring="der Name des signierenden Zertifikats" required="true" type="string"/>
   <named name="store" helpstring="der Name des Zertifikatspeichers" required="false" type="string"/>
</runtime>
<script language="JScript">
   var Signer, File, Cert, Store;
   if (!(WScript.Arguments.Named.Exists("cert") && WScript.Arguments.Named.Exists("file")))
   {
      WScript.Arguments.ShowUsage();
      WScript.Quit();
   }
   Signer = new ActiveXObject("Scripting.Signer");
   File  = WScript.Arguments.Named("file");
   Cert  = WScript.Arguments.Named("cert");
   Store = WScript.Arguments.Named("store");
    Signer.SignFile(File, Cert, Store);
</script>
</job>

'VBScript
<job>
<runtime>
   <named name="file" helpstring="die zu signierende Datei" required="true" type="string"/>
   <named name="cert" helpstring="der Name des signierenden Zertifikats" required="true" type="string"/>
   <named name="store" helpstring="der Name des Zertifikatspeichers" required="false" type="string"/>
</runtime>
<script language="VBScript">
   Dim Signer, File, Cert, Store
   If Not (WScript.Arguments.Named.Exists("cert")) And WScript.Arguments.Named.Exists("file")) Then
      WScript.Arguments.ShowUsage
      WScript.Quit
   End If
   Set Signer = CreateObject("Scripting.Signer")
   File  = WScript.Arguments.Named("file")
   Cert  = WScript.Arguments.Named("cert")
   Store = WScript.Arguments.Named("store")
    Signer.SignFile File, Cert, Store
</script>
</job>

Siehe auch

WSH-Beispiele | Verifizieren eines Skripts Signieren eines Skripts


WSH und die Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI)

Mit Hilfe von WSH können Sie die Windows-Verwaltungsinstrumentation (WMI) problemlos verwenden. Das folgende Skript veranschaulicht, wie WSH und WMI zum Abrufen der Anmeldezeit eines Benutzers via ADSI verwendet werden.

Anmerkung Weitere Informationen zu WMI finden Sie im WMI SDK unter (http://www.microsoft.com/germany/msdn).
// JScript.
LoginProfiles = GetObject("winmgmts:").InstancesOf ("Win32_NetworkLoginProfile");
for(e = new Enumerator(LoginProfiles) ; !e.atEnd() ; e.moveNext())
{
   Profile = e.item();
   WScript.Echo(Profile.Name);
   WScript.Echo(Profile.LastLogon);
}

' VBScript.
Set LoginProfiles = GetObject("winmgmts:").InstancesOf ("Win32_NetworkLoginProfile")
   for each Profile in LoginProfiles
      WScript.Echo Profile.Name
      WScript.Echo Profile.LastLogon
   next

Grundfunktionen von Windows Script Host


Wegweiser für WSH

Im folgenden Wegweiser wird beschrieben, wie Netzwerk- oder IT-Fachleute WSH 5.6 einsetzen können, um Prozeduren zur Ausführung nützlicher Aufgaben zu erstellen.

Anmerkung Der Wegweiser ist in VBScript verfasst. Der Vorgang der Skripterstellung ist bei VBScript oder JScript beinahe identisch.

Im Rahmen dieses Wegweisers führen Sie die folgenden Aktivitäten aus:

  • Erstellen eines Skripts, das eine gemeinsame Freigabe auf mehreren Remotecomputern erstellt, und Auffüllen der Freigabe mit Dateien.
  • Erstellen eines Skripts, das eine gemeinsame Druckerverbindung auf mehreren Remotecomputern erstellt, und Einrichten als Standarddrucker.

Zur Ausführung des Wegweisers müssen alle Remotecomputer so konfiguriert sein, dass Remote WSH aktiviert werden kann. Weitere Informationen zur Aktivierung dieser Sicherheitseinstellungen finden Sie unter Einrichten von Remote WSH.

Anmerkung Der folgende Code stammt aus dem Beispiel, das in dieser Dokumentation enthalten ist. Das vollständige Beispiel steht Ihnen unter WSH-Beispielskript für Netzwerkadministratoren zur Verfügung.

Erstellen von Variablen und Konstanten

So erstellen Sie die notwendigen Variablen und Konstanten

  1. Geben Sie die Variablen im Textskripteditor ein.
    Dim FSO
Dim Services
Dim SecDescClass
Dim SecDesc
Dim Trustee
Dim ACE
Dim Share
Dim InParam
Dim Network
  2. Geben Sie die Konstanten im Textskripteditor ein, und ändern Sie die Werte so, dass sie den UNC-Namen und Pfaden Ihrer Netzwerkumgebung entsprechen.
    Const FolderName = "C:\Public"
Const AdminServer = "\\AdminMachine"
Const ShareName = "Pubs"
Const PrinterShare = "\\CorpPrinters\PrinterShare"

Herstellen einer Verbindung zu einem Drucker und Einrichten als Standardeinstellung

So verbinden Sie den Computer mit einem gemeinsam genutzten Druckergerät

  • Geben Sie im Textskripteditor den Code ein, der ein Druckergerät erstellt. Dieser Code verwendet die Network-Variable und die PrinterShare-Konstante, die im vorhergehenden Schritt initialisiert wurden.
    Set Network = CreateObject("Wscript.Network")
Network.AddWindowsPrinterConnection PrinterShare

So richten Sie den Standarddrucker für Computer ein

  • Geben Sie im Textskripteditor den Code ein, der das Standard-Druckergerät einrichtet. Dieser Code verwendet die Network-Variable und die PrinterShare-Konstante, die im ersten Schritt initialisiert wurden.
    Network.SetDefaultPrinter PrinterShare

Erstellen einer gemeinsamen Freigabe, kopieren der Dateien in die Freigabe und gemeinsames Nutzen

So erstellen Sie eine gemeinsame Freigabe auf dem Computer

  • Geben Sie im Textskripteditor den Code ein, der ein Dateisystemobjekt (File System Object, FSO) und einen Ordner erstellt. Das Skript überprüft die Existenz des Ordners. Wenn der Ordner nicht vorhanden ist, wird er vom Skript erstellt. Dieser Code verwendet die FSO-Variable und die FolderName-Konstante, die im ersten Schritt initialisiert wurden.
    Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(FolderName) Then
   FSO.CreateFolder(FolderName)
End If

So kopieren Sie Dateien in den neu erstellten Ordner

  • Geben Sie im Textskripteditor den Code ein, der ein Dateisystemobjekt (File System Object, FSO) erstellt und Dateien vom lokalen Computer auf den Remotecomputer kopiert. Dieser Code verwendet die FSO-Variable und die FolderName-Konstante, die im ersten Schritt initialisiert wurden.
    Call FSO.CopyFile(AdminServer & "\Public\Images\*.*", FolderName)

So richten Sie den neu erstellten Ordner als eine Freigabe mit Hilfe von WMI ein

  • Geben Sie im Textskripteditor den Code ein, der eine Freigabe mit Hilfe der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) erstellt. Die Freigabe wird für den zuvor generierten Ordner eingerichtet. Zunächst stellt das Skript eine Verbindung zu WMI her. Dann wird die Sicherheitsebene und das Windows NT-Recht festgelegt, das es Ihnen ermöglicht, DACLs (Discretionary Access Control Lists) und SACLs (Security Access Control Lists) einzurichten. Als Nächstes erstellt das Skript einen neuen Sicherheitsdeskriptor und richtet einige ACEs (Access Control Entries) für die neue Freigabe ein. Schließlich wird eine neue Freigabe mit dem neuen Sicherheitsdeskriptor erstellt. Dieser Code verwendet die Variablen Services, SecDescClass, SecDesc, Trustee, ACE, Share und InParam sowie die im ersten Schritt initialisierten Konstanten FolderName, AdminShare und ShareName.
    Anmerkung WMI ist eine leistungsstarke, moderne Technologie auf der Grundlage von WBEM (Web Based Enterprise Management). WMI wird in erster Linie für den Zugriff und die Instrumentierung von Verwaltungsinformationen in einer Unternehmensumgebung verwendet. Weitere Hintergrundinformationen und einen Überblick über WMI finden Sie auf der entsprechenden Webseite unter (http://msdn.microsoft.com/library/default.asp?URL=/library/backgrnd/html/wmixwdm.htm).
    Set Services = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!" & AdminServer & "\ROOT\CIMV2")
Set SecDescClass = Services.Get("Win32_SecurityDescriptor")
Set SecDesc = SecDescClass.SpawnInstance_()
Set Trustee = Services.Get("Win32_Trustee").SpawnInstance_
Trustee.Domain = Null
Trustee.Name = "EVERYONE"
Trustee.Properties_.Item("SID") = Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
Set ACE = Services.Get("Win32_Ace").SpawnInstance_
ACE.Properties_.Item("AccessMask") = 2032127
ACE.Properties_.Item("AceFlags") = 3
ACE.Properties_.Item("AceType") = 0
ACE.Properties_.Item("Trustee") = Trustee
SecDesc.Properties_.Item("DACL") = Array(ACE)
Set Share = Services.Get("Win32_Share")
Set InParam = Share.Methods_("Create").InParameters.SpawnInstance_()
InParam.Properties_.Item("Access") = SecDesc
InParam.Properties_.Item("Description") = "Public Share"
InParam.Properties_.Item("Name") = ShareName
InParam.Properties_.Item("Path") = FolderName
InParam.Properties_.Item("Type") = 0
Share.ExecMethod_("Create", InParam)

Ausführen des vollständigen Skripts

Das in dieser Dokumentation enthaltene Beispiel enthält ein vollständiges, ausführbares Skript mit allen oben genannten Funktionen. Weitere Informationen dazu finden Sie unter WSH-Beispielskript für Netzwerkadministratoren.

Vor der Ausführung des Skripts sollten Sie sicherstellen, dass alle Remotecomputer richtig konfiguriert sind, um Remoteskripts ausführen zu können. Dies wird mit Hilfe von Poledit.exe auf dem Server erreicht. Weitere Informationen finden Sie unter Einrichten von Remote WSH.

Bei der Ausführung von Remote WSH wird das Skript auf die Remotecomputer kopiert. Nach der Überprüfung der Sicherheitseinstellungen des Remotecomputers und dem Kopieren des Skripts weist eine Rückgabe auf den Erfolg oder Misserfolg hin. Bei Erfolg wird das Skript dann auf den Remotecomputern ausgeführt. Weitere Informationen zur Ausführung eines Remote-WSH-Skripts finden Sie unter Ausführen von Skripts auf Remotesystemen.

Siehe auch

Einrichten von Remote WSH | Zugreifen auf Netzwerke | Ausführen von Skripts auf Remotesystemen


WSH-Beispielskript für Netzwerkadministratoren

Dieses WSH-Netzwerkbeispiel veranschaulicht, wie ein Netzwerkadministrator ein Skript auf mehreren Remotecomputern im Netzwerk einsetzen könnte. Das Beispielskript führt nützliche Verwaltungsaufgaben aus, zu denen die Folgenden gehören:

  • Verbinden der Computer mit einem Netzwerkdrucker
  • Einrichten des neu verbundenen Druckergeräts als Standarddrucker
  • Erstellen eines öffentlichen Ordners auf den Computern
  • Kopieren von Dateien in den neu erstellten Ordner
  • Einrichten des neu erstellten Ordners als Freigabe mit Hilfe der Windows-Verwaltungsinstrumentation.
    Anmerkung WMI ist eine leistungsstarke, moderne Technologie auf der Grundlage von WBEM (Web Based Enterprise Management). WMI wird in erster Linie für den Zugriff und die Instrumentierung von Verwaltungsinformationen in einer Unternehmensumgebung verwendet. Weitere Informationen zu WMI finden Sie unter Microsoft Windows-Verwaltungsinstrumentation: Hintergrund und Überblick unter (http://msdn.microsoft.com/library/default.asp?URL=/library/backgrnd/html/wmixwdm.htm).

Der Systemadministrator muss die notwendigen Sicherheitseinstellungen auf den Remotecomputern vornehmen. Weitere Informationen finden Sie unter Einrichten von Remote WSH. Dann muss der Administrator das Beispiel in den Skripteditor kopieren und die Konstanten so ändern, dass sie die entsprechenden Netzwerkpfade und Computernamen widerspiegeln. Schließlich kann der Administrator das Skript ausführen.

So führen Sie dieses Beispiel aus

  1. Nehmen Sie die notwendigen Sicherheitseinstellungen auf den Remotecomputern vor.
  2. Kopieren Sie das Skript AdminScript.vbs weiter unten in den Skripttexteditor.
  3. Ändern Sie die Konstanten so, dass sie Ihren Netzwerkpfaden und Computernamen entsprechen.
  4. Ersetzen Sie remmachine durch den entsprechenden Remote-Computernamen, und führen Sie das Skript aus:
    var oController = new ActiveXObject"WSHController"
var oProcess = oController.CreateScript "c:\MyLocalDir\\AdminScript.vbs", "remmachine"
oProcess.Execute()
while (oProcess.Status != 2)
     WScript.Sleep(100)
WScript.Echo"Fertig"

Beispiel für AdminScript.vbs

' Remote WSH Admin Sample  AdminScript.vbs
'
' Dieser Beispielcode führt einige häufig vorkommende Verwaltungsaufgaben aus, die ein
' Netzwerkadministrator eventuell auf mehreren Computern im entsprechenden
' Netzwerk ausführen möchte:  es wird ein öffentliches Verzeichnis erstellt,
' mit einigen Dateien aufgefüllt und das Verzeichnis freigegeben.  Zusätzlich wird
' die Standarddruckerverbindung der Computer eingerichtet.

' Damit dieser Beispielcode so kurz wie möglich ausfällt, wurde die
' Fehlerbehandlung nicht integriert.  Der eigentliche Produktionscode sollte
' eine geeignete Fehlerbehandlung enthalten, da viele dieser Operationen fehlschlagen könnten;
' so könnte z. B. der Speicherplatz auf den Datenträgern unzureichend sein.

Option Explicit

Dim FSO
Dim Services
Dim SecDescClass
Dim SecDesc
Dim Trustee
Dim ACE
Dim Share
Dim InParam
Dim Network

Const FolderName = "C:\Public"
Const AdminServer = "\\AdminMachine"
Const ShareName = "Pubs"
Const PrinterShare = "\\CorpPrinters\PrinterShare"

' Zunächst wird ein Drucker zum Computer hinzugefügt und als Standard eingerichtet.

Set Network = CreateObject("Wscript.Network")
Network.AddWindowsPrinterConnection PrinterShare
Network.SetDefaultPrinter PrinterShare

' Dann wird ein Ordner erstellt und mit einigen Dateien aufgefüllt.

Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(FolderName) Then
   FSO.CreateFolder(FolderName)
End If

Call FSO.CopyFile(AdminServer & "\Public\Images\*.*", FolderName)

' Richten Sie eine Freigabe für den Ordner mit Hilfe von WMI ein
' Auf der WMI SDK erhalten Sie Informationen zur Funktionsweise dieses Codes.

Set Services = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!" & AdminServer & "\ROOT\CIMV2")
Set SecDescClass = Services.Get("Win32_SecurityDescriptor")
Set SecDesc = SecDescClass.SpawnInstance_()
Set Trustee = Services.Get("Win32_Trustee").SpawnInstance_
Trustee.Domain = Null
Trustee.Name = "EVERYONE"
Trustee.Properties_.Item("SID") = Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
Set ACE = Services.Get("Win32_Ace").SpawnInstance_
ACE.Properties_.Item("AccessMask") = 2032127
ACE.Properties_.Item("AceFlags") = 3
ACE.Properties_.Item("AceType") = 0
ACE.Properties_.Item("Trustee") = Trustee
SecDesc.Properties_.Item("DACL") = Array(ACE)
Set Share = Services.Get("Win32_Share")
Set InParam = Share.Methods_("Create").InParameters.SpawnInstance_()
InParam.Properties_.Item("Access") = SecDesc
InParam.Properties_.Item("Description") = "Public Share"
InParam.Properties_.Item("Name") = ShareName
InParam.Properties_.Item("Path") = FolderName
InParam.Properties_.Item("Type") = 0
Share.ExecMethod_("Create", InParam)

' Dann haben wir das Ende erreicht.

Siehe auch

Wegweiser für WSH | Zugreifen auf Netzwerke | Einrichten von Remote WSH | Ausführen von Skripts auf Remotesystemen


Sicherheit und Windows Script Host

Windows Script Host, ein flexibles Werkzeug für die Automatisierung von Windows, kann in den Händen einer Person mit zerstörerischen Absichten sehr gefährlich sein.

Windows Script Host 5.6 verfügt über ein neues Sicherheitsmodell, mit dem der Missbrauch von Windows Script Host unterbunden werden kann, ohne die Leistungsfähigkeit einzuschränken.

Skriptbenutzer können die Echtheit eines Skripts überprüfen, bevor sie es ausführen. Skriptentwickler können ihre Skripts signieren, um unberechtigte Modifikationen zu verhindern. Administratoren können strikte Richtlinien erzwingen, die bestimmen, welche Benutzer geeignete Privilegien zur lokalen oder remoten Ausführung von Skripts erhalten.

In diesem Abschnitt

CryptoAPI-Tools

Signieren eines Skripts

Richtlinie zur Verifizierung der Signatur

Verifizieren eines Skripts

Richtlinien für Softwarebeschränkungen


CryptoAPI-Tools

Mit den CryptoAPI-Tools werden digitale Signaturen in EXE-, CAB-, DLL- und OCX-Dateien sowie in Skriptdateien (JS, VBS und WSF) erstellt und verifiziert.

Mit den CryptoAPI-Tools erstellen Sie digitale Signaturen in Dateien, die mit Microsoft® Authenticode® verwendet werden. Ferner dienen sie zur Verwaltung und Anzeige von Zertifikaten, CRLs (Certificate Revocation Lists) und CTLs (Certificate Trust Lists). Weitere Informationen zu den CrptoAPI-Tools finden Sie auf der CryptoAPI-Homepage unter (http://msdn.microsoft.com/library/psdk/crypto/portalapi_3351.htm?RLD=290).

Siehe auch

Sicherheit und Windows Script Host | Signieren eines Skripts | Verifizieren eines Skripts | Richtlinie zur Verifizierung der Signatur


Signieren eines Skripts

Beim Signieren eines Skripts wird ein digitaler Signaturblock aus Kommentaren in ein Skript geschrieben. Die Signatur, die verschlüsselte Informationen über die Identität des Autors enthält, kapselt zudem Informationen über das Skript selbst. Jeder Versuch, das Skript zu ändern, macht die Signatur als Konsequenz ungültig.

Die Signierung von Skripts wird programmtechnisch mit der SignFile-Methode des Scripting.Signer-Objekts durchgeführt.

<job>
<runtime>
   <named name="file" helpstring="die zu signierende Datei" required="true" type="string"/>
   <named name="cert" helpstring="der Name des signierenden Zertifikats" required="true" type="string"/>
   <named name="store" helpstring="der Name des Zertifikatsspeichers" required="false" type="string"/>
</runtime>
<script language="JScript">
   var Signer, File, Cert, Store;
   if (!(WScript.Arguments.Named.Exists("cert") && WScript.Arguments.Named.Exists("file")))
   {
      WScript.Arguments.ShowUsage();
      WScript.Quit();
   }
   Signer = new ActiveXObject("Scripting.Signer");
   File  = WScript.Arguments.Named("file");
   Cert  = WScript.Arguments.Named("cert");
   if (WScript.Arguments.Named.Exists("store"))
   {
      Store = WScript.Arguments.Named("store");
   }
   else
   {
      Store = "";
   }
    Signer.SignFile(File, Cert, Store);
</script>
</job>
Anmerkung Sie benötigen ein gültiges Zertifikat, um ein Skript zu signieren. Fragen Sie Ihren Administrator nach Ihrer Zertifizierungsrichtlinie, oder wenden Sie sich an eine kommerzielle Zertifizierungsstelle.

Siehe auch

Sicherheit und Windows Script Host | Verifizieren eines Skripts | Richtlinie zur Verifizierung der Signatur | WinTrust | Signieren eines Skripts


Richtlinien für Softwarebeschränkungen

Bei den Richtlinien zur Softwarebeschränkung handelt es sich um Vertrauensrichtlinien. Dies sind Regeln, die von einem Administrator festgelegt werden, um nicht vollkommen vertrauenswürdige Skripts einzuschränken, damit diese innerhalb des Betriebssystems keine unberechtigten Aktionen ausführen können.

Die folgenden drei Kriterien werden durch die Richtlinien zur Softwarebeschränkung bei der Bestimmung einer Vertrauensebene verwendet:

  • Alle Signaturinformationen in dem Skript
  • Der Pfad, über den das Skript ausgeführt wird
  • Dateiinhalt

Die Richtlinien für die Softwarebeschränkung definieren folgende Standardcontainer:

  • Domänenadministrator
  • Computeradministrator
  • Computerbenutzer
  • Gastbenutzer
  • Verweigert

Darüber hinaus können Sie eigene benutzerdefinierte Container definieren und eigene Richtlinien festlegen.

Sicherheit und Windows ScriptHost


Richtlinie zur Verifizierung der Signatur

In WSH können Administratoren die Verifizierung der Signatur entweder ein- oder ausschalten. Wenn ein Administrator die Verifizierung der Signatur einschaltet, können auf dem entsprechenden Computer nur Skripts ausgeführt werden, die von vertrauten, berechtigten Personen signiert wurden. Wenn die Verifizierung der Signatur angeschaltet ist, gibt es zwei mögliche Szenarien:

  • Wenn die Vertrauensstellung nicht bestimmt werden kann, muss der Benutzer bestätigen, dass das Skript ausgeführt werden soll.
  • Wenn die Vertrauensstellung nicht bestimmt werden kann, wird das Skript nicht ausgeführt.

Wenn ein Administrator die Verifizierung der Signatur ausschaltet, können Benutzer auf diesem Computer keine Skripts ausführen.

In Windows 2000 wird die Richtlinie für die Verifizierung der Signatur über den Editor für lokale Sicherheitsrichtlinien festgelegt. Weitere Informationen zum Editor für lokale Sicherheitsrichtlinien und zu den WSH-Einstellungen finden Sie im Windows-Online-Hilfesystem.

Der Registrierungsschlüssel für die Richtlinie zur Verifizierung von Signaturen befindet sich im folgenden Zweig:

\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows Script Host\Settings\TrustPolicy

Der Schlüssel wird auf einen der folgenden REG-DWORD-Werte festgelegt:

  • 0 Alle Skripts ausführen
  • 1 Benutzer fragen, wenn das Skript nicht vertrauenswürdig ist
  • 2 Nur vertrauenswürdige Skripts ausführen

Siehe auch

Sicherheit und Windows Script Host | Signieren eines Skripts | Verifizieren eines Skripts | WinTrust


Verifizieren eines Skripts

Bei der Verifizierung eines Skripts wird geprüft, ob das Skript, das Sie ausführen möchten, aus einer vertrauten Quelle stammt. Außerdem können Sie die Integrität des Skripts bestätigen. WSH verifiziert Skripts, bevor sie ausgeführt werden, doch möglicherweise haben Sie eigene Gründe, um ein Skript zu verifizieren.

Die Verifizierung von Skripts wird programmtechnisch mit der VerifyFile-Methode des Signer-Objekts durchgeführt.

Die VerifyFile-Methode:

  • Verifiziert die Gültigkeit einer Signatur
  • Verifiziert, dass die Signatur zu einer Person gehört, die sich auf Ihrer Liste vertrauter Herausgeber befindet.
  • Verifiziert, dass das Skript seit der Signatur nicht verändert wurde.
Anmerkung Obwohl die VerifyFile-Methode die digitale Signatur programmtechnisch bestätigt, sollten Sie stets sicherstellen, ob Sie den Vertrauensangaben in der Liste vertrauter Herausgeber tatsächlich vertrauen.

Siehe auch

Sicherheit und Windows Script Host | Signieren eines Skripts | Richtlinie zur Verifizierung der Signatur | WinTrust


Verzeichnis

In diesem Abschnitt

XML-Elemente
Liste der XML-Elemente von WSH.
Objekte
Liste der WSH-Objekte.
Eigenschaften
Liste der WSH-Eigenschaften.
Methoden
Liste der WSH-Methoden.
Ereignisse
Liste der WSH-Ereignisse.
Fehlermeldungen
Liste der WSH-Fehlermeldungen.

Verwandte Abschnitte

WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


XML-Elemente

In diesem Abschnitt

<?job?>-Element
XML-Verarbeitungsanweisung, die Attribute für die Fehlerbehandlung angibt.
<?XML?>-Element
Gibt an, dass eine Datei als XML analysiert werden soll.
<description>-Element
Markiert den beschreibenden Text, der angezeigt wird, wenn der Benutzer ShowUsage() ausführt oder das Skript mit dem Befehlszeilenparameter /? ausführt
<example>-Element
Hierdurch wird das Skript selbstdokumentierend.
<job>-Element
Markiert Anfang und Ende eines Auftrags innerhalb einer Windows Script-Datei (WSF).
<named>-Element
Markiert ein bestimmtes benanntes Argument für das Skript.
<object>-Element
In Windows Script-Komponentendateien verwendetes XML-Element, das Objekte definiert, auf die in Skripts verwiesen werden kann.
<package>-Element
Schließt mehrere Auftragsdefinitionen in einer Windows Script Host-Kontrolldatei (WSF) ein.
<reference>-Element
XML-Element, das einen Verweis auf eine externe Typbibliothek enthält.
<resource>-Element
XML-Element, das numerische oder Textdaten isoliert, die nicht in einem Skript hardcodiert werden sollen.
<runtime>-Element
Gruppiert die Menge von Laufzeitargumenten für ein Skript.
<script>-Element
XML-Element, das ein Skript enthält, mit dem das Verhalten einer Windows Script-Komponente definiert wird.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


<?job?>-Element

Gibt Attribute für die Fehlerbehandlung an.

<?job error="flag" debug="flag" ?>

Argumente

error
Boolescher Wert. False ist der Standardwert für alle Attribute. Bei True sind Fehlermeldungen für Syntax- oder Laufzeitfehler in der Windows Script-Datei (WSF) möglich.
Debug
Boolescher Wert. False ist der Standardwert für alle Attribute. Bei True ist die Debugfunktion aktiviert. Ist das Debuggen nicht aktiviert, sind Sie nicht in der Lage, den Skriptdebugger für eine Windows Script-Datei zu starten.

Hinweise

Obwohl die meisten Windows Script-Dateien normalerweise während der Produktion im Hintergrund ausgeführt werden, kann es sich als nützlich erweisen, bei Fehlern in der Windows Script-Datei (WSF) während der Entwicklung benachrichtigt zu werden.

Beispiel

Das folgende Beispiel kombiniert zwei Aufträge zu einer WSF-Datei, die zwei verschiedene Skriptsprachen verwendet:

<package>
   <job id="DoneInVBS">
      <?job debug="true"?>
      <script language="VBScript">
         WScript.Echo "Dies ist VBScript"
      </script>
   </job>

   <job id="DoneInJS">
      <?job debug="true"?>
      <script language="JScript">
         WScript.Echo("Dies ist JScript");
      </script>
   </job>
</package>

Siehe auch

<runtime>-Element | <named>-Element| <description>-Element | <example>-Element | <object>-Element | <package>-Element | <resource>-Element | <?XML?>-Element


<?XML?>-Element

Gibt an, das eine Datei als XML analysiert werden sollte.

<?XML version="version" [standalone="DTDflag"] ?>

Argumente

version
Eine Zeichenfolge in der Form n.n, die die XML-Ebene der Datei angibt. Verwenden Sie den Wert 1.0.
DTDflag
Optional. Boolescher Wert, der angibt, ob die XML-Datei einen Verweis auf eine externe Dokumenttypdefinition (Document Type Definition, DTD) enthält. XML-Dateien für Skriptkomponenten enthalten diesen Verweis nicht, somit ist der Wert für dieses Attribut immer "ja."

Hinweise

Diese Deklaration muss das erste Element in der Datei sein; es dürfen dem Element keine Leerzeilen vorangehen.

Diese Deklaration versetzt den Skriptkomponentencompiler in den XML-Modus, bei dem Elementtypen und Attributnamen zwischen Groß-/Kleinschreibung unterscheiden, Attribute von Hochkommas oder Anführungszeichen umgeben sind und alle Elemente analysiert werden. Wenn die Deklaration nicht enthalten ist, lässt der Compiler weniger strikte Syntax zu.

Wenn die Skriptkomponentendatei in einem Editor bearbeitet wird, der XML unterstützt, sollten Sie diese Deklaration hinzufügen und den XML-Konventionen folgen.

Beispiel

Im folgenden Beispiel wird die Verwendung des <?XML?>-Elements veranschaulicht: Element:

<?XML version="1.0" standalone="yes" ?>

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <object>-Element | <package>-Element | <resource>-Element | <?job?>-Element


<description>-Element

Kennzeichnet die Beschreibung, die bei Ausführung der ShowUsage-Methode oder bei Ausführung des Skripts mit Hilfe des Befehlszeilenparameters/? angezeigt wird.

<description>
    In diesem Abschnitt wird das Skript beschrieben
</description>

Hinweise

Die Beschreibung kann sich über mehr als eine Zeile erstrecken.

Sie sollten keine Anführungszeichen in der Beschreibung verwenden, wenn diese nicht in der Syntax angezeigt werden sollen. Der gesamte Text zwischen den Beschreibungstags wird in der Syntaxliste angezeigt. Dazu gehören u. a. Tabstopps, Zeilenumbrüche und Sonderzeichen.

Das <description>-Element ist vergleichbar mit dem <example>-Element, abgesehen davon, dass es zu Beginn der Syntax angezeigt wird, während das <example>-Element am Ende vorkommt.

Beispiel

Im folgenden Skript wird die Verwendung des <description>-Elements veranschaulicht:

<runtime>
    <description>
        Durch dieses Skript wird ein Server neu gestartet
    </description>
    <!--...etc...-->
</runtime>

Siehe auch

ShowUsage-Methode | <runtime>-Element | <named>-Element| <unnamed>-Element | <example>-Element


<example> Element

Windows Script Host

<example>-Element

Stellt ein Beispiel für die Syntax des Auftrags bereit.

<example>
   Beispieltext
</example>

Hinweise

Das <example>-Element ist eingeschlossen in das <runtime>-Element.

Beispiel

Im folgenden Skript wird die Verwendung des <example>-Elements veranschaulicht:

<job>
    <runtime>
        <description>This script reboots a server</description>
        <named
            name = "Server"
            helpstring = "Server, auf dem das Skript ausgeführt wird"
            type = "string"
            required = "true"
        />
        <example>Example: reboot.wsf /Server:scripting</example>
    </runtime>
</job>

Der Inhalt zwischen den Tags <example> und </example> wird aufgenommen, einschließlich neuer Zeilen und zusätzlicher Leerzeichen. Das Aufrufen der ShowUsage-Methode aus diesem Skript heraus führt zu folgender Ausgabe:

Durch dieses Skript wird ein Server neu gestartet

Usage: reboot.wsf /server:value

Optionen:

server : Server, auf dem das Skript ausgeführt wird

Beispiel:

reboot.wsf /server:scripting

ShowUsage-Methode


<job>-Element

Kennzeichnet den Anfang und das Ende eines Auftrags in einer Windows Script-Datei (WSF).

<job [id=JobID]>
    job code
</job>

Argumente

JobID
Optional. Bezeichnet eindeutig den Auftrag innerhalb des Gültigkeitsbereichs der Windows Script-Datei.

Hinweise

Jede jobID in einer Windows Script-Datei muss eindeutig sein.

Die Skripts in einer Reihe von job-Tags werden nacheinander, von oben nach unten, ausgeführt.

Ein Auftrag enthält mindestens einen Skriptblock. Ein Skriptblock setzt sich aus beliebigem Skriptcode, begrenzt durch <script>-Tags zusammen. Ein Skriptblock kann mehrere Skripts enthalten, wobei jedes Skript in einer anderen Skriptsprache verfasst sein kann.

Zur Ausführung eines bestimmten Auftrags oder mehrerer Aufträge verwenden Sie den //Job-Parameter. Wenn Sie mehr als einen Auftrag angeben, werden die Aufträge nacheinander ausgeführt. (Siehe Beispiel unten) Wenn Sie keinen Auftrag angeben, wird nur der erste Auftrag ausgeführt. Wenn die Windows Script-Datei mindestens zwei Aufträge enthält, müssen diese von einem <package>-Tag umgeben sein.

Beispiel

Beim folgenden Skriptbeispiel handelt es sich um eine Windows Script-Datei namens myScript.wsf. Diese Datei enthält zwei gesonderte Aufträge, die in unterschiedlichen Skriptsprachen erstellt wurden. Der erste, in VBScript erstellte Auftrag, trägt die ID DoneInVBS. Der zweite, in JScript erstellte Auftrag, trägt die ID DoneInJS.

<package>
    <job id="DoneInVBS">
    <?job debug="true"?>
        <script language="VBScript">
           WScript.Echo "Dies ist VBScript"
        </script>
    </job>
    <job id="DoneInJS">
    <?job debug="true"?>
        <script language="JScript">
           WScript.Echo("Dies ist JScript");
        </script>
    </job>
</package>

Zur Ausführung des zweiten Auftrags in der Windows Script-Datei myScript.wsf geben Sie Folgendes an der Eingabeaufforderung ein.

cscript myScript.wsf //job:DoneInJS

Zur Ausführung beider Aufträge in myScript.wsf geben Sie Folgendes an der Eingabeaufforderung ein.

cscript myScript.wsf //job:DoneInVBS //job:DoneInJS

Siehe auch

ShowUsage-Methode | <runtime>-Element | <named>-Element | <unnamed>-Element | <description>-Element | <example>-Element


<named>-Element

Beschreibt ein benanntes Argument für das Skript.

<named
   name = namedname
   helpstring = helpstring
   type = "string|boolean|simple"
   required = boolean
/>

Argumente

name
Zeichenfolge, die für den Namen des zu beschreibenden Arguments steht. Definiert das Argument an der Befehlszeile und im Skript.
helpstring
Zeichenfolge, die für die beschreibende Hilfe zu dem Argument steht. WSH stellt zur Laufzeit die beschreibende Hilfe mit Hilfe der ShowUsage-Methode oder des Arguments "/?" zur Verfügung.
type
Optional. Beschreibt den Argumenttyp, der definiert, wie das Argument von der Befehlszeile analysiert wird. Der Standardwert ist simple.
required
Optional. Ein boolescher Wert, der angibt, ob ein Argument obligatorisch ist. Wirkt sich ausschließlich auf die Anzeige der Syntax aus.

Hinweise

Das <named>-Element ist umgeben von (eingeschlossen in) runtime-Tags.

Ein Argument namens server stellt ein /server-Argument an der Befehlszeile sowie ein Argument namens server in der Auflistung der WSHNamed-Argumente bereit.

Beim Typ string ist das Argument eine Zeichenfolge. Das Argument wird als /named:stringvalue an das Skript weitergegeben.

Beim Typ Boolean ist das Argument ein boolescher Wert. Das Argument wird zur Aktivierung als /named+ oder zur Deaktivierung als /named- an das Skript weitergegeben.

Beim Typ simple nimmt das Argument keinen zusätzlichen Wert an und wird nur als der Name /named weitergegeben.

Beispiel

Im folgenden Skript wird die Verwendung des <named>-Elements veranschaulicht:

<job>
<runtime>
  <named
    name="server"
    helpstring="Server, auf den zugegriffen wird"
    type="string"
    required="true"
  />
  <named
    name="user"
    helpstring="Benutzerkonto, das auf dem Server verwendet wird. Die Standardeinstellung ist das aktuelle Konto."
    type="string"
    required="false"
  />
  <named
    name="enable"
    helpstring="Bei True (+) wird die Aktion aktiviert. Ein Minus(-) deaktiviert die Aktion."
    type="boolean"
    required="true"
  />
  <named
    name="verbose"
    helpstring="Wird dies angegeben, erhalten Sie eine ausführliche Ausgabe."
    type="boolean"
    required="false"
  />
</runtime>
<script language="JScript">
  WScript.Arguments.ShowUsage();
</script>
</job>

Beim Anzeigen der Syntax ergibt dies die folgende Ausgabe:

Usage: example.wsf /server:value [/user:value] /enable[+|-] [/verbose]

Optionen:

server    : Server, auf den zugegriffen wird
user      : Benutzerkonto, das auf dem Server verwendet wird. Die Standardeinstellung ist das aktuelle Konto.
enable    : Bei True (+) wird die Aktion aktiviert. Ein Minus(-) deaktiviert die Aktion.
verbose   : Wird dies angegeben, erhalten Sie eine ausführliche Ausgabe.

Siehe auch

ShowUsage-Methode | <runtime>-Element | <unnamed>-Element | <description>-Element | <example>-Element


<object>-Element (Windows Script Host)

Windows Script Host

<object>-Element

Definiert Objekte in Windows Script-Dateien (WSF), auf die von einem Skript verwiesen werden kann.

<object id="objID" [classid="clsid:GUID" | progid="progID"] />

Argumente

objID
Obligatorisch. Ein Name, der auf das Objekt in Ihrem Skript verweist. Objekt-ID-Werte müssen mit einem Buchstaben beginnen und können sich aus Buchstaben, Ziffern und Unterstrichen (_) zusammensetzen. Die Objekt-ID muss im gesamten Gültigkeitsbereich der Windows Script-Datei eindeutig sein.
GUID
Optional. Die Klassen-ID (GUID) des Objekts.
progID
Optional. Die Programm-ID des Objekts; kann alternativ zur Klassen-ID angegeben werden.

Hinweise

Das <object>-Element bietet eine Möglichkeit, Objekte global für die Verwendung in Skripts innerhalb der Windows Script-Datei offen zu legen, ohne Funktionen wie CreateObject() zu verwenden. Durch die Verwendung eines <object>-Elements wird das Objekt mit globaler Gültigkeit zur Verfügung gestellt. Skripttools sind so in der Lage, die Funktion der Anweisungsvervollständigung für die Mitglieder des Objekts bereitzustellen.

Sie müssen entweder classid oder progid angeben.

Beispiel

<job>
<obect id="fso" progid="Scripting.FileSystemObject"/>
<script language="Jscript">

var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Das ist ein Test.");
a.Close();

</script>
</job>

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <package>-Element


<package>-Element (Windows Script Host)

Windows Script Host

<package>-Element

Umfasst mehrere Auftragsdefinitionen in einer Windows Script-Datei (WSF).

<package>
   Code für einen oder mehrere Aufträge
</package>

Hinweise

Das <package>-Element ist optional, wenn eine WSF-Datei nur einen Auftrag enthält.

Beispiel

Das folgende Beispiel kombiniert zwei Aufträge zu einer WSF-Datei, die zwei verschiedene Skriptsprachen verwendet:

<package>
   <job id="DoneInVBS">
   <?job debug="true"?>
      <script language="VBScript">
         WScript.Echo "Dies ist VBScript"
      </script>
   </job>

   <job id="DoneInJS">
   <?job debug="true"?>
      <script language="JScript">
         WScript.Echo("Dies ist JScript");
      </script>
   </job>
</package>

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <object>-Element


<reference>-Element (Windows Script Host)

Windows Script Host

<reference>-Element

Enthält einen Verweis auf eine externe Typbibliothek.

<reference [object="progID"|guid="typelibGUID"] [version="version"] />

Argumente

progID
Programm-ID, von der die Typbibliothek abgeleitet werden kann. Darunter können eine Versionsnummer (z. B. ADO.Recordset.2.0), die explizite Programm-ID einer Typbibliothek oder die Programm-ID der ausführbaren Datei (wie etwa eine DLL), zu der die Typbibliothek gehört, fallen. Wenn Sie das Objektattribut verwenden, ist es nicht notwendig, ein Versionsattribut anzugeben, da die Version von der Programm-ID abgeleitet werden kann. Wenn das Objektattribut angegeben wurde, können Sie nicht zugleich ein GUID-Attribut angeben.
typelibGUID
Die GUID der Typbibliothek, auf die verwiesen werden soll. Wenn das GUID-Attribut angegeben wurde, können Sie nicht zugleich ein Objektattribut angeben.
version
Optional. Versionsnummer der zu verwendenden Typbibliothek. Sie muss im Format <Hauptversion>[.<Nebenversion>]. aufgebaut sein. Wenn keine Version angegeben wurde, ist 1.0 die Standardversion. Wenn das Objektattribut zur Angabe der Typbibliothek verwendet wird und keine Version angegeben wurde, wird die Version aus dem Registrierungsschlüssel für die angegebene Programm-ID abgeleitet. Wenn diese nicht gefunden werden kann, ist 1.0 die Standardeinstellung.

Hinweise

Durch das Verweisen auf eine Typbibliothek in der Windows Script-Datei (WSF) können Sie in der Typbibliothek definierte Konstanten in den Skripts verwenden. Das <reference>-Element sucht nach der Typbibliothek, die einer bestimmten Programm-ID oder einem bestimmten Typbibliotheksnamen zugeordnet ist, und stellt diese zur Verfügung. Informationen zu Typbibliotheken können in TLB-, OLB- oder DLL-Dateien bereitgestellt werden.

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <object>-Element | <package>-Element


<resource>-Element (Windows Script Host)

Windows Script Host

<resource>-Element

Isoliert Text- oder Zahlendaten, die nicht hardcodiert in ein Skript eingebunden sein sollten.

<resource id="resourceID">
   Text oder Zahl
</resource>

Argumente

resourceID
Eindeutiger Bezeichner für die Ressource innerhalb des Skripts.

Hinweise

Das <resource>-Element ermöglicht es Ihnen, Zeichenfolgen oder Zahlen in der Windows Script-Datei (WSF) zu isolieren, auf die Sie in den Skripts verweisen möchten. So werden beispielsweise Ressourcenelemente normalerweise zur Verwaltung von Zeichenfolgen verwendet, die in andere Sprachen übersetzt werden.

Den Wert einer Ressource erhalten Sie, indem Sie die getResource-Methode aufrufen und die ID der zu verwendenden Ressource an sie weitergeben.

Der gesamte Inhalt der Elemente wird verwendet, einschließlich der Leerzeichen (Tabstopps, Zeilenumbrüche usw.).

Beispiel

Der folgende Code definiert die Ressource (errNonNumeric) und gibt ihren Wert zurück, wenn die Variable upperBound nicht numerisch ist.

<resource id="errNonNumeric">
   Nicht numerischer Wert übergeben
</resource>

<script language="VBScript">
   <![CDATA[
      Function getRandomNumber(upperBound)
         If IsNumeric(upperBound) Then
            getRandomNumber = CInt(upperBound * Rnd + 1)
         Else
            getRandomNumber=getResource("errNonNumeric")
         End If
      End Function
   ]]>
</script>

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <object>-Element | <package>-Element | getResource-Methode


<runtime>-Element

Erstellt eine Gruppierung aus mehreren Laufzeitargumenten für ein Skript.

<runtime>
    <named attributes etc. />
    <unnamed attributes etc. />
    <example>Example Text</example>
    …
</runtime>

Hinweise

Die ShowUsage-Methode verwendet die vom <runtime>-Element umgebenen Informationen, um die Laufzeitparameter für ein Skript anzuzeigen.

Da das <runtime>-Element von job-Tags umgeben ist, gelten die definierten Laufzeitargumente ausschließlich für diesen Auftrag.

Anmerkung Ab Version 5.6 werden die vom <runtime>-Element umgebenen Daten nur als Dokumentation und zur Formatierung der von ShowUsage angezeigten Daten verwendet. Das <runtime>-Element erzwingt die Werte, die für die enthaltenen Argumente festgelegt wurden, nicht (somit löst ein "obligatorisches" Argument, das in der Befehlszeile fehlt, keinen Fehler aus). Wenn das <runtime>-Element in einer WSF-Datei enthalten ist, wird durch das Ausführen des Skripts mit Hilfe des Arguments "/?" die Syntax angezeigt und der Vorgang dann beendet.

Beispiel

Im folgenden Skript wird die Verwendung des <runtime>-Elements veranschaulicht:

<job>
    <runtime>
        <named
            name="server"
            helpstring="Server, auf dem das Skript ausgeführt wird"
            type="string"
            required="true"
        />
    </runtime>
<script language="JScript">
  if (!WScript.Arguments.Named.Exists("server"))
  {
    WScript.Arguments.ShowUsage();
  }
// ... some script here
</script>
</job>

Siehe auch

ShowUsage-Methode | <named>-Element | <unnamed>-Element | <description>-Element | <example>-Element


<script>-Element (Windows Script Host)

Windows Script Host

<script>-Element

Enthält Skript, das das Verhalten einer Windows Script-Datei (WSF) definiert.

<script language="language" [src="strFile"]>
     Skript
</script>

Argumente

language
Der Name der Skriptsprache, wie etwa VBScript oder JScript, die im Skript verwendet wird.
strFile
Der Name der Skriptdatei, die dem Skriptblock hinzugefügt wird.

Hinweise

Wenn die XML-Überprüfung nicht aktiviert ist, ignoriert der XML-Parser alle Zeilen innerhalb des <script>-Elements. Wenn die XML-Überprüfung jedoch durch Hinzufügen des <?XML?>-Elements am Anfang der Windows Script-Datei (WSF) aktiviert wurde, kann der XML-Parser die Größer-als-Zeichen (>) und Kleiner-als-Zeichen (<) sowie andere Symbole, die in Skripts als XML-Trennzeichen verwendet werden, falsch interpretieren.

Wenn Sie eine Datei erstellen, die weitgehend mit der XML-Syntax übereinstimmt, müssen Sie sicherstellen, dass Zeichen in Ihrem Skriptelement nicht als für XML vorbehaltene Zeichen behandelt werden. Es empfiehlt sich dazu, das eigentliche Skript in einen <![CDATA[ ... ]]>-Abschnitt einzufügen. Dies gilt für alle Datenblöcke vom Typ <example>, <description> und <resource>. Alle benötigen eventuell CDATA-Marker, wenn <?XML?> angegeben wurde und wenn sie für XML vorbehaltene Zeichen enthalten.

Anmerkung Fügen Sie einen CDATA-Abschnitt nur dann ein, wenn Sie auch die <?XML?>-Deklaration einfügen.

Beispiel

Das folgende Beispiel kombiniert zwei Aufträge zu einer WSF-Datei, die zwei verschiedene Skriptsprachen verwendet:

<package>
   <job id="DoneInVBS">
   <?job debug="true"?>
      <script language="VBScript">
         WScript.Echo "Dies ist VBScript"
      </script>
   </job>

   <job id="DoneInJS">
   <?job debug="true"?>
      <script language="JScript">
         WScript.Echo("Dies ist JScript");
      </script>
   </job>
</package>

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <object>-Element | <package>-Element | <resource>-Element | <?XML?>-Element


<unnamed>-Element

Beschreibt ein unbenanntes Argument für das Skript.

<unnamed
   name       = unnamedname
   helpstring = helpstring
   many       = boolean
   required   = boolean or integer
/>

Argumente

name
Die Zeichenfolge, die in der Syntax zur Darstellung dieses Arguments verwendet wird. Dieser Wert wird an keiner anderen Stelle verwendet.
helpstring
Zeichenfolge, die für die beschreibende Hilfe zu dem Argument steht. WSH stellt zur Laufzeit die beschreibende Hilfe mit Hilfe der ShowUsage-Methode oder des Arguments "/?" zur Verfügung.
many
Optional. Boolescher Wert. Bei True kann dieses Argument häufiger wiederholt werden, als dies vom obligatorischen Attribut angegeben ist. Andernfalls steht das obligatorische Attribut für die genaue Anzahl der Argumente, die erforderlich sind. Weitere Informationen hierzu finden Sie im Beispiel weiter unten.
required
Optional. Ein ganzzahliger Wert, der angibt, wie oft dieses Argument in der Befehlszeile angezeigt werden sollte.

Hinweise

Das <unnamed>-Element ist umgeben von (eingeschlossen in) runtime-Tags.

Ein Argument namens server stellt ein /server-Argument an der Befehlszeile sowie ein Argument namens server in der Auflistung der WSHNamed-Argumente bereit.

Anmerkung Das Name-Attribut des unbenannten Elements ist nur zur Anzeige bestimmt.

Beim Festlegen des "required"-Attributs wird ein boolescher Wert in eine Ganzzahl umgewandelt; "true" wird zu 1 und "false" wird zu 0.

Beispiel

Es folgen einige Beispiele dafür, wie sich die verschiedenen Attribute auf die Syntax mit unbenannten Elementen auswirken. Das erste Beispiel zeigt einen einfachen Fall:

<runtime>
<unnamed
  name="filename"
  helpstring="Zu verarbeitende Datei"
  many="false"
  required="true"
</>
</runtime>

Dies ergäbe Folgendes:

Usage: example.wsf filename

Optionen:

filename : Zu verarbeitende Datei

Ändern Sie dies zu:

<runtime>
<unnamed
  name="filename"
  helpstring="Zu verarbeitende Dateien"
  many="false"
  required="3"
</ >
</runtime>

Damit wird die Ausgabe geändert zu:

Usage: example.wsf filename1 filename2 filename3

Optionen:

filename : Zu verarbeitende Dateien

Der Parameter many enthält Schleifen, um darauf hinzuweisen, dass Sie mehr Dateien als angegeben eingeben können. Wenn das Beispiel wie folgt geändert wird:

<runtime>
<unnamed
  name="filename"
  helpstring="Zu verarbeitende Datei(en)"
  many="true"
  required="1"
</>
</runtime>

...ändert sich die Ausgabe entsprechend zu:

Usage: example.wsf filename1 [filename2...]

Optionen:

filename: Zu verarbeitende Datei.

Siehe auch

ShowUsage-Methode | <runtime>-Element | <named>-Element | <description>-Element | <example>-Element


<usage>-Element

Ermöglicht dem Benutzer, die Standardsyntaxanzeige außer Kraft zu setzen.

<usage>
    In diesem Abschnitt wird das Skript beschrieben
</usage>

Hinweise

Das <usage>-Element ist vergleichbar mit den Elementen <example> und <description> - es enthält Text, den Entwickler in die Syntax einfügen können. Bei Präsenz eines <usage>-Elements liegt der Unterschied darin, dass der gesamte Inhalt des <runtime>-Elements ignoriert und nur der Text im <usage>-Element angezeigt wird. Dadurch können Sie die Syntaxanzeige vollständig außer Kraft setzen.

Anmerkung Das <usage>-Element sollte immer von einem <runtime>-Element umgeben sein.

Beispiel

Im folgenden Skript wird die Verwendung des <usage>-Elements veranschaulicht:

<job>
<runtime>
<named name="arg1" helpstring="erstes Argument"/>
<usage>
An dieser Stelle folgt der Syntaxtext.
</usage>
</runtime>
<script language="vbscript">
WScript.Arguments.ShowUsage
</script>
</job>

Dies ergibt Folgendes:

An dieser Stelle folgt der Syntaxtext.

Siehe auch

<runtime>-Element | <named>-Element | <description>-Element | <example>-Element | <package>-Element | <resource>-Element | <?XML?>-Element


Objekte

In diesem Abschnitt

WScript-Objekt
Bietet Zugriff auf die meisten Objekte, Methoden und Eigenschaften im WSH-Objektmodell.
WshArguments-Objekt
Bietet Zugriff auf die gesamte Auflistung von Befehlszeilenparametern - in der Reihenfolge, in der sie ursprünglich eingegeben wurden.
WshController-Objekt
Legt die CreateScript()-Methode offen, mit der ein Remoteskriptprozess erstellt wird.
WshEnvironment-Objekt
Bietet Zugriff auf die Auflistung der Umgebungsvariablen des Microsoft Windows-Systems.
WshNamed-Objekt
Bietet Zugriff auf die benannten Befehlszeilenargumente des Skripts im WshArguments-Objekt.
WshNetwork-Objekt
Bietet Zugriff auf die freigegebenen Ressourcen des Netzwerkes, mit dem der Computer verbunden ist.
WshRemote-Objekt
Bietet Zugriff auf den Remoteskriptprozess.
WshRemoteError-Objekt
Legt die Fehlerinformationen offen, die verfügbar sind, wenn ein Remoteskript (ein WshRemote-Objekt) infolge eines Skriptfehlers abgebrochen wird.
WshScriptExec-Objekt
Bietet Status- und Fehlerinformationen zu einem Skript, das mit Exec ausgeführt wurde, sowie Zugriff auf die Kanäle stdIn, stdOut und stdErr.
WshShell-Objekt
Bietet Zugriff auf die Funktionalität der systemeigenen Windows-Shell.
WshShortcut-Objekt
Ermöglicht die programmatische Erstellung einer Verknüpfung.
WshSpecialFolders-Objekt
Ermöglicht den Zugriff auf die Windows-Sonderordner.
WshUnnamed-Objekt
Bietet Zugriff auf die unbenannten Befehlszeilenargumente des Skripts im WshArguments-Objekt.
WshUrlShortcut-Objekt
Ermöglicht Ihnen die programmatische Erstellung einer Verknüpfung mit einer Internetressource.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


Scripting.Signer-Objekt

Das Scripting.Signer-Objekt ermöglicht es einem Autor, ein Skript mit Hilfe einer digitalen Signatur zu unterzeichnen, und einem Empfänger, die Echtheit und Vertrauenswürdigkeit der Signatur zu überprüfen.

Hinweise

Das Scripting.Signer-Objekt setzt ein gültiges Zertifikat voraus.

Beispiel

Im folgenden JScript-Code wird dargestellt, wie ein Skript mit Hilfe des Scripting.Signer-Objekts digital signiert wird.

<job>
<runtime>
   <named name="file" helpstring="die zu signierende Datei" required="true" type="string"/>
   <named name="cert" helpstring="der Name des signierenden Zertifikats" required="true" type="string"/>
   <named name="store" helpstring="der Name des Zertifikatspeichers" required="false" type="string"/>
</runtime>
<script language="JScript">
   var Signer, File, Cert, Store = "my";
   if (!(WScript.Arguments.Named.Exists("cert") && WScript.Arguments.Named.Exists("file")))
   {
      WScript.Arguments.ShowUsage();
      WScript.Quit();
   }
   Signer = new ActiveXObject("Scripting.Signer");
   File  = WScript.Arguments.Named("file");
   Cert  = WScript.Arguments.Named("cert");
   if (WScript.Arguments.Named.Exists("store"))
   {
      Store = WScript.Arguments.Named("store");
   }

    Signer.SignFile(File, Cert, Store);
</script>
</job>

Siehe auch

Signieren eines Skripts | Sign-Methode | SignFile-Methode | Verify-Methode | VerifyFile-Methode


Methoden des Scripting.Signer-Objekts

Methoden

Sign-Methode

SignFile-Methode

Verify-Methode

VerifyFile-Methode


WScript-Objekt

Bietet Zugriff auf das Stammobjekt des Objektmodells von Windows Script Host.

Hinweise

Das WScript-Objekt ist das Stammobjekt der Hierarchie des Objektmodells von Windows Script Host. Es muss nie instantiiert werden, bevor seine Eigenschaften und Methoden aufgerufen werden können, und es ist in jeder Skriptdatei verfügbar. Das WScript-Objekt bietet beispielsweise Zugriff auf folgende Informationen:

  • Befehlszeilenargumente,
  • Name der Skriptdatei,
  • Name der Hostdatei,
  • Versionsinformationen zum Host.

Mit dem WScript-Objekt können Sie Folgendes ausführen:

  • Erstellen von Objekten,
  • Erstellen von Verbindungen mit Objekten,
  • Trennen von Verbindungen mit Objekten,
  • Synchronisieren von Ereignissen,
  • programmatisches Anhalten der Ausführung eines Skripts,
  • Ausgeben von Informationen an das Standardausgabegerät (entweder ein Windows-Dialogfeld oder die Befehlskonsole).

Mit dem WScript-Objekt kann der Modus festgelegt werden, in dem das Skript ausgeführt wird (entweder interaktiv oder im Batch).

Beispiel

Da es sich beim WScript-Objekt um das Root-Objekt für das Windows-Script-Host-Objektmodell handelt, können viele der Eigenschaften und Methoden auf das Objekt angewendet werden. Beispiele zur spezifischen Syntax erhalten Sie über die Links zu Eigenschaften und Methoden.

Eigenschaften

Arguments-Eigenschaft | FullName-Eigenschaft (WScript-Objekt) | Interactive-Eigenschaft | Name-Eigenschaft | Path-Eigenschaft | ScriptFullName-Eigenschaft | ScriptName-Eigenschaft | StdErr-Eigenschaft | StdIn-Eigenschaft | StdOut-Eigenschaft | Version-Eigenschaft

Methoden

CreateObject-Methode | ConnectObject-Methode | DisconnectObject-Methode | Echo-Methode | GetObject-Methode | Quit-Methode | Sleep-Methode

Ausführen von Skripts | WshShell-Objekt | WshNetwork-Objekt


Eigenschaften und Methoden des WScript-Objekts

Eigenschaften

Arguments-Eigenschaft

FullName-Eigenschaft

Name-Eigenschaft

Path-Eigenschaft

ScriptFullName-Eigenschaft

ScriptName-Eigenschaft

StdErr-Eigenschaft

StdIn-Eigenschaft

StdOut-Eigenschaft

Version-Eigenschaft

Methoden

CreateObject-Methode

ConnectObject-Methode

DisconnectObject-Methode

Echo-Methode

GetObject-Methode

Quit-Methode

Sleep-Methode


WshArguments-Objekt

Arguments-EigenschaftWScript-Objekt

Bietet Zugriff auf die gesamte Auflistung von Befehlszeilenparametern - in der Reihenfolge, in der sie ursprünglich eingegeben wurden.

Hinweise

Das WshArguments-Objekt ist eine Auflistung, die von der Arguments-Eigenschaft des WScript-Objekts (WScript.Arguments) zurückgegeben wird. Zwei der Eigenschaften des WshArguments-Objekts sind gefilterte Auflistungen von Argumenten - eine enthält die benannten Argumente (beim Abfragen dieser Eigenschaft wird ein WshNamed-Objekt zurückgegeben), die andere enthält die unbenannten Argumente (beim Abfragen dieser Eigenschaft wird ein WshUnnamed-Objekt zurückgegeben). Es gibt drei Möglichkeiten, auf Mengen von Befehlszeilenargumenten zuzugreifen.

  • Auf die Gesamtmenge der Argumente (solche mit Namen und solche ohne Namen) kann mit dem WshArguments-Objekt zugegriffen werden.
  • Auf die Argumente mit Namen kann mit dem WshNamed-Objekt zugegriffen werden.
  • Auf die Argumente ohne Namen kann mit dem WshUnnamed-Objekt zugegriffen werden.

Beispiel

Der folgende Code zeigt die Befehlszeilenparameter im WshArguments-Objekt an.

[VBScript]
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
   WScript.Echo objArgs(I)
Next
[JScript]
objArgs = WScript.Arguments;
for (i = 0; i < objArgs.length; i++)
{
   WScript.Echo(objArgs(i));
}

Eigenschaften

Item-Eigenschaft | Length-Eigenschaft (WshArguments-Objekt) | Count-Eigenschaft | Named-Eigenschaft | Unnamed-Eigenschaft

Methoden

Count-Methode | ShowUsage-Methode

Arguments-Eigenschaft | WshNamed-Objekt | WshUnnamed-Objekt


Eigenschaften und Methoden des WshArguments-Objekts

Eigenschaften

Item-Eigenschaft

Length-Eigenschaft

Methoden

Count-Methode


WshController-Objekt

'WScript-Objekt

Bietet Zugriff auf die CreateScript()-Methode (zum Erstellen eines Remoteskriptprozesses).

Beispiel

Im folgenden Beispiel wird ein Controllerobjekt verwendet, um ein WshRemote-Objekt zu erstellen.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("remote1.js")
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

Methoden

CreateScript-Methode

CreateObject-Methode


Methoden des WshController-Objekts

Methoden

CreateScript-Methode


WshEnvironment-Objekt

Environment-EigenschaftWshShell-Objekt

Bietet Zugriff auf die Auflistung der Windows-Umgebungsvariablen.

Hinweise

Das WshEnvironment-Objekt ist eine Auflistung von Umgebungsvariablen, die von der Environment-Eigenschaft des WshShell-Objekts zurückgegeben wird. Diese Auflistung enthält die Gesamtmenge der Umgebungsvariablen (solche mit Namen und solche ohne Namen). Verwenden Sie zum Abrufen einzelner Umgebungsvariablen (und deren Werte) aus dieser Auflistung den Namen der Umgebungsvariablen als Index.

Beispiel

Der folgende Code zeigt eine Umgebungsvariable an.

[VBScript]
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
WScript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
var WshSysEnv = WshShell.Environment("SYSTEM");
WScript.Echo(WshSysEnv("NUMBER_OF_PROCESSORS"));

Eigenschaften

Item-Eigenschaft | Length-Eigenschaft (WshEnvironment-Objekt)

Methoden

Count-Methode | Remove-Methode

Environment-Eigenschaft


Eigenschaften und Methoden des WshEnvironment-Objekts

Eigenschaften

Item-Eigenschaft

Length-Eigenschaft

Methoden

Count-Methode

Remove-Methode


WshNamed-Objekt

Named-EigenschaftWshArguments-Objekt

Bietet Zugriff auf die benannten Argumente an der Befehlszeile.

Hinweise

Die Named-Eigenschaft des WshArguments-Objekts gibt das WshNamed-Objekt zurück, bei dem es sich um eine Auflistung von Argumenten mit Namen handelt. Diese Auflistung verwendet den Argumentnamen als Index, um einzelne Argumentwerte abzurufen. Es gibt drei Möglichkeiten, auf Mengen von Befehlszeilenargumenten zuzugreifen.

  • Auf die Gesamtmenge der Argumente (solche mit Namen und solche ohne Namen) kann mit dem WshArguments-Objekt zugegriffen werden.
  • Auf die Argumente mit Namen kann mit dem WshNamed-Objekt zugegriffen werden.
  • Auf die Argumente ohne Namen kann mit dem WshUnnamed-Objekt zugegriffen werden.

Beispiel

The following code displays the number of named and unnamed command-line arguments.

<package>
<job id="JS">
<script language="JScript">

var argsNamed = WScript.Arguments.Named;
var argsUnnamed = WScript.Arguments.Unnamed;

WScript.Echo("Es gibt " + argsNamed.length + " benannte Argumente.");
WScript.Echo("Es gibt " + argsUnnamed.length + " unbenannte Argumente.");

</script>
</job>

<job id="VBS">
<script language="VBScript">

Dim argsNamed, argsUnnamed
Set argsNamed = WScript.Arguments.Named
Set argsUnnamed = WScript.Arguments.Unnamed

WScript.Echo "Es gibt " & argsNamed.Count & " benannte Argumente."
WScript.Echo "Es gibt " & argsUnnamed.Count & " unbenannte Argumente."

</script>
</job>
</package>

Eigenschaften

Item-Eigenschaft | Length-Eigenschaft

Methoden

Count-Methode | Exists-Methode

WshArguments-Objekt | WshUnnamed-Objekt


Eigenschaften und Methoden des WshNamed-Objekts

Eigenschaften

Item-Eigenschaft

Length-Eigenschaft

Methoden

Count-Methode

Exists-Methode


WshNetwork-Objekt

WScript-Objekt

Bietet Zugriff auf die freigegebenen Ressourcen des Netzwerkes, mit dem der Computer verbunden ist.

Hinweise

Erstellen Sie ein WshNetwork-Objekt, wenn eine Verbindung mit Netzwerkfreigaben und Netzwerkdruckern hergestellt oder getrennt werden soll, wenn Netzwerkfreigaben zugeordnet oder entfernt werden sollen oder auf Informationen zu einem Benutzer des Netzwerkes zugegriffen werden soll.

Beispiel

Im folgenden Beispiel wird die Anzeige des Domänen-, Computer- und Benutzernamens für das aktuelle Computersystem mit dem WshNetwork-Objekt demonstriert.

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         WScript.Echo "Domäne = " & WshNetwork.UserDomain
         WScript.Echo "Computername = " & WshNetwork.ComputerName
         WScript.Echo "Benutzername = " & WshNetwork.UserName
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         WScript.Echo("Domäne = " + WshNetwork.UserDomain);
         WScript.Echo("Computername = " + WshNetwork.ComputerName);
         WScript.Echo("Benutzername = " + WshNetwork.UserName);
      </script>
   </job>
</package>

Eigenschaften

ComputerName-Eigenschaft | UserDomain-Eigenschaft | UserName-Eigenschaft

Methoden

AddWindowsPrinterConnection-Methode | AddPrinterConnection-Methode | EnumNetworkDrives-Methode | EnumPrinterConnections-Methode | MapNetworkDrive-Methode | RemoveNetworkDrive-Methode | RemovePrinterConnection-Methode | SetDefaultPrinter-Methode

Ausführen von Skripts | WScript-Objekt


Eigenschaften und Methoden des WshNetwork-Objekts

Eigenschaften

ComputerName-Eigenschaft

UserDomain-Eigenschaft

UserName-Eigenschaft

Methoden

AddPrinterConnection-Methode

EnumNetworkDrives-Methode

EnumPrinterConnections-Methode

MapNetworkDrive-Methode

RemoveNetworkDrive-Methode

RemovePrinterConnection-Methode

SetDefaultPrinter-Methode


WshRemote-Objekt

WshController-Objekt

Bietet Zugriff auf den Remoteskriptprozess.

Hinweise

Das WshRemote-Objekt ermöglicht Ihnen die Remoteverwaltung von Computersystemen in einem Computernetzwerk. Es stellt eine Instanz eines WSH-Skripts dar, d. h. eine Skriptdatei mit einer der folgenden Erweiterungen: WSH, WSF, JS, VBS, JSE, VBE usw. Eine Instanz eines ausgeführten Skripts ist ein Prozess. Der Prozess kann entweder auf dem lokalen Computer oder auf einem Remotecomputer ausgeführt werden. Wenn kein Netzwerkpfad angegeben wird, wird der Prozess lokal ausgeführt. Wenn ein WSHRemote-Objekt erstellt wird (mit Hilfe der CreateScript()-Methode), wird das Skript auf das Zielcomputersystem kopiert. Dort beginnt die Ausführung des Skripts nicht sofort; sie beginnt erst, wenn die Execute-Methode des WSHRemote-Objekts aufgerufen wird. Über die WshRemote-Objektschnittstelle kann das Skript andere Programme oder Skripts manipulieren. Zusätzlich können auch externe Anwendungen Remoteskripts manipulieren. Das WshRemote-Objekt funktioniert asynchron über DCOM.

Beispiel

Das folgende Beispiel veranschaulicht, wie mit dem WshRemote-Objekt ein Remoteskript gestartet.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

Eigenschaften

Status-Eigenschaft | Error-Eigenschaft

Methoden

Execute-Methode | Terminate-Methode

Ereignisse

Start-Ereignis | End-Ereignis | Error-Ereignis

WshController-Objekt


Eigenschaften, Methoden und Ereignisse des WshRemote-Objekts

Eigenschaften

Status-Eigenschaft

Error-Eigenschaft

Methoden

Execute-Methode

Terminate-Methode

Ereignisse

Start-Ereignis

End-Ereignis

Error-Ereignis


WshRemoteError-Objekt

Error-EigenschaftWshRemote-Objekt

Bietet Zugriff auf die Fehlerinformationen, die verfügbar sind, wenn ein Remoteskript (ein WshRemote-Objekt) infolge eines Skriptfehlers abgebrochen wird.

Hinweise

Das WshRemoteError-Objekt wird von der Error-Eigenschaft des WshRemote-Objekts zurückgegeben.

Beispiel

Das folgende Beispiel veranschaulicht, wie mit dem WshRemoteError-Objekt zusammen mit einer Beschreibung des Fehlers angezeigt wird, an welcher Stelle des Skripts der Fehler aufgetreten ist.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

WScript.DisconnectObject RemoteScript

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler " & theError.Number & " - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

WScript.DisconnectObject(RemoteScript);

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler " + theError.Number + " - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Eigenschaften

Description-Eigenschaft | Line-Eigenschaft | Character-Eigenschaft | SourceText-Eigenschaft | Source-Eigenschaft | Number-Eigenschaft

WshRemote-Objekt


Eigenschaften des WshRemoteError-Objekts

Eigenschaften

Description-Eigenschaft

Line-Eigenschaft

Character-Eigenschaft

SourceText-Eigenschaft

Source-Eigenschaft

Number-Eigenschaft


WshScriptExec-Objekt

Exec-MethodeWshShell-Objekt

Bietet Statusinformationen zu einem mit Exec ausgeführten Skript sowie Zugriff auf die Datenströme StdIn, StdOut und StdErr.

Hinweise

Das WshScriptExec-Objekt wird von der Exec-Methode des WshShell-Objekts zurückgegeben. Die Exec-Methode gibt das WshScriptExec-Objekt entweder zurück, nachdem die Ausführung des Skripts oder Programms beendet ist oder bevor die Ausführung des Skripts oder Programms beginnt.

Beispiel

Der folgende Code führt calc.exe aus und gibt den endgültigen Status auf dem Bildschirm aus.

[VBScript]
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("calc")

Do While oExec.Status = 0
     WScript.Sleep 100
Loop

WScript.Echo oExec.Status
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("calc");

while (oExec.Status == 0)
{
     WScript.Sleep(100);
}

WScript.Echo(oExec.Status);

Eigenschaften

Status-Eigenschaft | StdOut-Eigenschaft | StdIn-Eigenschaft | StdErr-Eigenschaft

Methoden

Terminate-Methode

WScript-Objekt | Exec-Methode


Eigenschaften und Methoden des WshScriptExec-Objekts

Eigenschaften

ExitCode-Eigenschaft

ProcessID-Eigenschaft

Status-Eigenschaft

StdOut-Eigenschaft

StdIn-Eigenschaft

StdErr-Eigenschaft

Methoden

Terminate-Methode


WshShell-Objekt

WScript-Objekt

Bietet Zugriff auf die systemeigene Windows-Shell.

Hinweise

Erstellen Sie ein WshShell-Objekt, wenn ein Programm lokal ausgeführt, der Inhalt der Registrierung manipuliert, eine Verknüpfung erstellt oder auf einen Systemordner zugegriffen werden soll. Das WshShell-Objekt stellt die Environment-Auflistung zur Verfügung. Diese Auflistung ermöglicht Ihnen die Handhabung von Umgebungsvariablen (beispielsweise WINDIR, PATH oder PROMPT).

Beispiel

Im folgenden Beispiel wird die Erstellung einer Verknüpfung für das gerade ausgeführte Skript und einer URL-Verknüpfung zu www.microsoft.com demonstriert:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "CTRL+SHIFT+F"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "CTRL+SHIFT+F";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
      </script>
   </job>
</package>

Eigenschaften

CurrentDirectory-Eigenschaft | Environment-Eigenschaft | SpecialFolders-Eigenschaft

Methoden

AppActivate-Methode | CreateShortcut-Methode | ExpandEnvironmentStrings-Methode | LogEvent-Methode | Popup-Methode | RegDelete-Methode | RegRead-Methode | RegWrite-Methode | Run-Methode | SendKeys-Methode | Exec-Methode

Ausführen von Skripts


Eigenschaften und Methoden des WshShell-Objekts

Eigenschaften

CurrentDirectory-Eigenschaft

Environment-Eigenschaft

SpecialFolders-Eigenschaft

Methoden

AppActivate-Methode

CreateShortcut-Methode

ExpandEnvironmentStrings-Methode

LogEvent-Methode

Popup-Methode

RegDelete-Methode

RegRead-Methode

RegWrite-Methode

Run-Methode

SendKeys-Methode


WshShortcut-Objekt

WshShell-Objekt

Ermöglicht die Erstellung einer Verknüpfung durch ein Programm.

Beispiel

Im folgenden Beispiel wird die Erstellung einer Verknüpfung für das gerade ausgeführte Skript demonstriert:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "CTRL+SHIFT+F"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "CTRL+SHIFT+F";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
      </script>
   </job>
</package>

Eigenschaften

Arguments-Eigenschaft | Description-Eigenschaft | FullName-Eigenschaft (WshShortcut-Objekt) | Hotkey-Eigenschaft | IconLocation-Eigenschaft | TargetPath-Eigenschaft | WindowStyle-Eigenschaft | WorkingDirectory-Eigenschaft

Methoden

Save-Methode

Ausführen von Skripts | CreateShortcut-Methode


Eigenschaften und Methoden des WshShortcut-Objekts

Eigenschaften

Arguments-Eigenschaft

Description-Eigenschaft

FullName-Eigenschaft

Hotkey-Eigenschaft

IconLocation-Eigenschaft

TargetPath-Eigenschaft

WindowStyle-Eigenschaft

WorkingDirectory-Eigenschaft

Methoden

Save-Methode


WshSpecialFolders-Objekt

SpecialFolders-EigenschaftWshShell-Objekt

Bietet Zugriff auf die Auflistung der Windows-Sonderordner.

Hinweise

Die SpecialFolders-Eigenschaft des WshShell-Objekts gibt das WshSpecialFolders-Objekt zurück, bei dem es sich um eine Auflistung von Sonderordnern handelt. Diese Auflistung enthält Verweise auf Windows-Sonderordner (z. B. die Ordner Desktop, Startmenü und Persönliche Dokumente). Diese Auflistung ruft Pfade zu Sonderordnern ab, indem sie den Namen des Sonderordners als Index verwendet. Der Pfad eines Sonderordners hängt von der Benutzerumgebung ab. Die in einem Sonderordner gespeicherten Informationen sind für den im Computersystem angemeldeten Benutzer eindeutig. Wenn mehrere verschiedene Benutzer über Konten auf dem gleichen Computersystem verfügen, werden mehrere verschiedene Gruppen von Sonderordnern auf der Festplatte gespeichert.

Die folgenden Sonderordner stehen zur Verfügung:

  • AllUsersDesktop
  • AllUsersStartmenü
  • AllUsersProgramme
  • AllUsersAutostart
  • Desktop
  • Favoriten
  • Fonts
  • Eigene Dateien
  • Netzwerkumgebung
  • PrintHood
  • Programme
  • Recent
  • Send To
  • Startmenü
  • Autostart
  • Vorlagen

Beispiel

Das folgende Skript veranschaulicht die Verwendung des WshSpecialFolders-Objekts:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "CTRL+SHIFT+F"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "CTRL+SHIFT+F";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
      </script>
   </job>
</package>

Eigenschaften

Item-Eigenschaft

Methoden

Count-Methode

Ausführen von Skripts | SpecialFolders-Eigenschaft


Eigenschaften und Methoden des WshSpecialFolders-Objekts

Eigenschaften

Item-Eigenschaft

Length-Eigenschaft

Methoden

Count-Methode


WshUnnamed-Objekt

Unnamed-EigenschaftWshArguments-Objekt

Bietet Zugriff auf die unbenannten Argumente an der Befehlszeile.

Hinweise

Das WshUnnamed-Objekt ist eine schreibgeschützte Auflistung, die von der Unnamed-Eigenschaft des WshArguments-Objekts zurückgegeben wird. Einzelne Argumentwerte werden aus dieser Auflistung mit Hilfe nullbasierter Indizes abgerufen. Zwei der Eigenschaften des WshArguments-Objekts sind gefilterte Auflistungen von Argumenten - eine enthält die benannten Argumente (das WshNamed-Objekt), die andere enthält die unbenannten Argumente (das WshUnnamed-Objekt). Insgesamt erhalten Sie so drei Möglichkeiten, auf Mengen von Befehlszeilenargumenten zuzugreifen.

  • Auf die Gesamtmenge der Argumente (solche mit Namen und solche ohne Namen) kann mit dem WshArguments-Objekt zugegriffen werden.
  • Auf die Argumente mit Namen kann mit dem WshNamed-Objekt zugegriffen werden.
  • Auf die Argumente ohne Namen kann mit dem WshUnnamed-Objekt zugegriffen werden.

Beispiel

Mit dem folgenden Code können Sie die Anzahl der benannten und unbenannten Befehlszeilenargumente ermitteln.

<package>
<job id="JS">
<script language="JScript">

var argsNamed = WScript.Arguments.Named;
var argsUnnamed = WScript.Arguments.Unnamed;

WScript.Echo("Es gibt " + argsNamed.length + " benannte Argumente.");
WScript.Echo("Es gibt " + argsUnnamed.length + " unbenannte Argumente.");

</script>
</job>

<job id="VBS">
<script language="VBScript">

Dim argsNamed, argsUnnamed
Set argsNamed = WScript.Arguments.Named
Set argsUnnamed = WScript.Arguments.Unnamed

WScript.Echo "Es gibt " & argsNamed.Count & " benannte Argumente."
WScript.Echo "Es gibt " & argsUnnamed.Count & " unbenannte Argumente."

</script>
</job>
</package>

Eigenschaften

Item-Eigenschaft | Length-Eigenschaft (WshArguments-Objekt)

Methoden

Count-Methode

WshArguments-Objekt | WshNamed-Objekt


Eigenschaften und Methoden des WshUnnamed-Objekts

Eigenschaften

Item-Eigenschaft

Length-Eigenschaft

Methoden

Count-Methode


WshUrlShortcut-Objekt

WshShell-Objekt

Ermöglicht Ihnen die programmatische Erstellung einer Verknüpfung mit einer Internetressource.

Hinweise

Das WshUrlShortcut-Objekt ist ein untergeordnetes Objekt des WshShell-Objekts - zur Erstellung eines WshUrlShortcut-Objekts muss die CreateShortcut-Methode des WshShell-Objekts verwendet werden (z. B. WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")).

Beispiel

Im folgenden Beispiel wird die Erstellung einer URL-Verknüpfung zu www.microsoft.com demonstriert.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
          var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Eigenschaften

FullName-Eigenschaft (WshUrlShortcut-Objekt) | TargetPath-Eigenschaft

Methoden

Save-Methode

Ausführen von Skripts | CreateShortcut-Methode


Eigenschaften und Methoden des WshUrlShortcut-Objekts

Eigenschaften

FullName-Eigenschaft

TargetPath-Eigenschaft

Methoden

Save-Methode


Eigenschaften

In diesem Abschnitt

Arguments-Eigenschaft
Gibt das WshArguments-Objekt zurück.
AtEndOfLine-Eigenschaft
Gibt einen booleschen Wert zurück, der angibt, ob das Ende einer Eingabezeile erreicht wurde.
AtEndOfStream-Eigenschaft
Gibt einen booleschen Wert zurück, der angibt, ob das Ende eines Eingabedatenstroms erreicht wurde.
Character-Eigenschaft
Zeigt das bestimmte Zeichen in der Codezeile an, in der der Fehler enthalten ist.
Column-Eigenschaft
Gibt die Spaltennummer der aktuellen Zeichenposition in einem Eingabedatenstrom zurück.
ComputerName-Eigenschaft
Gibt den Namen des Computers zurück.
CurrentDirectory-Eigenschaft
Ermöglicht das Festlegen oder Abrufen des aktuellen Arbeitsordners des aktiven Skripts.
Description-Eigenschaft
Gibt die Beschreibung einer Verknüpfung zurück.
Environment-Eigenschaft
Gibt das WshEnvironment-Objekt zurück.
Error-Eigenschaft (WshRemote)
Legt ein WshRemoteError-Objekt offen.
ExitCode-Eigenschaft
Gibt den Exitcode zurück, der von einem mit der Exec()-Methode ausgeführten Skript oder Programm festgelegt wurde.
FullName-Eigenschaft
Gibt einen voll gekennzeichneten Pfadnamen zurück.
Hotkey-Eigenschaft
Ermöglicht die Zuweisung einer Tastenkombination zu einer Verknüpfung und die Bestimmung der Tastenkombination einer Verknüpfung.
IconLocation-Eigenschaft
Ermöglicht die Zuweisung eines Symbols zu einer Verknüpfung und die Bestimmung des einer Verknüpfung zugewiesenen Symbols.
Interactive-Eigenschaft
Ermöglicht die programmatische Festlegung des Skriptmodus sowie die programmatische Bestimmung des Skriptmodus.
Item-Eigenschaft
Legt ein angegebenes Element aus einer Auflistung offen.
Item-Eigenschaft (WshNamed)
Bietet Zugriff auf die Elemente im WshNamed-Objekt.
Item-Eigenschaft (WshUnnamed)
Gibt ein Element unter Verwendung eines nullbasierten Index zurück.
Length-Eigenschaft
Gibt die Anzahl der Elemente in einer Auflistung zurück.
Line-Eigenschaft (WScript)
Gibt die aktuelle Zeilennummer in einem Eingabedatenstrom zurück.
Line-Eigenschaft (WshRemote)
Identifiziert die Zeile in einem Skript, die eine Fehler verursachende Anweisung enthält.
Name-Eigenschaft
Gibt den angezeigten Namen des WScript-Objekts (der auf dem Host ausführbaren Datei) zurück.
Number-Eigenschaft
Zeigt die Fehlernummer an, die einen Skriptfehler darstellt.
Path-Eigenschaft
Gibt den Namen des Verzeichnisses zurück, in dem das WScript-Objekt (die auf dem Host ausführbare Datei) enthalten ist.
ProcessID-Eigenschaft
Meldet die Prozess-ID (PID) eines mit dem WshScriptExec-Objekt gestarteten Prozesses.
ScriptFullName-Eigenschaft
Gibt den vollständigen Pfadnamen des aktuell ausgeführten Skripts zurück.
ScriptName-Eigenschaft
Gibt den Dateinamen des aktuell ausgeführten Skripts zurück.
Source-Eigenschaft
Identifiziert das COM-Objekt, das den Skriptfehler verursacht hat.
SourceText-Eigenschaft
Enthält die Quellcodezeile, die einen Fehler verursacht hat.
SpecialFolders-Eigenschaft
Gibt das WshSpecialFolders-Objekt zurück.
Status-Eigenschaft (WshRemote)
Zeigt den aktuellen Ausführungsstatus des Remoteskripts an.
Status-Eigenschaft (WshScriptExec)
Bietet Statusinformationen zu einem mit der Exec()-Methode ausgeführten Skript.
StdErr-Eigenschaft (WScript)
Legt den lesegeschützten Fehlerausgabe-Datenstrom für das aktuelle Skript offen.
StdErr-Eigenschaft (WshScriptExec)
Legt den schreibgeschützten stderr-Ausgabedatenstrom des Exec-Objekts offen.
StdIn-Eigenschaft (WScript)
Legt den schreibgeschützten Eingabedatenstrom für das aktuelle Skript offen.
StdIn-Eigenschaft (WshScriptExec)
Legt den lesegeschützten stdin-Eingabedatenstrom des Exec-Objekts offen.
StdOut-Eigenschaft (WScript)
Legt den lesegeschützten Ausgabedatenstrom für das aktuelle Skript offen.
StdOut-Eigenschaft (WshScriptExec)
Legt den lesegeschützten stdout-Ausgabedatenstrom des Exec-Objekts offen.
TargetPath-Eigenschaft
Ermöglicht die Zuweisung eines Pfades zur ausführbaren Datei, auf die eine Verknüpfung zeigt, sowie die Bestimmung des Pfades zur ausführbaren Datei, auf die eine Verknüpfung zeigt.
UserDomain-Eigenschaft
Gibt den Domänennamen des Benutzers zurück.
UserName-Eigenschaft
Gibt den Namen des Benutzers zurück.
Version-Eigenschaft
Gibt die WSH-Version zurück.
WindowStyle-Eigenschaft
Ermöglicht die Zuweisung eines Fensterstils zu einer Verknüpfung sowie die Bestimmung des von einer Verknüpfung verwendeten Fensterstiltyps.
WorkingDirectory-Eigenschaft
Ermöglicht die Zuweisung eines Arbeitsverzeichnisses zu einer Verknüpfung sowie die Bestimmung des von einer Verknüpfung verwendeten Arbeitsverzeichnisses.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


Arguments-Eigenschaft (Shortcut-Objekt)

Legt die Argumente für eine Verknüpfung fest oder identifiziert diese.

object.Arguments

Argumente

object
WshShortcut-Objekt.

Hinweise

Die Arguments-Eigenschaft gibt eine Zeichenfolge zurück.

Beispiel

Der folgende Code legt die Arguments-Eigenschaft fest.

[VBScript]
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
oShellLink.TargetPath = WScript.ScriptFullName
oShellLink.WindowStyle = 1
oShellLink.Hotkey = "Ctrl+Alt+f"
oShellLink.IconLocation = "notepad.exe, 0"
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = strDesktop
oShellLink.Arguments = "C:\myFile.txt"
oShellLink.Save
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
var strDesktop = WshShell.SpecialFolders("Desktop");
var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
oShellLink.TargetPath = WScript.ScriptFullName;
oShellLink.WindowStyle= 1;
oShellLink.Hotkey= "Ctrl+Alt+f";
oShellLink.IconLocation= "notepad.exe, 0";
oShellLink.Description= "Shortcut Script";
oShellLink.WorkingDirectory= strDesktop;
oShellLink.Arguments = "C:\\myFile.txt"; oShellLink.Save();

Siehe auch

WshShortcut-Objekt | WshShell-Objekt | CreateShortcut-Methode


Arguments-Eigenschaft (WScript-Objekt)

Gibt das WshArguments-Objekt zurück (eine Auflistung von Argumenten).

object.Arguments

Argumente

object
WScript-Objekt.

Hinweise

Die Arguments-Eigenschaft enthält das WshArguments-Objekt (eine Auflistung von Argumenten). Verwenden Sie einen nullbasierten Index, um individuelle Argumente aus dieser Auflistung abzurufen.

Beispiel

Die folgenden Code-Beispiele zeigen alle Befehlszeilenparameter für ein Skript an.

[VBScript]
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
   WScript.Echo objArgs(I)
Next
[JScript]
objArgs = WScript.Arguments;
for (i = 0; i < objArgs.length; i++)
{
   WScript.Echo(objArgs(i));
}

Siehe auch

WScript-Objekt | WshArguments-Objekt | WshNamed-Objekt | WshUnnamed-Objekt


AtEndOfLine-Eigenschaft (Windows Script Host)

Windows Script Host

AtEndOfLine-Eigenschaft

Gibt einen booleschen Wert zurück, der anzeigt, ob das Zeilenende in einem Eingabestrom erreicht wurde.

object.AtEndOfLine

Argumente

object
StdIn-Textstromobjekt.

Hinweise

Die AtEndOfLine-Eigenschaft enthält einen booleschen Wert, der anzeigt, ob das Zeilenende in einem Eingabestrom erreicht wurde. Die AtEndOfLine-Eigenschaft gibt True zurück, wenn der Datenstromzeiger dem Zeilenendekennzeichen in einem Eingabestrom unmittelbar vorausgeht. Ist dies nicht der Fall, gibt die Eigenschaft False zurück. Die Eigenschaften und Methoden StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, tritt ein Fehler auf.

Beispiel

Die folgenden Beispiele lesen eine über die Tastatur eingegebene Textzeile ein und zeigen die Eingabe an, sobald das Ende der Zeile zu sehen ist.

[VBScript]
Dim Input
Input = ""

Do While Not WScript.StdIn.AtEndOfLine
   Input = Input & WScript.StdIn.Read(1)
Loop
WScript.Echo Input
[JScript]
var input = "";
while (!WScript.StdIn.AtEndOfLine)
{
   input += WScript.StdIn.Read(1);
}
WScript.Echo(input);

StdIn-Eigenschaft | Fehlermeldungen


AtEndOfStream-Eigenschaft (Windows Script Host)

Windows Script Host

AtEndOfStream-Eigenschaft

Gibt einen booleschen Wert zurück, der anzeigt, ob das Ende eines Eingabestroms erreicht wurde.

object.AtEndOfStream

Argumente

object
StdIn-Textstromobjekt.

Hinweise

Die AtEndOfStream-Eigenschaft enthält einen booleschen Wert, der anzeigt, ob das Ende eines Eingabestroms erreicht wurde. Die AtEndOfStream-Eigenschaft gibt True zurück, wenn sich der Datenstromzeiger am Ende eines Eingabestroms befindet, sonst wird False zurückgegeben. Die Eigenschaften und Methoden StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, tritt ein Fehler auf.

Beispiel

Die folgenden Code-Beispiele demonstrieren die Eigenschaft AtEndOfStream, indem eine mit "dir" erzeugte Standard-Verzeichnisauflistung eingelesen wird. Die erste und die letzte Zeile, bei denen es sich nicht um tatsächliche Verzeichniseinträge handelt, werden entfernt, und die Verzeichniseinträge werden mit doppeltem Zeilenabstand angezeigt.

[VBScript]
Dim StdIn, StdOut, Str1, Str2

Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut

Str1 = ""
Str2 = ""For i = 0 to 4
   StdIn.SkipLine
Next

i = 0
Do While Not StdIn.AtEndOfStream
     If i >= 2 Then
          StdOut.WriteLine Str1
     End If
     i = i + 1
     Str1 = Str2
     Str2 = StdIn.ReadLine
Loop
[JScript]
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;
var str1, str2 = "";
var i;
for (i = 0; i < 5; i++)
     stdin.SkipLine();
i = 0;
while (!stdin.AtEndOfStream)
{
     if (i++ >= 2)
     {
          stdout.WriteLine(str1);
     }
     str1 = str2;
     str2 = stdin.ReadLine();
}

StdIn-Eigenschaft | Fehlermeldungen


BuildVersion-Eigenschaft

Gibt die Build-Versionsnummer für den Windows Script Host zurück.

Object.BuildVersion

Parameter

Object
WScript Objekt.

Hinweise

Die BuildVersion-Eigenschaft gibt einen Ganzzahlwert zurück.

Die vollständige Versionsnummer für Windows Script Host besteht aus der Produktrelease-Versionsnummer, der die Build-Versionsnummer folgt. Wenn beispielsweise die Produktrelease-Versionsnummer für Windows Script Host 5.6 und die Build-Versionsnummer 6626 ist, lautet die vollständige Versionsnummer 5.6.6626.

Beispiel

Der folgende Code gibt die vollständige Versionsnummer für den Windows Script Host zurück. Darin enthalten ist die Produktrelease-Versionsnummer und die Build-Versionsnummer.

WScript.Echo WScript.Version & "." & WScript.BuildVersion;

Version-Eigenschaft


Character-Eigenschaft

Gibt das spezielle Zeichen in einer Codezeile zurück, die einen Fehler enthält.

Object.Character

Argumente

Object
WshRemoteError-Objekt.

Hinweise

Die Character-Eigenschaft gibt eine Ganzzahl vom Typ signed long zurück.

Einige Fehler sind keiner bestimmten Zeichenposition zugeordnet. Bei dem Fehler Expected End If ist z. B. keine Zeile vorhanden (eine Codezeile fehlt). In einem solchen Fall gibt die Character-Eigenschaft null (0) zurück.

Die Zeichenposition basiert auf einem Abstand von eins (1) (das erste Zeichen in einer Zeile befindet sich auf Position eins).

Beispiel

Der folgende JScript-Code demonstriert, wie das WshRemoteError-Objekt das Zeichen in der Codezeile mit dem Fehler anzeigt.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

WshRemote-Objekt | WshRemoteError-Objekt | Line-Eigenschaft | Description-Eigenschaft | SourceText-Eigenschaft | Number-Eigenschaft |Source-Eigenschaft


Column-Eigenschaft (Windows Script Host)

Windows Script Host

Column-Eigenschaft

Gibt die Spaltennummer der aktuellen Zeichenposition in einem Eingabestrom zurück.

object.Column

Argumente

object
StdIn-Textstromobjekt.

Hinweise

Die Column-Eigenschaft enthält einen schreibgeschützten Ganzzahlwert, der die Spaltennummer der aktuellen Zeichenposition in einem Eingabestrom anzeigt. Die Column-Eigenschaft entspricht 1, nachdem ein Neuezeilezeichen geschrieben wurde (bevor ein weiteres Zeichen geschrieben wird). Die Eigenschaften und Methoden StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, tritt ein Fehler auf.

Beispiel

Der folgende Code demonstriert die Verwendung der Eigenschaft Column, indem Eingaben über die Tastatur eingelesen und in Zeilen mit je 20 Zeichen aufgeteilt werden.

[VBScript]
Dim Input
Input = ""

Do While Not WScript.StdIn.AtEndOfLine
   Input = Input & WScript.StdIn.Read(1)
   If (WScript.StdIn.Column - 1) Mod 20 = 0 Then
      Input = Input & vbCrLf
   End If
Loop
WScript.Echo Input
[JScript]
var input = "";
while (!WScript.StdIn.AtEndOfLine)
{
   input += WScript.StdIn.Read(1);
   if ((WScript.StdIn.Column - 1) % 20 == 0)
   input += "\n";
}
WScript.Echo(input);

StdIn-Eigenschaft | Fehlermeldungen


ComputerName-Eigenschaft

Gibt den Namen des Computersystems zurück.

object.ComputerName

Argumente

object
WshNetwork-Objekt.

Hinweise

Die ComputerName-Eigenschaft enthält einen Zeichenfolgenwert, der den Namen des Computersystems anzeigt.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der ComputerName-Eigenschaft.

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         WScript.Echo "Domäne = " & WshNetwork.UserDomain
         WScript.Echo "Computername = " & WshNetwork.ComputerName
         WScript.Echo "Benutzername = " & WshNetwork.UserName
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         WScript.Echo("Domäne = " + WshNetwork.UserDomain);
         WScript.Echo("Computername = " + WshNetwork.ComputerName);
         WScript.Echo("Benutzername = " + WshNetwork.UserName);
         }
      </script>
   </job>
</package>

Ausführen von Skripts | WshNetwork-Objekt


CurrentDirectory-Eigenschaft

Ruft das aktuell aktive Verzeichnis ab oder ändert dieses.

object.CurrentDirectory

Argumente

object
WshShell-Objekt.

Hinweise

CurrentDirectory gibt eine Zeichenfolge zurück, die den voll gekennzeichneten Pfad zum aktuellen Arbeitsverzeichnis des aktiven Prozesses enthält.

Beispiel

Der folgende Code zeigt das aktuell aktive Verzeichnis an.

[VBScript]
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo WshShell.CurrentDirectory
[JScript]
var WshShell = WScript.CreateObject ("WScript.Shell");
WScript.Echo (WshShell.CurrentDirectory);

WshShell-Objekt


Description-Eigenschaft (Windows Script Host)

Windows Script Host

Description-Eigenschaft

Gibt die Beschreibung einer Verknüpfung zurück.

object.Description

Argumente

object
WshShortcut-Objekt.

Hinweise

Die Description-Eigenschaft enthält einen Zeichenfolgenwert, der eine Verknüpfung beschreibt.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Description-Eigenschaft.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Strg+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Verknüpfung - Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Ausführen von Skripts | WshShortcut-Objekt


Description-Eigenschaft (WshRemoteError)

Enthält eine kurze Beschreibung des Fehlers, der das Remoteskript terminieren ließ.

Object.Description

Argumente

Object
WshRemoteError-Objekt.

Hinweise

Die Description-Eigenschaft gibt eine Zeichenfolge zurück.

Wenn keine Fehlerbeschreibung zur Verfügung steht, gibt die Description-Eigenschaft eine leere Zeichenfolge zurück.

Beispiel

Der folgende JScript-Code demonstriert, wie das WshRemoteError-Objekt die Beschreibung eines Fehlers anzeigt.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

WshRemote-Objekt | WshRemoteError-Objekt | Line-Eigenschaft | Character-Eigenschaft | SourceText-Eigenschaft | Number-Eigenschaft | Source-Eigenschaft


Environment-Eigenschaft

Gibt das WshEnvironment-Objekt zurück (eine Auflistung von Umgebungsvariablen).

object.Environment ([strType])

Argumente

object
WshShell-Objekt.
strType
Optional. Gibt den Speicherort der Umgebungsvariablen an.

Hinweise

Die Environment-Eigenschaft enthält das WshEnvironment-Objekt (eine Auflistung von Umgebungsvariablen). Wenn strType angegeben ist, wird festgelegt, welchen Speicherbereich die Umgebungsvariable adressiert. Mögliche Werte sind System, User, Volatile oder Process. Wird strType nicht angegeben, gibt die Environment-Eigenschaft abhängig vom Betriebssystem verschiedene Umgebungsvariablen zurück.

Typ der Umgebungsvariablen | Betriebssystem
System | Microsoft Windows NT/2000
Process | Windows 95/98/Me
Anmerkung Für Windows 95/98/Me ist nur ein strType zulässig - Process.

In der folgenden Tabelle werden einige Variablen aufgelistet, die das Betriebssystem Windows zur Verfügung stellt. Skripts können auf Umgebungsvariablen zugreifen, die durch andere Anwendungen festgelegt wurden.

Anmerkung Keine der folgenden Variablen steht für den Typ Volatile zur Verfügung.
Name | Beschreibung | System | User | Process (NT/ 2000) | Process (98/ME)
NUMBER_OF_PROCESSORS | Anzahl von Prozessoren, die in dem Computer arbeiten | X | - | X | -
PROCESSOR_ARCHITECTURE | Prozessortyp in der Arbeitsstation des Benutzers | X | - | X | -
PROCESSOR_IDENTIFIER | Prozessor-ID der Arbeitsstation des Benutzers | X | - | X | -
PROCESSOR_LEVEL | Prozessor-Level der Arbeitsstation des Benutzers | X | - | X | -
PROCESSOR_REVISION | Prozessorversion der Arbeitsstation des Benutzers | X | - | X | -
OS | Betriebssystem in der Arbeitsstation des Benutzers | X | - | X | -
COMSPEC | Ausführbare Datei für die Befehlseingabe (gewöhnlich cmd.exe) | X | - | X | X
HOMEDRIVE | Primäres lokales Laufwerk (gewöhnlich Laufwerk C) | - | - | X | -
HOMEPATH | Standardverzeichnis für Benutzer (in Windows 2000 gewöhnlich \users\default) | - | - | X | -
PATH | Umgebungsvariable PATH | X | X | X | X
PATHEXT | Dateinamenerweiterungen für ausführbare Dateien (gewöhnlich COM, EXE, BAT oder CMD) | X | - | X | -
PROMPT | Eingabeaufforderung (gewöhnlich $P$G) | - | - | X | X
SYSTEMDRIVE | Lokales Laufwerk, auf dem sich das Systemverzeichnis befindet (gewöhnlich c:\) | - | - | X | -
SYSTEMROOT | Systemverzeichnis (z. B. c:\winnt) Dies ist identisch mit WINDIR. | - | - | X | -
WINDIR | Systemverzeichnis (z. B. c:\winnt) Dies ist identisch mit SYSTEMROOT. | X | - | X | X
TEMP | Verzeichnis für die Ablage temporärer Dateien (z. B. c:\temp) | - | X | X | X
TMP | Verzeichnis für die Ablage temporärer Dateien (z. B. c:\temp) | - | X | X | X

Beispiel

Mit dem folgenden Code wird die Systemumgebungsvariable NUMBER_OF_PROCESSORS abgerufen.

[VBScript]
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
WScript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
var WshSysEnv = WshShell.Environment("SYSTEM");
WScript.Echo(WshSysEnv("NUMBER_OF_PROCESSORS"));

WshEnvironment-Objekt | WshShell-Objekt


Error-Eigenschaft (WshRemote)

Zeigt das WshRemoteError-Objekt an, das Informationen über den Fehler enthält, der zur verfrühten Terminierung des Remoteskripts führte.

Object.Error

Argumente

Object
WshRemote-Objekt.

Hinweise

Die Error-Eigenschaft gibt ein WshRemoteError-Objekt zurück.

Beispiel

Der folgende Code demonstriert, wie die Error-Eigenschaft des WshRemote-Objekts ein WshRemoteError-Objekt anzeigt, das wiederum die Zeile, das Zeichen und die Beschreibung des Fehlers anzeigt.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);    WScript.Quit(-1);
}

Siehe auch

WshController-Objekt | WshRemote-Objekt | WshRemoteError-Objekt | Status-Eigenschaft | Execute-Methode | Terminate-Methode | Start-Ereignis | End-Ereignis | Error-Ereignis


ExitCode-Eigenschaft

Gibt den Exitcode zurück, den ein über die Exec()-Methode ausgeführtes Skript oder Programm festgelegt hat.

Object.ExitCode

Parameter

Object
WshScriptExec Objekt

Hinweise

Ausführbare Dateien legen einen Exitcode fest, wenn sie ihre Ausführung beendet haben. Dieser liefert die Statusinformationen, wenn ein Prozess endet. Häufig dient dies zum Übersenden eines Fehlercodes (oder einer anderen Information) zurück an den Aufrufer. Wenn der Prozess nicht beendet wurde, gibt die ExitCode-Eigenschaft 0 zurück. Die von ExitCode zurückgegebenen Werte hängen von der Anwendung ab, die aufgerufen wurde.

Beispiel

Der folgende Code zeigt ein Beispiel der Eigenschaft ExitCode.

[VBScript]
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("%comspec% /c dire")

Function ReadAllFromAny(oExec)

     If Not oExec.StdOut.AtEndOfStream Then
          ReadAllFromAny = oExec.StdOut.ReadAll
          Exit Function
     End If

     If Not oExec.StdErr.AtEndOfStream Then
          ReadAllFromAny = oExec.StdErr.ReadAll
          Exit Function
     End If

     ReadAllFromAny = -1
End Function

Dim allInput, tryCount

allInput = ""
tryCount = 0

Do While True

     Dim input
     input = ReadAllFromAny(oExec)

     If -1 = input Then
          If tryCount > 10 And oExec.Status = 1 Then
               Exit Do
          End If
          tryCount = tryCount + 1
          WScript.Sleep 100
     Else
          allInput = allInput & input
          tryCount = 0
     End If
Loop

If oExec.ExitCode <> 0 Then
     WScript.Echo "Warnung: Beendigungscode ist ungleich Null"
End If

WScript.Echo allInput
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec    = WshShell.Exec("%comspec% /c dire");

function ReadAllFromAny(oExec)
{
     if (!oExec.StdOut.AtEndOfStream)
          return oExec.StdOut.ReadAll();

     if (!oExec.StdErr.AtEndOfStream)
          return oExec.StdErr.ReadAll();

     return -1;
}

var allInput = "";
var tryCount = 0;

while (true)
{
     var input = ReadAllFromAny(oExec);
     if (-1 == input)
     {
          if (tryCount++ > 10 && oExec.Status == 1)
               break;
          WScript.Sleep(100);
     }
     else
     {
          allInput += input;
          tryCount = 0;
     }
}

if (oExec.ExitCode != 0)
{
     WScript.Echo("Warnung: Beendigungscode ist ungleich Null");
}

WScript.Echo(allInput);

Exec-Methode | WshScriptExec-Objekt


FullName-Eigenschaft (WScript-Objekt)

Gibt den voll gekennzeichneten Pfad für die ausführbare Hostdatei (CScript.exe oder WScript.exe) zurück.

object.FullName

Argumente

object
WScript-Objekt.

Hinweise

Bei der FullName-Eigenschaft handelt es sich um eine schreibgeschützte Zeichenfolge, die den voll gekennzeichneten Pfad zur ausführbaren Hostdatei repräsentiert.

Beispiel

Der folgende JScript-Code demonstriert die Verwendung der FullName-Eigenschaft:

WScript.Echo (WScript.FullName);

Sie erhalten folgende Ausgabe:

C:\WINNT\System32\cscript.exe

Siehe auch

Path-Eigenschaft | WScript-Objekt | WshShortcut-Objekt | WshUrlShortcut-Objekt


FullName-Eigenschaft (WshShortcut-Objekt)

Liefert den voll gekennzeichneten Pfad für das Ziel des Verknüpfungsobjekts.

object.FullName

Argumente

object
WshShortcut-Objekt.

Hinweise

Die FullName-Eigenschaft enthält einen schreibgeschützten Zeichenfolgenwert, der den voll gekennzeichneten Pfad zum Ziel der Verknüpfung anzeigt.

Beispiel

Mit dem folgenden Code wird der voll gekennzeichnete Pfad einer Verknüpfung abgerufen.

[VBScript]
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
oShellLink.TargetPath = WScript.ScriptFullName
oShellLink.WindowStyle = 1
oShellLink.Hotkey = "CTRL+SHIFT+F"
oShellLink.IconLocation = "notepad.exe, 0"
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = strDesktop
oShellLink.Save
WScript.Echo oShellLink.FullName
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
strDesktop = WshShell.SpecialFolders("Desktop");
var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
oShellLink.TargetPath = WScript.ScriptFullName;
oShellLink.WindowStyle = 1;
oShellLink.Hotkey = "CTRL+SHIFT+F";
oShellLink.IconLocation = "notepad.exe, 0";
oShellLink.Description = "Shortcut Script";
oShellLink.WorkingDirectory = strDesktop;
oShellLink.Save();
WScript.Echo(oShellLink.FullName);

Siehe auch

Path-Eigenschaft | WScript-Objekt | WshShortcut-Objekt | WshUrlShortcut-Objekt


FullName-Eigenschaft (WshUrlShortcut-Objekt)

Gibt den voll gekennzeichneten Pfad für das Ziel des Verknüpfungsobjekts zurück.

object.FullName

Argumente

object
WshUrlShortcut-Objekt.

Hinweise

String. Schreibgeschützt.

Bei der FullName-Eigenschaft handelt es sich um einen schreibgeschützten Zeichenfolgenwert, der den voll gekennzeichneten Pfad zum Ziel der Verknüpfung repräsentiert.

Beispiel

Mit dem folgenden Code wird der voll gekennzeichnete Pfad einer URL-Verknüpfung abgerufen.

[VBScript]
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
oUrlLink.TargetPath = "http://www.microsoft.com"
oUrlLink.Save
WScript.Echo oUrlLink.FullName
[JScript]
var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
oUrlLink.TargetPath = "http://www.microsoft.com/germany";
oUrlLink.Save();
WScript.Echo (oUrlLink.FullName);

Siehe auch

Path-Eigenschaft | WScript-Objekt | WshShortcut-Objekt | WshUrlShortcut-Objekt


Hotkey-Eigenschaft

Ordnet einer Verknüpfung eine Tastenkombination zu oder bestimmt die einer Verknüpfung zugeordnete Tastenkombination.

object.Hotkey = strHotkey

Argumente

object
WshShortcut-Objekt.
strHotkey
Eine Zeichenfolge, die die Tastenkombination darstellt, die der Verknüpfung zugeordnet werden soll.

Syntax

Die Syntax für strHotkey ist wie folgt:

[KeyModifier]KeyName
KeyModifier
Kann eine der Folgenden sein: ALT+, STRG+, UMSCHALT+, ERW+.

Anmerkung ERW+ bedeutet "Erweiterte Taste" - diese Tastenkombination wird hier aufgelistet, falls dem Zeichensatz später eine neue UMSCHALT-Taste hinzugefügt wird.

KeyName
a ... z, 0 ... 9, F1 … F12, ...

KeyName unterscheidet nicht zwischen Groß- und Kleinschreibung.

Hinweise

Als Hotkey wird eine Tastenkombination bezeichnet, die eine Verknüpfung startet, wenn alle zugeordneten Tasten gleichzeitig gedrückt werden.

  • Mit Hotkeys können Verknüpfungen gestartet werden, die sich auf dem Desktop Ihres Systems und im Windows-Startmenü befinden.
    Anmerkung Ein anderer Name für Hotkey ist Tastenkombination.

In Windows 2000 beginnen alle gültigen Hotkeys stets mit STRG + ALT.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der HotKey-Eigenschaft.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | Ausführen von Skripts | WshSpecialFolders-Objekt | WshShortcut-Objekt


IconLocation-Eigenschaft

Weist einer Verknüpfung ein Symbol zu oder bestimmt das einer Verknüpfung zugeordnete Symbol.

object.IconLocation = strIconLocation

Argumente

object
WshShortcut-Objekt.
strIconLocation
Eine Zeichenfolge, die das Symbol sucht. Die Zeichenfolge sollte einen voll gekennzeichneten Pfad sowie einen dem Symbol zugeordneten Index enthalten. Weitere Einzelheiten entnehmen Sie dem Beispiel.

Hinweise

String.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der IconLocation-Eigenschaft.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"  'Null ist der Index
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";  //Null ist der Index
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
      </script>
   </job>
</package>

Ausführen von Skripts | WshShortcut-Objekt


Interactive-Eigenschaft

Legt den Skriptmodus fest oder identifiziert diesen.

object.Interactive

Argumente

object
WScript-Objekt.

Hinweise

Die Interactive-Eigenschaft gibt einen booleschen Wert zurück.

Die zwei möglichen Modi sind batch und interactive. Im interaktiven Modus (Standardeinstellung) bietet das Skript Benutzerinteraktion. Die Eingabe zu und die Ausgabe von Windows Script Host ist aktiviert. Das Skript kann Informationen in Dialogfeldern ausgeben und auf das Feedback des Benutzers warten. Im Stapelverarbeitungsmodus (Batch) wird diese Art der Benutzerinteraktion nicht unterstützt - jegliche Ein- und Ausgabe zum bzw. vom WSH ist deaktiviert. Sie können den Skriptmodus auch über die Windows Script Host-Befehlszeilenparameter //I (für Interactive) und //B (für Batch) festlegen.

Beispiel

Der folgende JScript-Code zeigt den Skriptmodus an.

WScript.Echo WScript.Interactive;

Der folgende JScript-Code legt den Skriptmodus auf batch fest.

WScript.Interactive = false;

WScript-Objekt


Item-Eigenschaft (Windows Script Host)

Windows Script Host

Item-Eigenschaft

Zeigt ein bestimmtes Element aus einer Auflistung an.

Object.Item(natIndex)

Argumente

Object
Das Ergebnis einer der beiden Funktionen EnumNetworkDrive oder EnumPrinterConnections oder das Objekt, das von einer der beiden Eigenschaften Environment oder SpecialFolders zurückgegeben wurde.
natIndex
Abzurufendes Element.

Hinweise

Item ist die Standardeigenschaft für jede Auflistung. Bei den Auflistungen EnumNetworkDrive und EnumPrinterConnections ist index eine Ganzzahl, während index bei den Auflistungen Environment und SpecialFolders eine Zeichenfolge ist.

WshShell.SpecialFolders.Item (strFolderName) gibt in VBScript "Empty" ("Leer") und in JScript "undefined" ("undefiniert") zurück, wenn der angeforderte Ordner (strFolderName) nicht zur Verfügung steht.

Die folgende Tabelle listet die speziellen Ordner mit der Windows-Version auf, die diese unterstützt.

Ordner | Windows-Version
AllUsersDesktop | Windows 2000
AllUsersStartMenu | Windows 2000
AllUsersPrograms | Windows 2000
AllUsersStartup | Windows 2000
Desktop | Windows 98/ME, Windows 2000
Favoriten | Windows 98/ME, Windows 2000
Schriftarten | Windows 98/ME, Windows 2000
Eigene Dateien | Windows 98/ME, Windows 2000
NetHood | Windows 98/ME, Windows 2000
PrintHood | Windows 98/ME, Windows 2000
Programme | Windows 98/ME, Windows 2000
Recent | Windows 98/ME, Windows 2000
SendTo | Windows 98/ME, Windows 2000
StartMenü | Windows 98/ME, Windows 2000
StartupB | Windows 2000
Vorlagen | Windows 2000

Beispiel

Der folgende Code zeigt er Netzwerk-Zuordnungsdaten für Laufwerke und Drucker an.

<package>
    <job id="vbs">
        <script language="VBScript">
            Set WshNetwork = WScript.CreateObject("WScript.Network")
            Set oDrives = WshNetwork.EnumNetworkDrives
            Set oPrinters = WshNetwork.EnumPrinterConnections
            WScript.Echo "Zugeordnete Netzlaufwerke:"
            For i = 0 to oDrives.Count - 1 Step 2
                WScript.Echo "Laufwerk " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
            Next
            WScript.Echo
            WScript.Echo "Zugeordnete Netzwerkdrucker:"
            For i = 0 to oPrinters.Count - 1 Step 2
                WScript.Echo "Anschluss " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)
            Next
        </script>
    </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         var oDrives = WshNetwork.EnumNetworkDrives();
         var oPrinters = WshNetwork.EnumPrinterConnections();
         WScript.Echo();
         WScript.Echo("Zugeordnete Netzlaufwerke:");
         for(i = 0; i < oDrives.length; i += 2){
            WScript.Echo("Laufwerk " + oDrives.Item(i) + " = " + oDrives.Item(i + 1));
         }
         WScript.Echo();
         WScript.Echo("Zugeordnete Netzwerkdrucker:");
         for(i = 0; i < oPrinters.length; i += 2){
            WScript.Echo("Anschluss " + oPrinters.Item(i) + " = " + oPrinters.Item(i + 1));
         }
      </script>
   </job>
</package>

Siehe auch

EnumNetworkDrive-Methode | EnumPrinterConnections-Methode | Environment-Eigenschaft | SpecialFolders-Eigenschaft


Item-Eigenschaft (WshNamed)

Bietet Zugriff auf die Elemente im WshNamed-Objekt.

Object.Item(key)

Parameter

Object
WshNamed Objekt
key
Der Name des Elements, das Sie abrufen möchten.

Hinweise

Die Item-Eigenschaft gibt eine Zeichenfolge zurück. Bei Auflistungen gibt sie ein Element auf Basis des angegebenen Schlüssels zurück. Bei der Eingabe von Argumenten auf der Befehlszeile können Sie in Zeichenfolgenargumenten Leerzeichen eingeben, wenn Sie die Zeichenfolge in Anführungszeichen einschließen. Betrachten Sie folgendes Beispiel:
myscript.vbs /stringarg:"This string has spaces"

Die Anführungszeichen werden in der WshNamed-Auflistung entfernt. Damit ein Argument in die WshNamed-Auflistung aufgenommen wird, muss es auf der Befehlszeile verwendet worden sein. Wenn das Argument keinen Wert besitzt (wie z. B. ein einfaches Argument oder eine leere Zeichenfolge), gibt die Item-Eigenschaft eine leere Zeichenfolge zurück. Wenn ein nicht vorhandenes, benanntes Argument von der Item-Eigenschaft angefordert wird, tritt ein Fehler auf. Verwenden Sie die Exists-Methode, um zu prüfen, ob ein Argument vorhanden ist.

Beispiel 1

Im folgenden Beispiel werden zur Ausführung eines Skripts zwei benannte Argumente zur Verfügung gestellt. Innerhalb des Skripts sorgt ein bestimmter Code für die Ausgabe der benannten Argumente. Die Item-Eigenschaft dient als Index für die Auflistung mit den benannten Argumenten.

Die folgende Zeile wird auf der Eingabeaufforderung eingegeben, um das Skript auszuführen.

myScript.vbs /c:arg1 /d:arg2

Der folgende Code wird innerhalb des Skripts ausgeführt.

WScript.Echo WScript.Arguments.Named.Item("c")
WScript.Echo WScript.Arguments.Named.Item("d")

Sie erhalten folgende Ausgabe.

arg1
arg2

Siehe auch

WshNamed-Objekt | WshUnnamed-Objekt | Count-Methode | Item-Eigenschaft | Exists-Methode


Item-Eigenschaft (WshUnnamed)

Gibt ein Element unter Verwendung eines nullbasierten Indexes zurück.

Object.Item(key)

Parameter

Object
WshUnnamed Objekt.
key
Entweder einer Auflistung oder einem WshUnnamed-Objekt zugeordnet.

Hinweise

Die Item-Eigenschaft gibt eine Zeichenfolge zurück. Bei Auflistungen gibt sie ein Element auf Basis des angegebenen Schlüssels zurück.

Bei einem unbenannten Objekt sind die Elemente nicht benannt, daher ist es nicht möglich, den Namen des WshUnnamed-Arguments zu übergeben.

Die Elemente des WshUnnamed-Arguments sind in der Reihenfolge gespeichert, in der sie auf der Befehlszeile eingefügt wurden.

Bei der Eingabe des WshUnnamed-Arguments auf der Befehlszeile können Sie in Zeichenfolgenargumenten Leerzeichen eingeben, wenn Sie die Zeichenfolge in Anführungszeichen einschließen.

Die Anführungszeichen werden in der WshUnnamed-Auflistung entfernt.

Beispiel

Das folgende Beispiel demonstriert, wie die Item-Eigenschaft verwendet werden kann, um Elemente aus der WshUnnamed-Auflistung zurückzugeben. Im folgenden Beispiel werden zur Ausführung eines Skripts zwei unbenannte Argumente zur Verfügung gestellt. Innerhalb des Skripts sorgt ein bestimmter Code für die Ausgabe der unbenannten Argumente. Die Item-Eigenschaft dient als Index für die Auflistung mit den unbenannten Argumenten.

Die folgende Zeile wird auf der Eingabeaufforderung eingegeben, um das Skript auszuführen.

myScript.vbs arg1 arg2

Wenn der folgende Code im Skript ausgeführt wird:

WScript.Echo WScript.Arguments.Unnamed.Item(0)
WScript.Echo WScript.Arguments.Unnamed.Item(1)

Sie erhalten folgende Ausgabe:

arg1
arg2

Siehe auch

Arguments-Eigenschaft | WshUnnamed-Objekt | WshUnnamed-Objekt | Count-Methode | Item-Eigenschaft (WshNamed) | Exists-Methode


length-Eigenschaft (WshArguments-Objekt)

Gibt die Anzahl von Befehlszeilenparametern zurück, die zu einem Skript gehören (die Anzahl von Elementen in der Auflistung eines Arguments).

object.length

Argumente

object
WshArguments-Objekt.

Hinweise

Bei der length-Eigenschaft handelt es sich um eine schreibgeschützte Ganzzahl, die Sie in Skripts nutzen, wenn Sie diese in JScript schreiben. Sie entspricht der Count-Methode von VBScript.

WshArguments-Objekt | Arguments-Eigenschaft | Count-Methode


length-Eigenschaft (WshEnvironment-Objekt)

Gibt die Anzahl von Windows-Umgebungsvariablen auf dem lokalen Computersystem zurück (die Anzahl von Elementen in einer Environment-Auflistung).

object.length

Argumente

object
WshEnvironment-Objekt.

Hinweise

Bei der length-Eigenschaft handelt es sich um eine schreibgeschützte Ganzzahl, die Sie in Skripts nutzen, wenn Sie diese in JScript schreiben. Sie entspricht der Count-Methode von VBScript.

WshEnvironment-Objekt | Count-Methode


length-Eigenschaft (WshSpecialFolders-Objekt)

Gibt die Anzahl von speziellen Windows-Ordnern auf dem lokalen Computersystem zurück (die Anzahl von Elementen in einer SpecialFolders-Auflistung).

object.length

Argumente

object
WshSpecialFolders-Objekt.

Hinweise

Bei der length-Eigenschaft handelt es sich um eine schreibgeschützte Ganzzahl, die Sie in Skripts nutzen, wenn Sie diese in JScript schreiben. Sie entspricht der Count-Methode von VBScript.

WshSpecialFolders-Objekt | Count-Methode


Line-Eigenschaft (WScript)

Gibt die aktuelle Zeilennummer in einem Eingabestrom zurück.

object.strStream.Line

Argumente

object
WScript-Objekt.
strStream
StdIn-Eigenschaft.

Hinweise

Bei der Line-Eigenschaft handelt es sich um eine schreibgeschützte Ganzzahl.

Nach dem ersten Öffnen eines Stroms entspricht Line anfänglich 1.

Die Eigenschaften und Methoden StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, tritt ein Fehler auf.

Beispiel

Der folgende Code demonstriert die Verwendung der Line-Eigenschaft.

[VBScript]
Dim StdIn, StdOut
Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut

Do While Not StdIn.AtEndOfStream
     str = StdIn.ReadLine
     StdOut.WriteLine "Zeile " & (StdIn.Line - 1) & ": " & str
Loop
[JScript]
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;

while (!stdin.AtEndOfStream)
{
     var str = stdin.ReadLine();
     stdout.WriteLine("Zeile " + (stdin.Line - 1) + ": " + str);
}

Fehlermeldungen | StdIn-Eigenschaft


Line-Eigenschaft (WshRemoteError)

Identifiziert die Zeile in einem Skript, die einen Fehler enthält.

Object.Line

Argumente

Object
WshRemoteError-Objekt.

Hinweise

Die Line-Eigenschaft gibt eine Ganzzahl vom Typ unsigned long zurück.

Beachten Sie, dass einige Fehler nicht auf einer bestimmten Zeile auftreten. Bei dem Fehler Expected End If ist z. B. keine Zeile vorhanden (eine Codezeile fehlt). In einem solchen Fall gibt die Line-Eigenschaft null (0) zurück.

Beispiel

Der folgende JScript-Code demonstriert, wie das WshRemoteError-Objekt die Zeile mit dem Fehler anzeigt.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

WshRemote-Objekt | WshRemoteError-Objekt | Character-Eigenschaft | Description-Eigenschaft | Line-Eigenschaft | SourceText-Eigenschaft | Number-Eigenschaft | Source-Eigenschaft


Name-Eigenschaft (WScript-Objekt)

Gibt den Namen des WScript-Objekts zurück (die ausführbare Hostdatei).

object.Name

Argumente

object
WScript-Objekt.

Hinweise

Bei der Name-Eigenschaft handelt es sich um eine schreibgeschützte Zeichenfolge.

Beispiel

Der folgende JScript-Code zeigt die Verwendung der Name-Eigenschaft.

WScript.Echo (WScript.Name);

WScript-Objekt


Named-Eigenschaft

Gibt das WshNamed-Objekt zurück (eine Auflistung von benannten Argumenten).

Object.Named

Parameter

Object
WshArguments Objekt.

Hinweise

Die Named-Eigenschaft gibt die WshNamed-Auflistung zurück, bei der es sich um die Auflistung mit benannten Argumenten handelt. Verwenden Sie den Namen des Arguments, um zu prüfen, ob das Argument eingefügt wurde und um auf dessen Wert zuzugreifen.

Beispiel

Der folgende Code zeigt die Anzahl der benannten und unbenannten Befehlszeilenargumente an.

<package>
<job id="JS">
<script language="JScript">

var argsNamed = WScript.Arguments.Named;
var argsUnnamed = WScript.Arguments.Unnamed;

WScript.Echo("Es gibt " + argsNamed.length + " benannte Argumente.");
WScript.Echo("Es gibt " + argsUnnamed.length + " unbenannte Argumente.");

</script>
</job>

<job id="VBS">
<script language="VBScript">

Dim argsNamed, argsUnnamed
Set argsNamed = WScript.Arguments.Named
Set argsUnnamed = WScript.Arguments.Unnamed

WScript.Echo "Es gibt " & argsNamed.Count & " benannte Argumente."
WScript.Echo "Es gibt " & argsUnnamed.Count & " unbenannte Argumente."

</script>
</job>
</package>

WshArguments-Objekt | WshNamed-Objekt | Unnamed-Eigenschaft


Number-Eigenschaft (Windows Script Host)

Windows Script Host

Number-Eigenschaft

Gibt die Fehlernummer zurück, die einen Skriptfehler repräsentiert.

Object.Number

Argumente

Object
WshRemoteError-Objekt.

Hinweise

Die Number-Eigenschaft gibt eine Ganzzahl vom Typ unsigned long zurück.

Beispiel

Der folgende JScript-Code demonstriert, wie das WshRemoteError-Objekt die Fehlernummer anzeigt.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler " & theError.Number & " - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler " + theError.Number + " - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

WshRemote-Objekt | WshRemoteError-Objekt | Description-Eigenschaft | Line-Eigenschaft | Character-Eigenschaft| SourceText-Eigenschaft| Source-Eigenschaft


Path-Eigenschaft (Windows Script Host)

Windows Script Host

Path-Eigenschaft

Gibt den Namen des Verzeichnisses zurück, in dem die ausführbare Hostdatei (CScript.exe oder WScript.exe) enthalten ist.

object.Path

Argumente

object
WScript-Objekt.

Hinweise

Bei der Path-Eigenschaft handelt es sich um eine schreibgeschützte Zeichenfolge.

Beispiel

Der folgende VBScript-Code gibt das Verzeichnis aus, in dem sich die ausführbare Datei befindet.

WScript.Echo (WScript.Path);

FullName-Eigenschaft | WScript-Objekt


ProcessID-Eigenschaft

Die Prozess-ID (PID) eines Prozesses, der mit dem WshScriptExec-Objekt gestartet wurde.

Object.ProcessID

Parameter

Object
WshScriptExec Objekt.

Hinweise

Sie können die ProcessID-Eigenschaft verwenden, um eine Anwendung zu aktivieren (als ein Argument für die AppActivate-Methode).

Beispiel

Der folgende Code verwendet die Eigenschaft ProcessID zur Aktivierung der Anwendungen Rechner und Editor.

[VBScript]
Sub delayedSendKeys(str)
     WScript.Sleep 100
     WshShell.SendKeys str
End Sub

Dim WshShell, oCalc, oNotepad
Set WshShell = CreateObject("WScript.Shell")
Set oCalc = WshShell.Exec("calc")
Set oNotepad = WshShell.Exec("notepad")
WScript.Sleep 500

WshShell.AppActivate oCalc.ProcessID
delayedSendKeys "1{+}1~"
delayedSendKeys "^C"
delayedSendKeys "%{F4}"

WshShell.AppActivate oNotepad.ProcessID
delayedSendKeys "1 {+} 1 = ^V"
[JScript]
function delayedSendKeys(str)
{
     WScript.Sleep(100);
     WshShell.SendKeys(str);
}

var WshShell = new ActiveXObject("WScript.Shell");
var oCalc = WshShell.Exec("calc");
var oNotepad = WshShell.Exec("notepad");
WScript.Sleep(500);

WshShell.AppActivate(oCalc.ProcessID);
delayedSendKeys("1{+}1~");
delayedSendKeys("^C");
delayedSendKeys("%{F4}");

WshShell.AppActivate(oNotepad.ProcessID);
delayedSendKeys("1 {+} 1 = ^V");

WshScriptExec-Objekt | AppActivate-Methode


RelativePath-Eigenschaft

Ordnet einer Verknüpfung einen relativen Pfad zu oder identifiziert den relativen Pfad einer Verknüpfung.

object.RelativePath

Argumente

object
WshShortcut-Objekt.

Hinweise

String.

Beispiel

Der folgende Code legt den relativen Pfad einer Verknüpfung fest.

[VBScript]
Dim WshShell, WshShortcut
Set WshShell = WScript.CreateObject ("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("MyScript.lnk")
WshShortcut.RelativePath = "C:\Scripts\"
[JScript]
var WshShell = WScript.CreateObject ("WScript.Shell");
var WshShortcut = WshShell.CreateShortcut("MyScript.lnk");
WshShortcut.RelativePath = "C:\\Scripts\\";

WshShortcut-Objekt


ScriptFullName-Eigenschaft

Gibt den vollständigen Pfad des aktuell ausgeführten Skripts zurück.

object.ScriptFullName

Argumente

object
WScript-Objekt.

Hinweise

Bei der ScriptFullName-Eigenschaft handelt es sich um eine schreibgeschützte Zeichenfolge.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der ScriptFullName-Eigenschaft.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | ScriptName-Eigenschaft | WScript-Objekt


ScriptName-Eigenschaft

Gibt den Dateinamen des aktuell ausgeführten Skripts zurück.

object.ScriptName

Argumente

object
WScript-Objekt.

Hinweise

Bei der ScriptName-Eigenschaft handelt es sich um eine schreibgeschützte Zeichenfolge.

Beispiel

Der folgende VBScript-Code gibt den Namen des auszuführenden Skripts aus.

WScript.Echo WScript.ScriptName

ScriptFullName-Eigenschaft | WScript-Objekt


Source-Eigenschaft (Windows Script Host)

Windows Script Host

Source-Eigenschaft

Identifiziert das COM-Objekt, das verantwortlich für den Skriptfehler ist.

Object.Source

Argumente

Object
WshRemoteError-Objekt.

Hinweise

Die Source-Eigenschaft gibt eine Zeichenfolge zurück.

Beispiel

Der folgende JScript-Code demonstriert, wie das WshRemoteError-Objekt das COM-Objekt anzeigt, das den Skriptfehler verursacht hat.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description & vbCrLf & "Quelle: " & theError.Source
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler - Zeile " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description + "\nQuelle: " + theError.Source);
    WScript.Quit(-1);
}

Siehe auch

WshRemote-Objekt | WshRemoteError-Objekt | Description-Eigenschaft | Line-Eigenschaft | Character-Eigenschaft| SourceText-Eigenschaft| Number-Eigenschaft


SourceText-Eigenschaft

Enthält die Quellcodezeile, die einen Fehler verursachte.

Object.SourceText

Argumente

Object
WshRemoteError-Objekt.

Hinweise

Die SourceText-Eigenschaft gibt eine Zeichenfolge zurück.

Es ist nicht immer möglich, den Quelltext abzurufen. In diesem Fall gibt die SourceText-Eigenschaft eine leere Zeichenfolge zurück.

Beispiel

Der folgende JScript-Code demonstriert, wie das WshRemoteError-Objekt die Quellcodezeile anzeigt, die den Fehler verursachte.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description & vbCrLf & "Quelltext: " & theError.SourceText
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler - Zeile: " + theError.Line + ", Zeichen: " + theError.Cha racter + "\nBeschreibung: " + theError.Description + "\nQuelltext: "_+ theError.SourceText);
    WScript.Quit(-1);
}

Siehe auch

WshRemote-Objekt | WshRemoteError-Objekt | Description-Eigenschaft | Line-Eigenschaft | Character-Eigenschaft| Number-Eigenschaft| Source-Eigenschaft


SpecialFolders-Eigenschaft

Gibt das SpecialFolders-Objekt zurück (eine Auflistung von speziellen Ordnern).

object.SpecialFolders(objWshSpecialFolders)

Argumente

object
WshShell-Objekt.
objWshSpecialFolders
Der Name des speziellen Ordners.

Hinweise

Bei dem WshSpecialFolders-Objekt handelt es sich um eine Auflistung. Es enthält die gesamte Gruppe der speziellen Windows-Ordner, dazu gehören die Ordner Desktop, Startmenü und Persönliche Dokumente. Der Name des speziellen Ordners dient als Index, mit dem aus der Auflistung der gewünschte spezielle Ordner abgerufen werden kann. Die SpecialFolders-Eigenschaft gibt eine leere Zeichenfolge zurück, wenn der angeforderte Ordner (strFolderName) nicht zur Verfügung steht. Windows 95 verfügt beispielsweise über keinen Ordner namens AllUsersDesktop. Wenn für strFolderName AllUsersDesktop angegeben wird, gibt die Eigenschaft daher eine leere Zeichenfolge zurück.

Folgende spezielle Ordner stehen zur Verfügung:

  • AllUsersDesktop
  • AllUsersStartMenu
  • AllUsersPrograms
  • AllUsersStartup
  • Desktop
  • Favoriten
  • Schriftarten
  • Eigene Dateien
  • NetHood
  • PrintHood
  • Programme
  • Recent
  • SendTo
  • StartMenu
  • Startup
  • Vorlagen

Beispiel

Das folgende Beispiel demonstriert die Verwendung der SpecialFolders-Eigenschaft:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | WshSpecialFolders-Objekt | WshShell-Objekt


Status-Eigenschaft (WshRemote)

Gibt den aktuellen Status des Remoteskripts zurück.

Object.Status

Argumente

Object
WshRemote-Objekt.

Hinweise

Die Status-Eigenschaft gibt einen schreibgeschützten Wert vom Typ Aufzählung zurück.

Werte

Die Status-Eigenschaft gibt einen von drei möglichen Werten zurück.

Rückgabewert | Numerischer Wert | Beschreibung
NoTask | 0 | Das Remoteskriptobjekt wurde erstellt, aber noch nicht ausgeführt.
Running | 1 | Das Remoteskriptobjekt wird aktuell ausgeführt.
Finished | 2 | Die Ausführung des Remoteskriptobjekts wurde beendet.

Beispiel

Der folgende JScript-Code demonstriert, wie Sie die Status-Eigenschaft in einem Textblock verwenden, der prüft, ob ein Remoteskript normal beendet wurde.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

Siehe auch

WshController-Objekt | WshRemote-Objekt | Error-Eigenschaft | Execute-Methode | Terminate-Methode | Start-Ereignis | End-Ereignis | Error-Ereignis


Status-Eigenschaft (WshScriptExec)

Liefert Statusinformationen über ein Skript, das mit der Exec()-Methode ausgeführt wird.

Object.Status

Argumente

Object
WshScriptExec-Objekt.

Hinweise

Die Status-Eigenschaft wird bei der asynchronen Ausführung eines Programms verwendet.

Rückgabewerte

Die Status-Eigenschaft gibt einen Wert vom Typ Aufzählung zurück.

WshRunning ( = 0)
Der Auftrag wird immer noch ausgeführt.
WshFinished ( = 1)
Der Auftrag wurde abgeschlossen.

Beispiel

Der folgende Code führt calc.exe aus und gibt den endgültigen Status auf dem Bildschirm aus.

[VBScript]
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("calc")

Do While oExec.Status = 0
     WScript.Sleep 100
Loop

WScript.Echo oExec.Status
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("calc");

while (oExec.Status == 0)
{
     WScript.Sleep(100);
}

WScript.Echo(oExec.Status);

Exec-Methode | WshScriptExec-Objekt


StdErr-Eigenschaft (WScript)

Zeigt den schreibgeschützten Fehlerausgabestrom für das aktuelle Skript an.

object.StdErr

Argumente

object
WScript-Objekt.

Hinweise

Die Eigenschaft StdErr gibt ein Objekt des Standardfehler-Streams zurück. Nur wenn Sie CScript.exe verwenden, können Sie auf die Ströme StdIn, StdOut und StdErr zugreifen. Der Versuch unter Verwendung von WScript.exe auf diese Ströme zuzugreifen, führt zu einem Fehler.

Fehlermeldungen | WScript-Objekt


StdErr-Eigenschaft (WshScriptExec)

Bietet Zugriff auf den Ausgabestrom stderr des Exec-Objekts.

Object.StdErr

Argumente

Object
WshScriptExec-Objekt.

Hinweise

Verwenden Sie die StdErr-Eigenschaft, um Daten abzurufen, die durch einen mit Exec gestarteten Prozess an den Strom stderr gesendet wurden.

Beispiel

Der folgende Code demonstriert das StdErr-Objekt, indem die Ausführung eines
nicht vorhandenen Befehls versucht und die Ergebnisse angezeigt werden.

[VBScript]
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("%comspec% /c dire")

Function ReadAllFromAny(oExec)

     If Not oExec.StdOut.AtEndOfStream Then
          ReadAllFromAny = oExec.StdOut.ReadAll
          Exit Function
     End If

     If Not oExec.StdErr.AtEndOfStream Then
          ReadAllFromAny = "STDERR: " + oExec.StdErr.ReadAll
          Exit Function
     End If

     ReadAllFromAny = -1
End Function

Dim allInput, tryCount

allInput = ""
tryCount = 0

Do While True

     Dim input
     input = ReadAllFromAny(oExec)

     If -1 = input Then
          If tryCount > 10 And oExec.Status = 1 Then
               Exit Do
          End If
          tryCount = tryCount + 1
          WScript.Sleep 100
     Else
          allInput = allInput & input
          tryCount = 0
     End If
Loop

WScript.Echo allInput
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec    = WshShell.Exec("%comspec% /c dire");

function ReadAllFromAny(oExec)
{
     if (!oExec.StdOut.AtEndOfStream)
          return oExec.StdOut.ReadAll();

     if (!oExec.StdErr.AtEndOfStream)
          return "STDERR: " + oExec.StdErr.ReadAll();

     return -1;
}

var allInput = "";
var tryCount = 0;

while (true)
{
     var input = ReadAllFromAny(oExec);
     if (-1 == input)
     {
          if (tryCount++ > 10 && oExec.Status == 1)
               break;
          WScript.Sleep(100);
     }
     else
     {
          allInput += input;
          tryCount = 0;
     }
}

WScript.Echo(allInput);

Siehe auch

WshScriptExec-Objekt | StdIn-Eigenschaft | StdOut-Eigenschaft


StdIn-Eigenschaft (WScript)

Zeigt den schreibgeschützten Eingabestrom für das aktuelle Skript an.

object.StdIn

Argumente

object
WScript-Objekt.

Hinweise

Die Eigenschaft StdIn gibt ein Objekt des Standardeingabe-Streams zurück. Nur wenn Sie CScript.exe verwenden, können Sie auf die Ströme StdIn, StdOut und StdErr zugreifen. Der Versuch unter Verwendung von WScript.exe auf diese Ströme zuzugreifen, führt zu einem Fehler.

Siehe auch

Fehlermeldungen | WScript-Objekt | Read-Methode | ReadAll-Methode | ReadLine-Methode | Skip-Methode | SkipLine-Methode | AtEndOfLine-Eigenschaft | Close-Methode | Column-Eigenschaft | Line-Eigenschaft (WScript)


StdIn-Eigenschaft (WshScriptExec)

Zeigt den Eingabestrom stdin des Exec-Objekts an.

Object.StdIn

Argumente

Object
WshScriptExec-Objekt.

Hinweise

Verwenden Sie die StdIn-Eigenschaft, um Daten an einen mit Exec gestarteten Prozess zu übergeben.

Beispiel

Der folgende Code startet eine Stapelverarbeitungsdatei und wartet auf die Eingabebestätigung des Benutzers. Nach Eingabe der benötigten Daten mittels des StdIn-Streams kann die Ausführung der Stapelverarbeitungsdatei abgeschlossen werden.

[VBScript]
Dim WshShell, oExec, input
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("test.bat")
input = ""

Do While True

     If Not oExec.StdOut.AtEndOfStream Then
          input = input & oExec.StdOut.Read(1)
          If InStr(input, "Drücken Sie eine beliebige Taste") <> 0 Then Exit Do
     End If
     WScript.Sleep 100
Loop

oExec.StdIn.Write VbCrLf

Do While oExec.Status <> 1
     WScript.Sleep 100
Loop
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec    = WshShell.Exec("test.bat");
var input = "";

while (true)
{
     if (!oExec.StdOut.AtEndOfStream)
     {
          input += oExec.StdOut.Read(1);
          if (input.indexOf("Drücken Sie eine beliebige Taste ") != -1)
               break;
     }
     WScript.Sleep(100);
}

oExec.StdIn.Write("\n");

while (oExec.Status != 1)
     WScript.Sleep(100);

Siehe auch

WshScriptExec-Objekt | StdIn-Eigenschaft | StdErr-Eigenschaft


StdOut-Eigenschaft (WScript)

Zeigt den schreibgeschützten Ausgabestrom für das aktuelle Skript an.

object.StdOut

Argumente

object
WScript-Objekt.

Hinweise

Die Eigenschaft StdOut gibt ein Objekt des Standardausgabe-Streams zurück. Nur wenn Sie CScript.exe verwenden, können Sie auf die Ströme StdIn, StdOut und StdErr zugreifen. Der Versuch unter Verwendung von WScript.exe auf diese Ströme zuzugreifen, führt zu einem Fehler.

Siehe auch

Fehlermeldungen | WScript-Objekt | Write-Methode | WriteBlankLines-Methode | WriteLine-Methode | Close-Methode | Column-Eigenschaft | Line-Eigenschaft (WScript)


StdOut-Eigenschaft (WshScriptExec)

Bietet Zugriff auf den schreibgeschützten Ausgabestrom stdout des Exec-Objekts.

Object.StdOut

Argumente

Object
WshScriptExec-Objekt.

Hinweise

Die StdOut-Eigenschaft enthält eine schreibgeschützte Kopie aller Informationen, die das Skript möglicherweise an die Standardausgabe gesendet hat.

Beispiel

Der folgende Code startet eine Stapelverarbeitungsdatei und wartet auf die Eingabebestätigung des Benutzers. Nach Eingabe der benötigten Daten mittels des StdIn-Streams kann die Ausführung der Stapelverarbeitungsdatei abgeschlossen werden.

[VBScript]
Dim WshShell, oExec, input
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("test.bat")
input = ""

Do While True

     If Not oExec.StdOut.AtEndOfStream Then
          input = input & oExec.StdOut.Read(1)
          If InStr(input, "Drücken Sie eine beliebige Taste") <> 0 Then Exit Do
     End If
     WScript.Sleep 100
Loop

oExec.StdIn.Write VbCrLf

Do While oExec.Status <> 1
     WScript.Sleep 100
Loop
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec    = WshShell.Exec("test.bat");
var input = "";

while (true)
{
     if (!oExec.StdOut.AtEndOfStream)
     {
          input += oExec.StdOut.Read(1);
          if (input.indexOf("Drücken Sie eine beliebige Taste ") != -1)
               break;
     }
     WScript.Sleep(100);
}

oExec.StdIn.Write("\n");

while (oExec.Status != 1)
     WScript.Sleep(100);

Siehe auch

WshScriptExec-Objekt | StdIn-Eigenschaft | StdErr-Eigenschaft


TargetPath-Eigenschaft

Der Pfad zur ausführbaren Datei der Verknüpfung.

object.TargetPath

Argumente

object
WshShortcut- oder WshUrlShortcut-Objekt.

Hinweise

String.

Diese Eigenschaft wird nur für den Zielpfad einer Verknüpfung verwendet. Etwaige Argumente für die Verknüpfung müssen in die Eigenschaft des Arguments gesetzt werden.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der TargetPath-Eigenschaft:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | WshShortcut-Objekt | WshUrlShortcut-Objekt


Unnamed-Eigenschaft

Gibt das WshUnnamed-Objekt zurück (eine Auflistung von unbenannten Argumenten).

Object.Unnamed

Parameter

Object
WshArguments-Objekt.

Hinweise

Die Unnamed-Eigenschaft gibt die WshUnnamed-Auflistung zurück, bei der es sich um die Auflistung mit unbenannten Argumenten handelt. Die Argumente werden in der Reihenfolge präsentiert, in der sie auf der Befehlszeile eingegeben wurden. Das erste unbenannte Argument befindet sich auf Index 0.

Beispiel

Der folgende Code zeigt die Anzahl der benannten und unbenannten Befehlszeilenargumente an.

<package>
<job id="JS">
<script language="JScript">

var argsNamed = WScript.Arguments.Named;
var argsUnnamed = WScript.Arguments.Unnamed;

WScript.Echo("Es gibt " + argsNamed.length + " benannte Argumente.");
WScript.Echo("Es gibt " + argsUnnamed.length + " unbenannte Argumente.");

</script>
</job>

<job id="VBS">
<script language="VBScript">

Dim argsNamed, argsUnnamed
Set argsNamed = WScript.Arguments.Named
Set argsUnnamed = WScript.Arguments.Unnamed

WScript.Echo "Es gibt " & argsNamed.Count & " benannte Argumente."
WScript.Echo "Es gibt " & argsUnnamed.Count & " unbenannte Argumente."

</script>
</job>
</package>

WshArguments-Objekt | WshUnnamed-Objekt | Named-Eigenschaft


UserDomain-Eigenschaft

Gibt einen Benutzerdomänennamen zurück.

object.UserDomain

Argumente

object
WshNetwork-Objekt.

Hinweise

Zeichenfolge.

Die UserDomain-Eigenschaft funktioniert unter Windows 98 und Windows ME erst dann, wenn die Umgebungsvariable USERDOMAIN festgelegt ist. Standardmäßig wird diese Variable nicht festgelegt.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der UserDomain-Eigenschaft:

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         WScript.Echo ""Domäne = " & WshNetwork.UserDomain
         WScript.Echo "Computername = " & WshNetwork.ComputerName
         WScript.Echo "Benutzername = " & WshNetwork.UserName
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         WScript.Echo("Domäne = " + WshNetwork.UserDomain);
         WScript.Echo("Computername = " + WshNetwork.ComputerName);
         WScript.Echo("Benutzername = " + WshNetwork.UserName);
         }
      </script>
   </job>
</package>

Ausführen von Skripts | WshNetwork-Objekt


UserName-Eigenschaft

Gibt den Namen eines Benutzers zurück.

object.Version

Argumente

object
WshNetwork-Objekt.

Hinweise

String.

Wenn Sie diese Eigenschaft in einem Anmeldeskript verwenden, finden Sie im Abschnitt Erstellen eines automatisierten Anmeldeskripts weitere Informationen.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der UserName-Eigenschaft:

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         WScript.Echo "Domäne = " & WshNetwork.UserDomain
         WScript.Echo "Computername = " & WshNetwork.ComputerName
         WScript.Echo "Benutzername = " & WshNetwork.UserName
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         WScript.Echo("Domäne = " + WshNetwork.UserDomain);
         WScript.Echo("Computername = " + WshNetwork.ComputerName);
         WScript.Echo("Benutzername = " + WshNetwork.UserName);
         }
      </script>
   </job>
</package>

Ausführen von Skripts | WshNetwork-Objekt


Version-Eigenschaft

Gibt die Version von Windows Script Host zurück.

object.Version

Argumente

object
WScript-Objekt.

Hinweise

String.

Beispiel

Der folgende VBScript-Code gibt die aktuelle Version von Windows Script Host aus.

WScript.Echo WScript.Version

WScript-Objekt


WindowStyle-Eigenschaft

Ordnet einer Verknüpfung einen Fensterstil zu oder identifiziert den Fensterstil, den eine Verknüpfung nutzt.

object.WindowStyle = intWindowStyle

Argumente

object
WshShortcut-Objekt.
intWindowStyle
Legt den Fensterstil für das auszuführende Programm fest.

Hinweise

Die WindowStyle-Eigenschaft gibt eine Ganzzahl zurück.

Die folgende Tabelle listet die möglichen Einstellungen für intWindowStyle auf.

intWindowStyle | Beschreibung
1 | Aktiviert ein Fenster und zeigt es an. Wenn das Fenster minimiert oder maximiert wird, stellt das System dessen ursprüngliche Größe und Position wieder her.
3 | Aktiviert das Fenster und zeigt es als maximiertes Fenster an.
7 | Minimiert das Fenster und aktiviert das nächste Fenster auf der obersten Ebene.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der WindowStyle-Eigenschaft:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Ausführen von Skripts | WshShortcut-Objekt


WorkingDirectory-Eigenschaft

Ordnet einer Verknüpfung ein Arbeitsverzeichnis zu oder identifiziert das Arbeitsverzeichnis, das eine Verknüpfung verwendet.

object.WorkingDirectory = strWorkingDirectory

Argumente

object
WshShortcut-Objekt.
strWorkingDirectory
String. Verzeichnis, in dem die Verknüpfung beginnt.

Hinweise

String.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der WorkingDirectory-Eigenschaft:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "Ctrl+Alt+e"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "Ctrl+Alt+e";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Ausführen von Skripts


Methoden

In diesem Abschnitt

AddPrinterConnection-Methode
Fügt eine Druckerverbindung im DOS-Stil zum Computer hinzu.
AddWindowsPrinterConnection-Methode
Fügt eine Druckerverbindung im Windows-Stil zum Computer hinzu.
AppActivate-Methode
Aktiviert ein Anwendungsfenster.
Close-Methode
Schließt einen geöffneten Datenstrom.
ConnectObject-Methode
Verbindet die Ereignisquellen eines Objekts mit Funktionen mit einem bestimmten Präfix.
Count-Methode
Gibt die Anzahl der Schalter im WshNamed- oder WshUnnamed-Objekt zurück.
CreateObject-Methode
Erstellt ein durch den Parameter strProgID angegebenes Objekt.
CreateScript-Methode
Erstellt ein WshRemote-Objekt (ein Objekt, das eine Instanz eines Skripts darstellt, das in einem Remoteprozess ausgeführt wird).
CreateShortcut-Methode
Erstellt einen Objektverweis auf eine Verknüpfung oder URL-Verknüpfung.
DisconnectObject-Methode
Trennt die Verbindung eines zuvor verbundenen Objekts mit Windows Script Host.
Echo-Methode
Sendet eine Ausgabe an ein Dialogfeld oder an die Konsole.
EnumNetworkDrives-Methode
Gibt die aktuellen Zuordnungen der Netzlaufwerke zurück.
EnumPrinterConnections-Methode
Gibt die aktuellen Zuordnungen der Netzwerkdrucker zurück.
Exec-Methode
Führt eine Anwendung in einer untergeordneten Befehlsshell aus und bietet Zugriff auf die Kanäle stdin, stdout und stderr sowie die Freigabe von Umgebungsvariablen.
Execute-Methode
Startet die Ausführung eines Remoteskriptobjekts.
Exists-Methode
Gibt an, ob ein bestimmter Schlüsselwert im WshNamed-Objekt vorhanden ist.
ExpandEnvironmentStrings-Methode
Erweitert die angeforderte Umgebungsvariable aus dem derzeit ausgeführten Prozess und gibt die Ergebniszeichenfolge zurück.
GetObject-Methode
Ruft ein Automation-Objekt aus einer Datei oder ein durch den Parameter strProgID angegebenes Objekt ab.
getResource-Methode
Gibt den Wert einer Ressource zurück, die mit dem resource-Element definiert wurde.
LogEvent-Methode
Protokolliert ein Ereignis im Windows NT-Ereignisprotokoll oder der Datei WSH.log.
MapNetworkDrive-Methode
Ordnet den durch strRemoteName angegebenen Freigabepunkt dem lokalen Ressourcennamen strLocalName zu.
Popup-Methode
Zeigt ein Popupmeldungsfenster an, das die in strText enthaltene Meldung enthält.
Quit-Methode
Beendet die Ausführung mit einem angegebenen Fehlercode.
Read-Methode
Liest eine angegebene Anzahl von Zeichen aus einem Eingabedatenstrom und gibt die resultierende Zeichenfolge zurück.
ReadAll-Methode
Liest einen kompletten Eingabedatenstrom und gibt die resultierende Zeichenfolge zurück.
ReadLine-Methode
Liest eine komplette Zeile (bis zum Zeilenumbruchzeichen, aber nicht einschließlich des Zeichens) aus einem Eingabedatenstrom und gibt die resultierende Zeichenfolge zurück.
RegDelete-Methode
Löscht den durch strName benannten Schlüssel oder Wert aus der Registrierung.
RegRead-Methode
Gibt den durch strName benannten Registrierungsschlüssel oder -wert zurück.
RegWrite-Methode
Legt den durch strName benannten Registrierungsschlüssel oder -wert fest.
Remove-Methode
Löscht die durch strName angegebene Umgebungsvariable.
RemoveNetworkDrive-Methode
Entfernt die durch strName bezeichnete aktuelle Ressourcenverbindung.
RemovePrinterConnection-Methode
Entfernt die durch strName bezeichnete aktuelle Ressourcenverbindung.
Run-Methode
Erstellt einen neuen Prozess, der strCommand ausführt.
Save-Methode
Speichert eine Verknüpfung am angegebenen Speicherort.
SendKeys-Methode
Sendet einen oder mehrere Tastenanschläge an das aktive Fenster (als seien sie auf der Tastatur eingegeben worden).
SetDefaultPrinter-Methode
Legt den Standarddrucker auf den angegebenen Remotedrucker fest.
ShowUsage-Methode
Zeigt Informationen zur Verwendung von Skripts an.
Skip-Methode
Überspringt eine angegebene Anzahl von Zeichen beim Lesen eines Eingabedatenstroms.
SkipLine-Methode
Überspringt die nächste Zeile beim Lesen eines Eingabedatenstroms.
Sleep-Methode
Setzt den Skriptprozess für die angegebene Anzahl von Millisekunden in einen Zustand der Inaktivität und setzt anschließend die Ausführung fort.
Terminate-Methode (WshScriptExec)
Weist das Skriptmodul an, den durch die Exec-Methode gestarteten Prozess zu beenden.
Write-Methode
Schreibt eine angegebene Zeichenfolge in einen Ausgabedatenstrom.
WriteBlankLines-Methode
Schreibt eine angegebene Anzahl von Zeilenumbruchzeichen in einen Ausgabedatenstrom.
WriteLine-Methode
Schreibt eine angegebene Zeichenfolge und ein Zeilenumbruchzeichen in einen Ausgabedatenstrom.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


AddPrinterConnection-Methode

Fügt eine MS-DOS-basierte Remotedruckerverbindung zum Computersystem hinzu.

object.AddPrinterConnection(strLocalName, strRemoteName[,bUpdateProfile][,strUser][,strPassword])

Argumente

object
WshNetwork-Objekt.
strLocalName
Zeichenfolgenwert, der den lokalen Namen angibt, der dem verbundenen Drucker zugewiesen werden soll.
strRemoteName
Zeichenfolgenwert, der den Namen des Remotedruckers angibt.
bUpdateProfile
Optional. Boolescher Wert, der angibt, ob die Druckerzuordnung im Profil des aktuellen Benutzers gespeichert wird. Wenn bUpdateProfile angegeben wird und den Wert true hat, wird die Zuordnung im Benutzerprofil gespeichert. Der Standardwert ist false.
strUser
Optional. Zeichenfolgenwert, der den Benutzernamen angibt. Wenn Sie einen Remotedrucker mit einem anderen Profil als dem des aktuellen Benutzers zuordnen, können Sie strUser und strPassword angeben.
strPassword
Optional. Zeichenfolgenwert, der das Benutzerkennwort angibt. Wenn Sie einen Remotedrucker mit einem anderen Profil als dem des aktuellen Benutzers zuordnen, können Sie strUser und strPassword angeben.

Hinweise

Die AddPrinterConnection-Methode fügt einen Netzwerkdrucker zu einem MS-DOS-Druckeranschluss wie z. B. LPT1 hinzu. Diese Methode kann nicht verwendet werden, um eine Windows-basierte Remotedruckerverbindung hinzuzufügen. Verwenden Sie die AddWindowsPrinterConnection-Methode, um eine Windows-basierte Remotedruckerverbindung hinzuzufügen.

Beispiel

Im folgenden Code wird die AddPrinterConnection-Methode verwendet, um einen Netzwerkdrucker mit LPT1 zu verbinden.

[VBScript]
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.AddPrinterConnection "LPT1", "\\Server\Print1"
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
WshNetwork.AddPrinterConnection ("LPT1", "\\\\Server\\Print1");

Siehe auch

WshNetwork-Objekt | AddWindowsPrinterConnection-Methode | EnumPrinterConnections-Methode | RemovePrinterConnection-Methode | SetDefaultPrinter-Methode


AddWindowsPrinterConnection-Methode

Fügt eine Windows-basierte Druckerverbindung zum Computersystem hinzu.

Windows NT/2000:
object.AddWindowsPrinterConnection(
   strPrinterPath
)
Windows 9x/Me:
object.AddWindowsPrinterConnection(
   strPrinterPath,
   strDriverName[,strPort]
)

Argumente

object
WshNetwork-Objekt.
strPrinterPath
Zeichenfolgenwert, der den Pfad zur Druckerverbindung angibt.
strDriverName
Zeichenfolgenwert, der den Namen des Treibers angibt (wird unter Windows NT/Windows 2000 ignoriert).
strPort
Optional. Zeichenfolgenwert, der einen Druckeranschluss für die Druckerverbindung angibt (wird unter Windows NT/Windows 2000 ignoriert).

Hinweise

Diese Vorgehensweise entspricht dem Hinzufügen einer Druckerverbindung über die Option Drucker in der Systemsteuerung. Anders als bei der AddPrinterConnection-Methode ermöglicht Ihnen diese Methode die Erstellung einer Druckerverbindung, ohne dass sie zu einem bestimmten Anschluss, beispielsweise LPT1, geleitet werden muss. Wenn die Verbindung fehlschlägt, wird ein Fehler ausgelöst. In Windows 9x/Me muss der Druckertreiber bereits auf dem Computer installiert sein, damit die AddWindowsPrinterConnection-Methode funktionsfähig ist. Wenn der Treiber nicht installiert ist, gibt Windows eine Fehlermeldung zurück.

Beispiel 1

Im folgenden Code wird die AddWindowsPrinterConnection-Methode verwendet, um einen Netzwerkdrucker mit einem Computersystem mit Windows NT/2000 zu verbinden.

[VBScript]
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\printserv\DefaultPrinter"
WshNetwork.AddWindowsPrinterConnection PrinterPath
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
var PrinterPath = "\\\\printserv\\DefaultPrinter";
WshNetwork.AddWindowsPrinterConnection(PrinterPath);

Beispiel 2

Im folgenden Code wird die AddWindowsPrinterConnection-Methode verwendet, um einen Netzwerkdrucker mit einem Computersystem mit Windows 9x/Me zu verbinden.

[VBScript]
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\printserv\DefaultPrinter"
PrinterDriver = "Lexmark Optra S 1650"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
var PrinterPath = "\\\\printserv\\DefaultPrinter";
var PrinterDriver = "Lexmark Optra S 1650";
WshNetwork.AddWindowsPrinterConnection(PrinterPath, PrinterDriver);

Siehe auch

WshNetwork-Objekt | AddPrinterConnection-Methode | EnumPrinterConnections-Methode | RemovePrinterConnection-Methode | SetDefaultPrinter-Methode


AppActivate-Methode

Aktiviert ein Anwendungsfenster.

object.AppActivate title

Argumente

object
WshShell-Objekt.
title
Gibt an, welche Anwendung aktiviert werden soll. Bei diesem Argument kann es sich um eine Zeichenfolge mit dem Titel der Anwendung (wie er in der Titelleiste angezeigt wird) oder mit der Prozess-ID der Anwendung handeln.

Hinweise

Die AppActivate-Methode gibt einen booleschen Wert zurück, der angibt, ob der Prozeduraufruf erfolgreich ist. Durch diese Methode wechselt der Fokus zur angegebenen Anwendung oder zum angegebenen Fenster. Die Größe des Fensters (maximiert oder minimiert) wird jedoch nicht beeinflusst. Der Fokus wechselt vom aktivierten Anwendungsfenster, wenn der Benutzer mit einer Aktion den Fokus ändert (oder das Fenster schließt).

Die zu aktivierende Anwendung wird bestimmt, indem der angegebene Titel mit der Titelzeichenfolge jeder aktuell ausgeführten Anwendung verglichen wird. Wenn keine genaue Übereinstimmung vorhanden ist, wird eine Anwendung aktiviert, deren Titelzeichenfolge mit title beginnt. Falls immer noch keine Anwendung gefunden wird, wird eine Anwendung aktiviert, deren Titelzeichenfolge auf title endet. Falls mehr als eine Instanz der durch title angegebenen Anwendung vorhanden ist, wird nach dem Zufallsprinzip eine Instanz aktiviert.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung einer einzigen WSF-Datei für zwei Aufträge in verschiedenen Skriptsprachen (VBScript und JScript). Die Funktionalität ist bei beiden Aufträgen gleich - jeder Auftrag führt den Windows-Rechner aus und sendet Tastenanschläge an ihn, um eine einfache Berechnung auszuführen.

Im folgenden Beispiel wird der Windows-Rechner gestartet, und es wird mit Hilfe von AppActivate sichergestellt, dass sich der Rechner im Vordergrund befindet.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         WshShell.Run "calc"
         WScript.Sleep 100
         WshShell.AppActivate "Calculator"
         WScript.Sleep 100
         WshShell.SendKeys "1{+}"
         WScript.Sleep 500
         WshShell.SendKeys "2"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 500
         WshShell.SendKeys "*3"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 2500
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         WshShell.Run("calc");
         WScript.Sleep(100);
         WshShell.AppActivate("Calculator");
         WScript.Sleep(100);
         WshShell.SendKeys("1{+}");
         WScript.Sleep(500);
         WshShell.SendKeys("2");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(500);
         WshShell.SendKeys("*3");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(2500);
      </script>
   </job>
</package>

Ausführen von Skripts | WshShell-Objekt | SendKeys-Methode


Close-Methode (Windows Script Host)

Windows Script Host

Close-Methode

Schließt einen Textdatenstrom.

object.Close

Argumente

object
Eines der Textdatenstrom-Objekte StdIn, StdOut oder StdErr.

Hinweise

Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird ein Fehler zurückgegeben. Standarddatenströme müssen nicht geschlossen werden. Sie werden automatisch geschlossen, wenn der Prozess beendet ist. Wenn Sie einen Standarddatenstrom schließen, beachten Sie, dass alle anderen Zeiger auf diesen Standarddatenstrom ungültig werden. Diese Methode wird aus Gründen der Kompatibilität mit dem TextStream-Objekt bereitgestellt.

Siehe auch

StdErr-Eigenschaft | StdIn-Eigenschaft | StdOut-Eigenschaft | Fehlermeldungen


ConnectObject-Methode

Verbindet die Ereignisquellen des Objekts mit Funktionen mit einem bestimmten Präfix.

object.ConnectObject(strObject, strPrefix)

Argumente

object
WScript-Objekt.
strObject
Erforderlich. Zeichenfolgenwert, der den Namen des zu verbindenden Objekts angibt.
strPrefix
Erforderlich. Zeichenfolgenwert, der den Funktionspräfix angibt.

Hinweise

Verbundene Objekte sind hilfreich, wenn Sie die Ereignisse eines Objekts synchronisieren möchten. Die ConnectObject-Methode verbindet nach dem Erstellen des Objekts die nach außen sichtbare Schnittstelle des Objekts mit der Skriptdatei. Ereignisfunktionen sind eine Kombination aus diesem Präfix und dem Ereignisnamen.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Methode ConnectObject zum Herstellen einer Verknüfung mit dem Fehlerereignisses des WshRemote-Objekts.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler " & theError.Number & " - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler " + theError.Number + " - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

WScript-Objekt | DisconnectObject-Methode | CreateObject-Methode | GetObject-Methode


Count-Methode

Gibt die Anzahl der Schalter im WshNamed- oder WshUnnamed-Objekt zurück.

object.Count

Argumente

object
Arguments-Objekt.

Hinweise

Die Methode Count ist vor allem für die Benutzer von VBScript gedacht. Benutzer von JScript sollten stattdessen die Eigenschaft length verwenden.

Beispiel (WshNamed)

Das folgende Beispiel veranschaulicht die Count-Methode unter Verwendung des WshNamed-Objekts. Geben Sie zu Beginn den folgenden Text an der Eingabeaufforderung ein.

myScript.vbs /c:"WSH ist eine wunderbare Sache" /s:"Skripts sind wunderbar"

Fügen Sie als Nächstes den folgenden VBScript-Code hinzu.

For i = 0 to WScript.Arguments.Count-1
    WScript.Echo WScript.Arguments.Named(i)
next i

Im Folgenden ist das Ergebnis aufgeführt.

WSH ist eine wunderbare Sache
Skripts sind wunderbar

Beispiel (WshUnnamed)

Das folgende Beispiel veranschaulicht die Count-Methode unter Verwendung des WshUnnamed-Objekts. Geben Sie zu Beginn den folgenden Text an der Befehlszeile ein.

myscript.vbs "WSH ist eine wunderbare Sache" "Skripts sind wunderbar"

Fügen Sie als Nächstes den folgenden VBScript-Code hinzu.

For i = 0 to WScript.Arguments.Count-1
    WScript.Echo WScript.Arguments.Unnamed(i)
next i

Im Folgenden ist das Ergebnis aufgeführt.

WSH ist eine wunderbare Sache
Skripts sind wunderbar

Siehe auch

Arguments-Eigenschaft | WshNamed-Objekt | WshUnnamed-Objekt | Item-Eigenschaft | Exists-Methode | Length-Eigenschaft


CreateObject-Methode

Erstellt ein COM-Objekt.

object.CreateObject(strProgID[,strPrefix])

Argumente

object
WScript-Objekt.
strProgID
Zeichenfolgenwert, der den programmtechnischen Bezeichner (ProgID) des zu erstellenden Objekts angibt.
strPrefix
Optional. Zeichenfolgenwert, der den Funktionspräfix angibt.

Hinweise

Objekte, die mit der CreateObject-Methode unter Verwendung des strPrefix-Arguments erstellt wurden, sind verbundene Objekte. Sie sind hilfreich, wenn Sie die Ereignisse eines Objekts synchronisieren möchten. Die nach außen sichtbare Schnittstelle des Objekts wird nach dem Erstellen des Objekts mit der Skriptdatei verbunden. Ereignisfunktionen sind eine Kombination aus diesem Präfix und dem Ereignisnamen. Wenn Sie ein Objekt erstellen und das strPrefix-Argument nicht angeben, können Sie dennoch mit Hilfe der ConnectObject-Methode Ereignisse des Objekts synchronisieren. Wenn das Objekt ein Ereignis auslöst, ruft WSH eine Unterroutine auf, bei der strPrefix an den Anfang des Ereignisnamens angehängt wird. Wenn strPrefix beispielsweise MYOBJ lautet und das Objekt ein Ereignis namens OnBegin auslöst, ruft Windows Script Host die Unterroutine MYOBJ_OnBegin auf, die sich im Skript befindet. Die CreateObject-Methode gibt einen Zeiger auf die IDispatch-Schnittstelle des Objekts zurück.

Beispiel

Im folgenden VBScript-Code wird die CreateObject-Methode zur Erstellung eines WshNetwork-Objekts verwendet:

Set WshNetwork = WScript.CreateObject("WScript.Network")

Siehe auch

WScript-Objekt | GetObject-Methode | ConnectObject-Methode | DisconnectObject-Methode


CreateScript-Methode

Erstellt ein WshRemote-Objekt.

object.CreateScript(CommandLine,[MachineName])

Parameter

object
WshController-Objekt.
CommandLine
Erforderlich. Zeichenfolgenwert, der den Pfad und die Schalter des Skripts so angibt, wie sie an der Eingabeaufforderung eingegeben werden würden. Der Pfad zum Skript sollte vom Controllercomputersystem aus gesehen angezeigt werden, nicht vom Computersystem aus, auf dem das Skript ausgeführt werden soll.
MachineName
Optional. Zeichenfolgenwert, der den Namen des Remotecomputersystems angibt (des Computers, auf dem das Remoteskript ausgeführt werden soll). Er wird in der UNC-Namenskonvention angegeben.

Hinweise

Die CreateScript-Methode gibt ein Handle auf eine Instanz eines WshRemote-Objekts zurück. Der Pfadbestandteil des Skriptnamens muss nicht lokal sein - er kann auf ein Skript auf einer Netzwerkfreigabe verweisen. Dies ermöglicht es, an einem Computersystem zu sitzen, ein Skript von einem anderen Computersystem abzurufen und es auf einem dritten Computersystem auszuführen. Wenn kein Computername angegeben wird, wird das Remoteskriptobjekt auf dem Controllercomputersystem ausgeführt (dies ist die Standardeinstellung). Wenn ein Computername angegeben wird, wird das Remoteskriptobjekt auf dem benannten Computersystem ausgeführt. Die CreateScript-Methode stellt eine Verbindung mit dem Remotecomputersystem her und richtet es für die Ausführung des Skripts ein, aber das Skript wird erst dann tatsächlich gestartet, wenn Sie die Execute-Methode des WshRemote-Objekts aufrufen.

Beispiel

Das folgende Beispiel veranschaulicht, wie die CreateScript-Methode des WshController-Objekts zur Erstellung eines WshRemote-Objekts (einer Instanz eines Remoteskripts) verwendet wird.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

WScript.DisconnectObject RemoteScript

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler " & theError.Number & " - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

WScript.DisconnectObject(RemoteScript);

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler " + theError.Number + " - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

CreateObject-Methode | CreateScript-Methode | WshRemote-Objekt | Execute-Methode


CreateShortcut-Methode

Erstellt eine neue Verknüpfung oder öffnet eine vorhandene Verknüpfung.

object.CreateShortcut(strPathname)

Argumente

object
WshShell-Objekt.
strPathname
Zeichenfolgenwert, der den Pfadnamen der zu erstellenden Verknüpfung angibt.

Hinweise

Die CreateShortcut-Methode gibt entweder ein WshShortcut-Objekt oder ein WshURLShortcut-Objekt zurück. Nur durch Aufrufen der CreateShortcut-Methode wird keine Verknüpfung erstellt. Das Verknüpfungsobjekt sowie möglicherweise daran vorgenommene Änderungen werden im Arbeitsspeicher gespeichert, bis sie mit der Save-Methode auf einem Datenträger gespeichert werden. Folgende Schritte sind zur Erstellung einer Verknüpfung erforderlich:

  1. Es muss eine Instanz eines WshShortcut-Objekts erstellt werden.
  2. Deren Eigenschaften müssen initialisiert werden.
  3. Das Objekt muss mit der Save-Methode auf einem Datenträger gespeichert werden.
    Anmerkung Ein häufig auftretendes Problem besteht darin, dass Argumente in der TargetPath-Eigenschaft des Verknüpfungsobjekts gespeichert werden, was nicht zum gewünschten Ergebnis führt. Alle Argumente der Verknüpfung müssen in der Arguments-Eigenschaft gespeichert werden.

Beispiel

Im folgenden Beispiel wird ein WshShell-Objekt erstellt, und es wird die CreateShortcut-Methode verwendet, um zwei Verknüpfungen zu erstellen.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "CTRL+SHIFT+F"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "CTRL+SHIFT+F";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | WshShortcut-Objekt | WshUrlShortcut-Objekt | WshShell-Objekt


DisconnectObject-Methode

Trennt die Verbindungen der Ereignisquellen eines verbundenen Objekts.

object.DisconnectObject(obj)

Argumente

object
WScript-Objekt.
obj
Zeichenfolgenwert, der den Namen des Objekts angibt, dessen Verbindungen getrennt werden sollen.

Hinweise

Nachdem die "Verbindungen" eines Objekts "getrennt" wurden, reagiert WSH nicht mehr auf dessen Ereignisse. Das Objekt ist jedoch noch in der Lage, Ereignisse auszulösen. Beachten Sie, dass die DisconnectObject-Methode wirkungslos bleibt, wenn das angegebene Objekt nicht bereits verbunden ist.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Methode DisconnectObject, um die Verküpfung mit dem Fehler des WshRemote-Objekts nach Ausführung eines Remote-Skripts aufzuheben.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

WScript.DisconnectObject RemoteScript

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Fehler " & theError.Number & " - Zeile: " & theError.Line & ", Zeichen: " & theError.Character & vbCrLf & "Beschreibung: " & theError.Description
    WScript.Quit -1
End Sub
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("test.js", "remoteserver");
WScript.ConnectObject(RemoteScript, "remote_");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

WScript.DisconnectObject(RemoteScript)

function remote_Error()
{
    var theError = RemoteScript.Error;
    WScript.Echo("Fehler " + theError.Number + " - Zeile: " + theError.Line + ", Zeichen: " + theError.Character + "\nBeschreibung: " + theError.Description);
    WScript.Quit(-1);
}

Siehe auch

WScript-Objekt | ConnectObject-Methode | CreateObject-Methode | GetObject-Methode


Echo-Methode

Gibt Text entweder in einem Meldungsfeld oder in einer Befehlskonsole aus.

object.Echo [Arg1] [,Arg2] [,Arg3] ...

Argumente

object
WScript-Objekt.
Arg1, Arg2, Arg3 ...
Optional. Zeichenfolgenwert, der die Liste der anzuzeigenden Elemente angibt.

Hinweise

Das Verhalten der Echo-Methode hängt vom verwendeten WSH-Modul ab.

WSH-Modul | Textausgabe
Wscript.exe | grafisches Meldungsfeld
Cscript.exe | Befehlskonsolenfenster

Jedes angezeigte Element ist durch ein Leerzeichen vom vorherigen Element getrennt. Bei der Verwendung von CScript.exe wird jedes Element mit einem Zeilenumbruchzeichen angezeigt. Wenn keine Elemente als Argumente an die Echo-Methode übergeben werden, wird eine leere Zeile ausgegeben.

Beispiel

Im folgenden Beispiel wird die Echo-Methode verwendet, um den Domänennamen, den Computernamen und den Benutzernamen des aktuellen Computers sowie die Netzzuordnungsinformationen für die Laufwerke und Drucker anzuzeigen.

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         Set oDrives = WshNetwork.EnumNetworkDrives
         Set oPrinters = WshNetwork.EnumPrinterConnections
         WScript.Echo "Domäne = " & WshNetwork.UserDomain
         WScript.Echo "Computername = " & WshNetwork.ComputerName
         WScript.Echo "Benutzername = " & WshNetwork.UserName
         WScript.Echo
         WScript.Echo "Zuordnungen der Netzlaufwerke:"
         For i = 0 to oDrives.Count - 1 Step 2
            WScript.Echo "Laufwerk " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
         Next
         WScript.Echo
         WScript.Echo "Zuordnungen der Netzwerkdrucker:"
         For i = 0 to oPrinters.Count - 1 Step 2
            WScript.Echo "Anschluss " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)
         Next
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         var oDrives = WshNetwork.EnumNetworkDrives();
         var oPrinters = WshNetwork.EnumPrinterConnections();
         WScript.Echo("Domäne = " + WshNetwork.UserDomain);
         WScript.Echo("Computername = " + WshNetwork.ComputerName);
         WScript.Echo("Benutzername = " + WshNetwork.UserName);
         WScript.Echo();
         WScript.Echo("Zuordnungen der Netzlaufwerke:");
         for(i=0; i<oDrives.Count(); i+=2){
            WScript.Echo("Laufwerk " + oDrives.Item(i) + " = " + oDrives.Item(i+1));
         }
         WScript.Echo();
         WScript.Echo("Zuordnungen der Netzwerkdrucker:");
         for(i=0; i<oPrinters.Count(); i+=2){
            WScript.Echo("Anschluss " + oPrinters.Item(i) + " = " + oPrinters.Item(i+1));
         }
      </script>
   </job>
</package>

Ausführen von Skripts | WScript-Objekt


EnumNetworkDrives-Methode

Gibt die aktuellen Zuordnungsinformationen der Netzlaufwerke zurück.

objDrives = object.EnumNetworkDrives

Argumente

object
WshNetwork-Objekt.
objDrives
Variable, in der die Zuordnungsinformationen der Netzlaufwerke gespeichert werden.

Hinweise

Die EnumNetworkDrives-Methode gibt eine Auflistung zurück. Diese Auflistung ist ein Array, in dem Elemente - lokale Namen der Netzlaufwerke und die ihnen zugeordneten UNC-Namen - einander paarweise zugeordnet sind. Elemente mit geraden Nummern in der Auflistung stellen lokale Namen von logischen Laufwerken dar. Elemente mit ungeraden Nummern stellen die zugeordneten UNC-Freigabenamen dar. Das erste Element in der Auflistung hat den Index Null (0).

Beispiel

Im folgenden Beispiel wird EnumNetworkDrives verwendet, um eine Liste der vernetzten Laufwerke zu erzeugen und die Zuordnungsinformationen anzuzeigen.

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         Set oDrives = WshNetwork.EnumNetworkDrives
         Set oPrinters = WshNetwork.EnumPrinterConnections
         WScript.Echo "Zuordnungen der Netzlaufwerke:"
         For i = 0 to oDrives.Count - 1 Step 2
            WScript.Echo "Laufwerk " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
         Next
         WScript.Echo
         WScript.Echo "Zuordnungen der Netzwerkdrucker:"
         For i = 0 to oPrinters.Count - 1 Step 2
            WScript.Echo "Anschluss " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)
         Next
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         var oDrives = WshNetwork.EnumNetworkDrives();
         var oPrinters = WshNetwork.EnumPrinterConnections();
         WScript.Echo("Zuordnungen der Netzlaufwerke:");
         for(i = 0; i < oDrives.length; i += 2) {
            WScript.Echo("Laufwerk " + oDrives.Item(i) + " = " + oDrives.Item(i + 1));
         }
         WScript.Echo();
         WScript.Echo("Zuordnungen der Netzwerkdrucker:");
         for(i = 0; i < oPrinters.length; i += 2) {
            WScript.Echo("Anschluss " + oPrinters.Item(i) + " = " + oPrinters.Item(i + 1));
         }
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | WshNetwork-Objekt | MapNetworkDrive-Methode | RemoveNetworkDrive-Methode


EnumPrinterConnections-Methode

Gibt die aktuellen Zuordnungsinformationen der Netzwerkdrucker zurück.

objPrinters = object.EnumPrinterConnections

Argumente

object
WshNetwork-Objekt.
objPrinters
Variable, in der die Zuordnungsinformationen der Netzwerkdrucker gespeichert werden.

Hinweise

Die EnumPrinterConnections-Methode gibt eine Auflistung zurück. Diese Auflistung ist ein Array, in dem Elemente - lokale Namen der Netzwerkdrucker und die ihnen zugeordneten UNC-Namen - einander paarweise zugeordnet sind. Elemente mit geraden Nummern in der Auflistung stellen Druckeranschlüsse dar. Elemente mit ungeraden Nummern stellen die UNC-Namen der vernetzten Drucker dar. Das erste Element in der Auflistung hat den Index Null (0).

Beispiel

Im folgenden Beispiel wird die EnumPrinterConnections-Methode verwendet, um eine Liste der vernetzten Drucker zu erzeugen und diese Zuordnungsinformationen anzuzeigen.

<package>
   <job id="vbs">
      <script language="VBScript">
         Set WshNetwork = WScript.CreateObject("WScript.Network")
         Set oDrives = WshNetwork.EnumNetworkDrives
         Set oPrinters = WshNetwork.EnumPrinterConnections
         WScript.Echo "Zuordnungen der Netzlaufwerke:"
         For i = 0 to oDrives.Count - 1 Step 2
            WScript.Echo "Laufwerk " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
         Next
         WScript.Echo
         WScript.Echo "Zuordnungen der Netzwerkdrucker:"
         For i = 0 to oPrinters.Count - 1 Step 2
            WScript.Echo "Anschluss " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)
         Next
   </script>
</job>

   <job id="js">
      <script language="JScript">
         var WshNetwork = WScript.CreateObject("WScript.Network");
         var oDrives = WshNetwork.EnumNetworkDrives();
         var oPrinters = WshNetwork.EnumPrinterConnections();
         WScript.Echo("Zuordnungen der Netzlaufwerke:");
         for(i = 0; i < oDrives.length; i += 2) {
            WScript.Echo("Laufwerk " + oDrives.Item(i) + " = " + oDrives.Item(i + 1));
         }
         WScript.Echo();
         WScript.Echo("Zuordnungen der Netzwerkdrucker:");
         for(i = 0; i < oPrinters.length; i += 2) {
            WScript.Echo("Anschluss " + oPrinters.Item(i) + " = " + oPrinters.Item(i + 1));
         }
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | WshNetwork-Objekt | AddPrinterConnection-Methode | AddWindowsPrinterConnection-Methode | RemovePrinterConnection-Methode | SetDefaultPrinter-Methode


Exec-Methode

Führt eine Anwendung in einer untergeordneten Befehlsshell aus und bietet Zugriff auf die Datenströme StdIn, StdOut und StdErr.

object.Exec(strCommand)

Argumente

object
WshShell-Objekt.
strCommand
Zeichenfolgenwert, der die Befehlszeile zum Ausführen des Skripts angibt. Die Befehlszeile sollte genau so angezeigt werden, wie sie bei einer Eingabe an der Eingabeaufforderung angezeigt werden würde.

Hinweise

Die Exec-Methode gibt ein WshScriptExec-Objekt zurück, das Status- und Fehlerinformationen zu einem Skript, das mit Exec ausgeführt wurde, sowie Zugriff auf die Kanäle StdIn, StdOut und StdErr bietet. Die Exec-Methode ermöglicht nur die Ausführung von Befehlszeilenanwendungen. Die Exec-Methode kann nicht zum Ausführen von Remoteskripts verwendet werden. Verwechseln Sie die Exec-Methode nicht mit der Execute-Methode (des WshRemote-Objekts).

Beispiel

Das folgende Beispiel demonstriert die Grundlagen der Methode Exec.

[VBScript]
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("calc")

Do While oExec.Status = 0
     WScript.Sleep 100
Loop

WScript.Echo oExec.Status
[JScript]
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("calc");

while (oExec.Status == 0)
{
     WScript.Sleep(100);
}

WScript.Echo(oExec.Status);

WshScriptExec-Objekt


Execute-Methode (Windows Script Host)

Windows Script Host

Execute-Methode

Startet die Ausführung eines Remoteskriptobjekts.

object.Execute

Parameter

object
WshRemote-Objekt.

Hinweise

Das Start-Ereignis des WshRemote-Objekts wird ausgelöst, wenn die Ausführung des Skripts beginnt. Verwechseln Sie die Execute-Methode nicht mit der Exec-Methode (des WScript-Objekts).

Beispiel

Das folgende Beispiel veranschaulicht, wie die Execute-Methode zur Erstellung eines WshRemote-Objekts (zum Start einer Instanz eines Remoteskripts) verwendet wird.

[VBScript]
Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("remote1.js")
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop
[JScript]
var Controller = WScript.CreateObject("WSHController");
var RemoteScript = Controller.CreateScript("remote1.js");
RemoteScript.Execute();

while (RemoteScript.Status != 2) {
    WScript.Sleep(100);
}

Siehe auch

WshController-Objekt | WshRemote-Objekt | Status-Eigenschaft | Error-Eigenschaft | Terminate-Methode | Start-Ereignis | End-Ereignis


Exists-Methode (Windows Script Host)

Windows Script Host

Exists-Methode

Gibt an, ob ein bestimmter Schlüsselwert im WshNamed-Objekt vorhanden ist.

object.Exists(key)

Parameter

object
WshNamed-Objekt.
Key
Zeichenfolgenwert, der ein Argument des WshNamed-Objekts angibt.

Hinweise

Die Exists-Methode gibt einen booleschen Wert zurück. Sie gibt true zurück, wenn das angeforderte Argument an der Befehlszeile angegeben wurde (anderenfalls gibt sie false zurück).

Beispiel

Betrachten Sie die folgenden an der Befehlszeile eingegebenen Informationen.

myScript.vbs /c:"WSH ist eine wunderbare Sache"

Mit den beiden folgenden Zeilen JScript-Code könnten Sie nun ermitteln, ob die folgenden Befehlszeilenparameter zum Starten des Skripts verwendet wurden.

WScript.Echo(WScript.Arguments.Named.Exists("C"));
WScript.Echo(WScript.Arguments.Named.Exists("D"));

Siehe auch

Arguments-Eigenschaft | WshNamed-Objekt | WshUnnamed-Objekt | Count-Methode | Item-Eigenschaft


ExpandEnvironmentStrings-Methode

Gibt den erweiterten Wert einer Umgebungsvariable zurück.

object.ExpandEnvironmentStrings(strString)

Argumente

object
WshShell-Objekt.
strString
Zeichenfolgenwert, der den Namen der zu erweiternden Umgebungsvariable angibt.

Hinweise

Die ExpandEnvironmentStrings-Methode erweitert nur Umgebungsvariablen, die im PROCESS-Umgebungsraum definiert sind. Namen von Umgebungsvariablen müssen in "%"-Zeichen eingeschlossen werden. Die Groß-/Kleinschreibung wird bei den Namen nicht beachtet.

Beispiel

Der folgende Code erweitert die Umgebungsvariable des Windows-Verzeichnisses und zeigt diese an:

[VBScript]
set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "WinDir hat den Wert " & WshShell.ExpandEnvironmentStrings("%WinDir%")
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
WScript.Echo("WinDir is " + WshShell.ExpandEnvironmentStrings("%WinDir%"));

WshShell-Objekt


GetObject-Methode

Ruft ein vorhandenes Objekt mit der angegebenen ProgID ab oder erstellt ein neues Objekt aus einer Datei.

object.GetObject(strPathname [,strProgID], [strPrefix])

Argumente

object
WScript-Objekt.
strPathname
Der voll gekennzeichnete Pfadname der Datei, die das auf dem Datenträger bewahrte Objekt enthält.
strProgID
Optional. Der programmtechnische Bezeichner (ProgID) des Objekts.
strPrefix
Optional. Wird verwendet, wenn die Ereignisse des Objekts synchronisiert werden sollen. Wenn Sie das strPrefix-Argument angeben, verbindet WSH nach dem Erstellen des Objekts die nach außen sichtbare Schnittstelle des Objekts mit der Skriptdatei.

Hinweise

Verwenden Sie die GetObject-Methode, wenn eine Instanz des Objekts im Arbeitsspeicher vorhanden ist oder das Objekt aus einer Datei erstellt werden soll. Wenn keine aktuelle Instanz vorhanden ist und das Objekt nicht aus einer Datei erstellt werden soll, verwenden Sie die CreateObject-Methode. Die GetObject-Methode kann mit allen COM-Klassen verwendet werden, unabhängig von der Sprache, die für die Erstellung des Objekts verwendet wurde. Wenn Sie das strPrefix-Argument angeben, verbindet WSH nach dem Erstellen des Objekts die nach außen sichtbare Schnittstelle des Objekts mit der Skriptdatei. Wenn das Objekt ein Ereignis auslöst, ruft WSH eine Unterroutine auf, bei der strPrefix an den Anfang des Ereignisnamens angehängt wird. Wenn strPrefix beispielsweise MYOBJ_ lautet und das Objekt ein Ereignis namens OnBegin auslöst, ruft Windows Script Host die Unterroutine MYOBJ_OnBegin auf, die sich im Skript befindet.

Wenn ein Objekt als Einzelinstanzobjekt registriert ist, wird nur eine Instanz des Objekts erstellt (unabhängig davon, wie oft GetObject ausgeführt wird). Die GetObject-Methode gibt stets die gleiche Instanz zurück, wenn sie mit der Syntax mit einer leeren Zeichenfolge ("") aufgerufen wird, und sie verursacht einen Fehler, wenn der Pfadparameter nicht angegeben wird. Die GetObject-Methode kann nicht verwendet werden, um einen Verweis auf eine Microsoft Visual Basic-Klasse zu erhalten, die mit Visual Basic, Version 4.0 oder älter, erstellt wurde.

Beispiel

Der folgende VBScript-Code startet die Anwendung, die der angegebenen Datei (strPathname) zugeordnet ist:

Dim MyObject As Object
Set MyObject = GetObject("C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application

Einige Anwendungen ermöglichen es Ihnen, einen Teil einer Datei zu aktivieren. Fügen Sie hierzu ein Ausrufezeichen (!) zum Ende des Dateinamens hinzu, gefolgt von einer Zeichenfolge, die den zu aktivierenden Teil der Datei bezeichnet. Beispielsweise verfügt bei einer Zeichnungsanwendung eine in einer Datei gespeicherte Zeichnung möglicherweise über mehrere Schichten. Der folgende Code aktiviert eine Schicht in einer Zeichnungsdatei namens SCHEMA.CAD:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

Wenn Sie die Klasse des Objekts (strProgID) nicht angeben, ermittelt COM die zu startende Anwendung aus dem Dateinamen. Einige Dateien können mehr als eine Objektklasse unterstützen. Beispielsweise unterstützt eine Zeichnung möglicherweise drei verschiedene Objekttypen: ein Anwendungsobjekt, ein Zeichnungsobjekt und ein Symbolleistenobjekt. Alle können Teil derselben Datei sein.

Im folgenden VBScript-Code wird die Zeichnungsanwendung FIGMENT gestartet, die das Objekt DRAWING aus der Datei SAMPLE.DRW öffnet.

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")

Siehe auch

WScript-Objekt | CreateObject-Methode | DisconnectObject-Methode


getResource-Methode

Gibt den Wert einer Ressource zurück, die mit dem <resource>-Element definiert wurde.

getResource(resourceID)

Argumente

resourceID
Eine Zeichenfolge, die die Ressourceninformationen eindeutig bezeichnet, die in einem Paar von Ressourcentags in einer WSF-Skriptdatei enthalten sind.

Hinweise

Die getResource-Methode gibt eine Zeichenfolge zurück. Verwenden Sie das <resource>-Element, um innerhalb der WSF-Datei befindliche Zeichenfolgen oder Zahlen zu isolieren, auf die verwiesen werden soll. Dieses Feature erleichtert die Verwaltung einer Reihe von Zeichenfolgen, die in mehrere Sprachen lokalisiert werden. Eine WSH-Skriptdatei (WSF) kann mehrere verschiedene Ressourceninformationen enthalten, jede mit einem eindeutigen Ressourcenbezeichner.

Beispiel

Im folgenden WSH-Skript wird eine Ressource namens errNonNumeric definiert. Der Wert errNonNumeric wird angezeigt, wenn der Parameter upperBound nicht aus einer Zahl besteht.

<package>
<job id="JS">
<resource id="errNonNumeric">Fehler: Ein nicht-numerischer Wert, wurde anstatt einer Zahl eingegeben.</resource>
<script language="JScript">

function getRandomNumber(upperBound)
{
   var realUpperBound = parseInt(upperBound);
   if (!isNaN(realUpperBound))
      return (realUpperBound * Math.random) + 1
   else
   {
      WScript.Echo(getResource("errNonNumeric"));
      WScript.Quit(-1);
   }
}

NewValue = getRandomNumber("Bad Value");

</script>
</job>

<job id="VBS">
<resource id="errNonNumeric">Fehler: Ein nicht-numerischer Wert, wurde anstatt einer Zahl eingegeben.</resource>
<script language="VBScript">

Function getRandomNumber(upperBound)
   If IsNumeric(upperBound) Then
      getRandomNumber = CInt(upperBound * Rnd + 1)
   Else
      WScript.Echo getResource("errNonNumeric")
      WScript.Quit -1
   End If
End Function

NewValue = getRandomNumber("Bad Value")

</script>
</job>
</package>

<resource>-Element


LogEvent-Methode

Fügt einen Ereigniseintrag zu einer Protokolldatei hinzu.

object.LogEvent(intType, strMessage [,strTarget])

Argumente

object
WshShell-Objekt.
intType
Ganzzahliger Wert, der den Ereignistyp darstellt.
strMessage
Zeichenfolgenwert, der den Text des Protokolleintrags enthält.
strTarget
Optional. Zeichenfolgenwert, der den Namen des Computersystems angibt, auf dem das Ereignisprotokoll gespeichert wird (der Standardwert ist der Name des lokalen Computersystems). Betrifft nur Windows NT/2000.

Hinweise

Die LogEvent-Methode gibt einen booleschen Wert zurück (true, wenn das Ereignis erfolgreich protokolliert wurde, anderenfalls false). In Windows NT/2000 werden Ereignisse im Windows NT-Ereignisprotokoll protokolliert. In Windows 9x/Me werden Ereignisse in der Datei WSH.log (im Verzeichnis Windows) protokolliert. Es gibt sechs Ereignistypen.

Typ | Wert
0 | SUCCESS
1 | ERROR
2 | WARNING
4 | INFORMATION
8 | AUDIT_SUCCESS
16 | AUDIT_FAILURE

Beispiel

Der folgende Code protokolliert in Abhängigkeit vom Ergebnis der Funktion runLoginScript() den Wert SUCCESS oder ERROR.

[VBScript]
Set WshShell = WScript.CreateObject("WScript.Shell")
rc = runLoginScript()      'Gibt true zurück, wenn die Anmeldung erfolgreich ist.

if rc then
   WshShell.LogEvent 0, "Anmeldungsskript erfolgreich abgeschlossen"
else
   WshShell.LogEvent 1, "Anmeldungsskript fehlgeschlagen"
end if
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
var rc = runLoginScript();

if (rc)
   WshShell.LogEvent(0, "Logon Script Completed Successfully");
else
   WshShell.LogEvent(1, "Logon Script failed");

WshShell-Objekt


MapNetworkDrive-Methode

Fügt ein freigegebenes Netzlaufwerk zum Computersystem hinzu.

object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])

Argumente

object
WshNetwork-Objekt.
strLocalName
Zeichenfolgenwert, der den Namen angibt, mit dem das zugeordnete Laufwerk lokal bezeichnet wird.
strRemoteName
Zeichenfolgenwert, der den UNC-Namen der Freigabe (\\xxx\yyy) angibt.
bUpdateProfile
Optional. Boolescher Wert, der angibt, ob die Zuordnungsinformationen im Profil des aktuellen Benutzers gespeichert werden. Wenn bUpdateProfile angegeben wird und den Wert true hat, wird die Zuordnung im Benutzerprofil gespeichert (der Standardwert ist false).
strUser
Optional. Zeichenfolgenwert, der den Benutzernamen angibt. Dieses Argument muss angegeben werden, wenn ein Netzlaufwerk nicht mit den Anmeldeinformationen des aktuellen Benutzers zugeordnet wird.
strPassword
Optional. Zeichenfolgenwert, der das Benutzerkennwort angibt. Dieses Argument muss angegeben werden, wenn ein Netzlaufwerk nicht mit den Anmeldeinformationen des aktuellen Benutzers zugeordnet wird.

Hinweise

Der Versuch, ein nicht freigegebenes Netzlaufwerk zuzuordnen, führt zu einem Fehler.

Beispiel

Der folgende Code ordnet das logische Laufwerk E einer Netzwerkfreigabe mit dem UNC-Namen \\Server\Public zu.

[VBScript]
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "E:", "\\Server\Public"
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
WshNetwork.MapNetworkDrive ("E:", "\\\\Server\\Public");

Siehe auch

WshNetwork-Objekt | EnumNetworkDrives-Methode | RemoveNetworkDrive-Methode


Popup-Methode

Zeigt Text in einem Popupmeldungsfeld an.

intButton = object.Popup(strText,[nSecondsToWait],[strTitle],[nType])

Argumente

object
WshShell-Objekt.
strText
Zeichenfolgenwert, der den Text enthält, der im Popupmeldungsfeld angezeigt werden soll.
nSecondsToWait
Optional. Numerischer Wert, der die maximale Zeit (in Sekunden) angibt, die das Popupmeldungsfeld angezeigt werden soll.
strTitle
Optional. Zeichenfolgenwert, der den Text enthält, der als Titel des Popupmeldungsfeldes angezeigt werden soll.
nType
Optional. Numerischer Wert, der den Typ der Schaltflächen und Symbole angibt, die im Popupmeldungsfeld angezeigt werden sollen. Diese bestimmen, wie das Meldungsfeld verwendet wird.
IntButton
Ganzzahliger Wert, der die Nummer der Schaltfläche angibt, auf die der Benutzer zum Beenden des Meldungsfeldes geklickt hat. Dies ist der Wert, der von der Popup-Methode zurückgegeben wird.

Hinweise

Die Popup-Methode zeigt ein Meldungsfeld an, unabhängig davon, welche auf dem Host ausführbare Datei ausgeführt wird (WScript.exe oder CScript.exe). Wenn nSecondsToWait gleich Null ist (der Standard), bleibt das Popupmeldungsfeld sichtbar, bis es vom Benutzer geschlossen wird. Wenn nSecondsToWait größer als Null ist, wird das Popupmeldungsfeld nach nSecondsToWait Sekunden geschlossen. Wird das Argument strTitle nicht angegeben, lautet der Titel des Popupmeldungsfeldes standardmäßig "Windows Script Host". Die Bedeutung von nType ist die gleiche wie bei der MessageBox-Funktion der Microsoft Win32®-Schnittstelle für Anwendungsprogrammierung. In den folgenden Tabellen sind die Werte und ihre Bedeutungen aufgeführt. Die Werte aus diesen Tabellen können kombiniert werden.

Anmerkung Damit Text in Rechts-nach-links-Sprachen, wie beispielsweise Hebräisch oder Arabisch, ordnungsgemäß angezeigt wird, addieren Sie den Hexadezimalwert &h00100000 (dezimal 1048576) zum Parameter nType.

Schaltflächentypen

Wert | Beschreibung
0 | Schaltfläche OK anzeigen.
1 | Schaltflächen OK und Abbrechen anzeigen.
2 | Schaltflächen Abbrechen, Wiederholen und Ignorieren anzeigen.
3 | Schaltflächen Ja, Nein und Abbrechen anzeigen.
4 | Schaltflächen Ja und Nein anzeigen.
5 | Schaltflächen Wiederholen und Abbrechen anzeigen.

Symboltypen

Wert | Beschreibung
16 | Stoppzeichensymbol anzeigen.
32 | Fragezeichensymbol anzeigen.
48 | Ausrufezeichensymbol anzeigen.
64 | Infozeichensymbol anzeigen.

Diese beiden Tabellen führen nicht alle Werte für nType auf. Eine vollständige Liste finden Sie in der Microsoft Win32-Dokumentation.

Der Rückgabewert intButton gibt die Nummer der Schaltfläche an, auf die der Benutzer geklickt hat. Wenn der Benutzer innerhalb von nSecondsToWait Sekunden auf keine Schaltfläche klickt, wird intButton auf -1 festgelegt.

Wert | Beschreibung
1 | Schaltfläche OK
2 | Schaltfläche Abbrechen
3 | Schaltfläche Abbrechen
4 | Schaltfläche Wiederholen
5 | Schaltfläche Ignorieren
6 | Schaltfläche Ja
7 | Schaltfläche Nein

Beispiel

Der folgende Code erzeugt ein einfaches Popupfenster.

[VBScript]
Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")

BtnCode = WshShell.Popup("Geht es Ihnen gut?", 7, "Bitte beantworten Sie diese Frage:", 4 + 32)

Select Case BtnCode
   case 6      WScript.Echo "Schön, dass es Ihnen gut geht."
   case 7      WScript.Echo "Hoffentlich geht es Ihnen bald wieder besser."
   case -1     WScript.Echo "Ist dort draußen irgendjemand?"
End Select
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
var BtnCode = WshShell.Popup("Geht es Ihnen gut?", 7, "Bitte beantworten Sie diese Frage:", 4 + 32);
switch(BtnCode) {
   case 6:
      WScript.Echo("Schön, dass es Ihnen gut geht.");
      break;
   case 7:
      WScript.Echo("Hoffentlich geht es Ihnen bald wieder besser.");
      break;
   case -1:
      WScript.Echo("Ist dort draußen irgendjemand?");
      break;
}

WshShell-Objekt | Echo-Methode


Quit-Methode

Erzwingt das sofortige Anhalten der Skriptausführung.

object.Quit([intErrorCode])

Argumente

object
WScript-Objekt.
intErrorCode
Optional. Ganzzahliger Wert, der als Exitcode des Prozesses zurückgegeben wird. Wenn der Parameter intErrorCode nicht angegeben wird, wird kein Wert zurückgegeben.

Hinweise

Die Quit-Methode kann einen optionalen Fehlercode zurückgeben. Wenn es sich bei der Quit-Methode um die letzte Anweisung im Skript handelt (und kein Wert ungleich Null zurückgegeben werden muss), kann sie ausgelassen werden. Das Skript wird dann normal beendet.

Beispiel

Das folgende JScript-Codefragment beendet die Ausführung und gibt einen Fehlercode von 1 zurück:

WScript.Quit (1);

// Diese Codezeile wird nie ausgeführt.
var i = 0;

WScript-Objekt


Read-Methode (Windows Script Host)

Windows Script Host

Read-Methode

Gibt eine angegebene Anzahl von Zeichen aus einem Eingabedatenstrom zurück.

object.Read(characters)

Argumente

object
StdIn-Textdatenstrom-Objekt.
characters
Ganzzahliger Wert, der die Anzahl der zu lesenden Zeichen angibt.

Hinweise

Die Read-Methode gibt eine Zeichenfolge zurück. Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird ein Fehler zurückgegeben. Der Lesevorgang beginnt am Ort des aktuellen Positionszeigers und wird um jeweils ein Zeichen nach vorne verschoben.

Die Read-Methode kehrt erst zurück, wenn die Eingabetaste gedrückt wird. Es wird nur die angeforderte Anzahl von Zeichen zurückgegeben. Zusätzliche Zeichen werden bei nachfolgenden Aufrufen der Methoden Read, ReadLine oder ReadAll zurückgegeben.

Beispiel

Der folgende Code verwendet die Methode Read, um ein Zeichen von der Tastatur
abzufragen und auf der Konsole anzuzeigen.

[VBScript]
Dim Input
Input = ""

Do While Not WScript.StdIn.AtEndOfLine
   Input = Input & WScript.StdIn.Read(1)
Loop
WScript.Echo Input
[JScript]
var input = "";
while (!WScript.StdIn.AtEndOfLine)
{
   input += WScript.StdIn.Read(1);
}
WScript.Echo(input);

Siehe auch

StdIn-Eigenschaft (WScript)


ReadAll-Methode (Windows Script Host)

Windows Script Host

ReadAll-Methode

Gibt alle Zeichen aus einem Eingabedatenstrom zurück.

object.ReadAll

Argumente

object
StdIn-Textdatenstrom-Objekt.

Hinweise

Die ReadAll-Methode gibt eine Zeichenfolge zurück. Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird ein Fehler zurückgegeben.

Beispiel

Der folgende Code veranschaulicht die Verwendung der ReadAll-Methode.

[VBScript]
Dim Input
Input = ""

Do While Not WScript.StdIn.AtEndOfStream
   Input = Input & WScript.StdIn.ReadAll
Loop
WScript.Echo Input
[JScript]
var input = "";
while (!WScript.StdIn.AtEndOfStream)
{
   input += WScript.StdIn.ReadAll();
}
WScript.Echo(input);

StdIn-Eigenschaft | FileSystemObject-Objekt


ReadLine-Methode (Windows Script Host)

Windows Script Host

ReadLine-Methode

Gibt eine komplette Zeile aus einem Eingabedatenstrom zurück.

object.ReadLine

Argumente

object
StdIn-Textdatenstrom-Objekt.

Hinweise

Die ReadLine-Methode gibt eine Zeichenfolge zurück. Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird ein Fehler zurückgegeben. Eine Zeile ist eine Folge von Zeichen, die mit einem Zeilenumbruchzeichen endet.

Anmerkung Obwohl diese Methode das Zeilenumbruchzeichen extrahiert, fügt sie es nicht zur Zeichenfolge hinzu.

Beispiel

Der folgende Code veranschaulicht die Verwendung der ReadLine-Methode.

[VBScript]
Dim Input
Input = ""

Do While Not WScript.StdIn.AtEndOfStream
   Input = Input & WScript.StdIn.ReadAll
Loop
WScript.Echo Input
[JScript]
var input = "";
while (!WScript.StdIn.AtEndOfStream)
{
   input += WScript.StdIn.ReadAll();
}
WScript.Echo(input);

StdIn-Eigenschaft | FileSystemObject-Objekt


RegDelete-Methode

Löscht einen Schlüssel oder einen seiner Werte aus der Registrierung.

object.RegDelete(strName)

Argumente

object
WshShell-Objekt.
strName
Zeichenfolgenwert, der den Namen des zu löschenden Registrierungsschlüssels oder Schlüsselwertes angibt.

Hinweise

Ein Schlüsselname wird angegeben, indem strName mit einem umgekehrten Schrägstrich endet; wird dieser ausgelassen, wird ein Wertname angegeben. Voll gekennzeichnete Schlüsselnamen und Wertnamen beginnen mit einem Stammschlüssel. Bei der RegDelete-Methode können abgekürzte Versionen von Stammschlüsselnamen verwendet werden. Die fünf möglichen verwendbaren Stammschlüssel sind in der folgenden Tabelle aufgeführt.

Stammschlüsselname | Abkürzung
HKEY_CURRENT_USER | HKCU
HKEY_LOCAL_MACHINE | HKLM
HKEY_CLASSES_ROOT | HKCR
HKEY_USERS | HKEY_USERS
HKEY_CURRENT_CONFIG | HKEY_CURRENT_CONFIG

Beispiel

Im folgenden Code werden ein Schlüssel und zwei Werte erstellt, gelesen und gelöscht.

[VBScript]
Dim WshShell, bKey
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY"
WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ"

bKey = WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\")
WScript.Echo WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader")

WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader"
WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\"
WshShell.RegDelete "HKCU\Software\ACME\"
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");

WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ");

var bKey =    WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\");
WScript.Echo (WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));

WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");
WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\");
WshShell.RegDelete ("HKCU\\Software\\ACME\\");

WshShell-Objekt | RegRead-Methode | RegWrite-Methode


RegRead-Methode

Gibt den Wert eines Schlüssels oder Wertnamens aus der Registrierung zurück.

object.RegRead(strName)

Argumente

object
WshShell-Objekt.
strName
Zeichenfolgenwert, der den Schlüssel oder Wertnamen des gewünschten Wertes angibt.

Hinweise

Die RegRead-Methode gibt Werte der folgenden fünf Typen zurück.

Typ | Beschreibung | Form
REG_SZ | Eine Zeichenfolge | Eine Zeichenfolge
REG_DWORD | Eine Zahl | Eine ganze Zahl
REG_BINARY | Ein Binärwert | Ein VBArray von ganzen Zahlen
REG_EXPAND_SZ | Eine erweiterbare Zeichenfolge (z. B. "%windir%\\calc.exe") | Eine Zeichenfolge
REG_MULTI_SZ | Ein Array von Zeichenfolgen | Ein VBArray von Zeichenfolgen

Ein Schlüsselname wird angegeben, indem strName mit einem umgekehrten Schrägstrich endet. Endet dieses Argument nicht mit einem umgekehrten Schrägstrich, wird ein Wertname angegeben. Ein Werteintrag besteht aus drei Teilen: Name, Datentyp und Wert. Wenn ein Schlüsselname (im Gegensatz zu einem Wertnamen) angegeben wird, gibt RegRead den Standardwert zurück. Soll der Standardwert eines Schlüssels gelesen werden, geben Sie den Namen des Schlüssels selbst an. Voll gekennzeichnete Schlüsselnamen und Wertnamen beginnen mit einem Stammschlüssel. Bei der RegRead-Methode können abgekürzte Versionen von Stammschlüsselnamen verwendet werden. Die fünf möglichen Stammschlüssel sind in der folgenden Tabelle aufgeführt.

Stammschlüsselname | Abkürzung
HKEY_CURRENT_USER | HKCU
HKEY_LOCAL_MACHINE | HKLM
HKEY_CLASSES_ROOT | HKCR
HKEY_USERS | HKEY_USERS
HKEY_CURRENT_CONFIG | HKEY_CURRENT_CONFIG

Beispiel

Im folgenden Code werden ein Schlüssel und zwei Werte erstellt, gelesen und gelöscht.

[VBScript]
Dim WshShell, bKey
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY"
WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ"

bKey = WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\")
WScript.Echo WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader")

WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader"
WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\"
WshShell.RegDelete "HKCU\Software\ACME\"
[JScript]
var WshShell = WScript.CreateObject ("WScript.Shell");

WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ");

var bKey =    WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\");
WScript.Echo (WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));

WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");
WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\");
WshShell.RegDelete ("HKCU\\Software\\ACME\\");

WshShell-Objekt | RegDelete-Methode | RegWrite-Methode


RegWrite-Methode

Erstellt einen neuen Schlüssel, fügt einen weiteren Wertnamen zu einem vorhandenen Schlüssel hinzu (und weist ihm einen Wert zu) oder ändert den Wert eines vorhandenen Wertnamens.

object.RegWrite(strName, anyValue [,strType])

Argumente

object
WshShell-Objekt.
strName
Zeichenfolgenwert, der den zu erstellenden, hinzuzufügenden oder zu ändernden Schlüsselnamen, Wertnamen oder Wert angibt.
anyValue
Der Name des neuen zu erstellenden Schlüssels, der Name des Wertes, der zu einem vorhandenen Schlüssel hinzugefügt werden soll, oder der neue Wert, der einem vorhandenen Wertnamen zugewiesen werden soll.
strType
Optional. Zeichenfolgenwert, der den Datentyp des Wertes angibt.

Hinweise

Ein Schlüsselname wird angegeben, indem strName mit einem umgekehrten Schrägstrich endet. Endet dieses Argument nicht mit einem umgekehrten Schrägstrich, wird ein Wertname angegeben. Die RegWrite-Methode konvertiert den Parameter anyValue automatisch entweder in eine Zeichenfolge oder eine ganze Zahl. Der Wert von strType bestimmt den Datentyp (entweder eine Zeichenfolge oder eine ganze Zahl). Die Optionen für strType sind in der folgenden Tabelle aufgeführt.

Konvertierung in | strType
String | REG_SZ
String | REG_EXPAND_SZ
Integer | REG_DWORD
Integer | REG_BINARY
Anmerkung Der Typ REG_MULTI_SZ wird für die RegWrite-Methode nicht unterstützt.
Tipp RegWrite schreibt maximal ein DWORD in einen REG_BINARY-Wert. Größere Werte werden von dieser Methode nicht unterstützt.

Voll gekennzeichnete Schlüsselnamen und Wertnamen beginnen mit einem Stammschlüssel. Bei der RegWrite-Methode können abgekürzte Versionen von Stammschlüsselnamen verwendet werden. Die fünf Stammschlüssel sind in der folgenden Tabelle aufgeführt.

Stammschlüsselname | Abkürzung
HKEY_CURRENT_USER | HKCU
HKEY_LOCAL_MACHINE | HKLM
HKEY_CLASSES_ROOT | HKCR
HKEY_USERS | HKEY_USERS
HKEY_CURRENT_CONFIG | HKEY_CURRENT_CONFIG

Die vier möglichen Datentypen, die bei strType angegeben werden können, sind in der folgenden Tabelle aufgeführt.

Typ | Beschreibung | Form
REG_SZ | Eine Zeichenfolge | Eine Zeichenfolge
REG_DWORD | Eine Zahl | Eine ganze Zahl
REG_BINARY | Ein Binärwert | Eine ganze Zahl
REG_EXPAND_SZ | Eine erweiterbare Zeichenfolge (z. B. "%windir%\\calc.exe") | Eine Zeichenfolge

Beispiel

Im folgenden Code werden ein Schlüssel und zwei Werte erstellt, gelesen und gelöscht.

[VBScript]
Dim WshShell, bKey
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY"
WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ"

bKey = WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\")
WScript.Echo WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader")

WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader"
WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\"
WshShell.RegDelete "HKCU\Software\ACME\"
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");

WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ");

var bKey =    WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\");
WScript.Echo (WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));

WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");
WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\");
WshShell.RegDelete ("HKCU\\Software\\ACME\\");

WshShell-Objekt | RegDelete-Methode | RegRead-Methode


Remove-Methode (Windows Script Host)

Windows Script Host

Remove-Methode

Entfernt eine vorhandene Umgebungsvariable.

object.Remove(strName)

Argumente

object
WshEnvironment-Objekt.
strName
Zeichenfolgenwert, der den Namen der zu entfernenden Umgebungsvariable angibt.

Hinweise

Die Remove-Methode entfernt Umgebungsvariablen aus den folgenden Umgebungstypen: PROCESS, USER, SYSTEM und VOLATILE. Mit der Remove-Methode entfernte Umgebungsvariablen werden nicht dauerhaft entfernt; sie werden nur für die aktuelle Sitzung entfernt.

Beispiel

Der folgende Code entfernt die Process-Umgebungsvariable TestVar.

[VBScript]
Dim WshShell, WshEnv
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("PROCESS")
WshEnv("TestVar") = "Windows Script Host"
WScript.Echo WshShell.ExpandEnvironmentStrings("Der Wert der Testvariable lautet: '%TestVar%'")
WshEnv.Remove "TestVar"
WScript.Echo WshShell.ExpandEnvironmentStrings("Der Wert der Testvariable lautet: '%TestVar%'")
[JScript]
var WshShell = WScript.CreateObject("WScript.Shell");
var WshEnv = WshShell.Environment("PROCESS");
WshEnv("TestVar") = "Windows Script Host";
WScript.Echo(WshShell.ExpandEnvironmentStrings("Der Wert der Testvariable lautet: '%TestVar%'"));
WshEnv.Remove("TestVar");
WScript.Echo(WshShell.ExpandEnvironmentStrings("Der Wert der Testvariable lautet: '%TestVar%'"));

WshEnvironment-Objekt | Environment-Eigenschaft


RemoveNetworkDrive-Methode

Entfernt ein freigegebenes Netzlaufwerk aus dem Computersystem.

object.RemoveNetworkDrive(strName, [bForce], [bUpdateProfile])

Argumente

object
WshNetwork-Objekt.
strName
Zeichenfolgenwert, der den Namen des zu entfernenden zugeordneten Laufwerkes angibt. Der Parameter strName kann entweder ein lokaler Name oder ein Remotename sein, je nachdem, wie das Laufwerk zugeordnet wurde.
bForce
Optional. Boolescher Wert, der angibt, ob die Entfernung des zugeordneten Laufwerkes erzwungen werden soll. Wenn bForce angegeben wird und den Wert true hat, entfernt diese Methode die Verbindungen, unabhängig davon, ob die Ressource verwendet wird.
bUpdateProfile
Optional. Zeichenfolgenwert, der angibt, ob die Zuordnung aus dem Profil des Benutzers entfernt werden soll. Wenn bUpdateProfile angegeben wird und den Wert true hat, wird die Zuordnung aus dem Benutzerprofil entfernt. bUpdateProfile hat standardmäßig den Wert false.

Hinweise

Wenn das Laufwerk eine Zuordnung zwischen einem lokalen Namen (Laufwerkbuchstaben) und einem Remotenamen (UNC-Namen) besitzt, muss strName auf den lokalen Namen festgelegt werden. Wenn der Netzwerkpfad nicht über eine Zuordnung zu einem lokalen Namen (Laufwerkbuchstaben) verfügt, muss strName auf den Remotenamen festgelegt werden.

Beispiel

Der folgende Code entfernt das logische Laufwerk "E".

[VBScript]
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.RemoveNetworkDrive "E:"
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
WshNetwork.RemoveNetworkDrive ("E:");

Siehe auch

WshNetwork-Objekt | EnumNetworkDrives-Methode | MapNetworkDrive-Methode


RemovePrinterConnection-Methode

Entfernt einen freigegebenen Netzwerkdrucker aus dem Computersystem.

object.RemovePrinterConnection(strName, [bForce], [bUpdateProfile])

Argumente

object
WshNetwork-Objekt.
strName
Zeichenfolgenwert, der den Namen des Druckers angibt. Dabei kann es sich um einen UNC-Namen (in der Form \\xxx\yyy) oder einen lokalen Namen (beispielsweise LPT1) handeln.
bForce
Optional. Boolescher Wert, der angibt, ob die Entfernung des zugeordneten Druckers erzwungen werden soll. Falls dieses Argument auf true festgelegt ist (der Standardwert ist false), wird die Druckerverbindung entfernt, unabhängig davon, ob ein Benutzer mit dem Drucker verbunden ist.
bUpdateProfile
Optional. Boolescher Wert. Falls dieses Argument auf true festgelegt ist (der Standardwert ist false), wird die Änderung im Profil des Benutzers gespeichert.

Hinweise

Die RemovePrinterConnection-Methode entfernt sowohl Windows- als auch MS-DOS-basierte Druckerverbindungen. Wenn der Drucker mit Hilfe der AddPrinterConnection-Methode verbunden wurde, muss strName der lokale Name des Druckers sein. Wenn der Drucker mit Hilfe der AddWindowsPrinterConnection-Methode verbunden oder manuell hinzugefügt wurde (mit Hilfe des Druckerinstallations-Assistenten), muss strName der UNC-Name des Druckers sein.

Beispiel

Der folgende Code trennt die Verbindung eines Netzwerkdruckers.

[VBScript]
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\printserv\DefaultPrinter"
WshNetwork.RemovePrinterConnection PrinterPath, true, true
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
var PrinterPath = "\\\\PRN-CORP1\\B41-4523-A";
WshNetwork.RemovePrinterConnection(PrinterPath, true, true);

Siehe auch

WshNetwork-Objekt | AddPrinterConnection-Methode | AddWindowsPrinterConnection-Methode | EnumPrinterConnections-Methode | SetDefaultPrinter-Methode


Run-Methode

Führt ein Programm in einem neuen Prozess aus.

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

Argumente

object
WshShell-Objekt.
strCommand
Zeichenfolgenwert, der die auszuführende Befehlszeile angibt. Es müssen alle Parameter angegeben werden, die an die ausführbare Datei übergeben werden sollen.
intWindowStyle
Optional. Ganzzahliger Wert, der das Erscheinungsbild des Fensters des Programms angibt. Beachten Sie, dass nicht alle Programme diese Informationen verwenden.
bWaitOnReturn
Optional. Boolescher Wert, der angibt, ob das Skript auf die Beendigung der Programmausführung warten soll, bevor mit der nächsten Anweisung im Skript fortgefahren wird. Falls dieses Argument auf true festgelegt ist, wird die Skriptausführung angehalten, bis das Programm beendet ist, und Run gibt den vom Programm zurückgegebenen Fehlercode zurück. Falls dieses Argument auf false festgelegt ist, kehrt die Run-Methode sofort nach dem Start des Programms zurück und gibt automatisch 0 zurück (dies ist nicht als Fehlercode zu interpretieren).

Hinweise

Die Run-Methode gibt eine ganze Zahl zurück. Die Run-Methode startet ein Programm, das in einem neuen Windows-Prozess ausgeführt wird. Das Skript kann so erstellt werden, dass vor dem Fortfahren auf die Beendigung der Ausführung des Programms gewartet wird. Hierdurch können Skripts und Programme synchron ausgeführt werden. Umgebungsvariablen im Argument strCommand werden automatisch erweitert. Wenn ein Dateityp ordnungsgemäß für ein bestimmtes Programm registriert wurde, wird das Programm ausgeführt, wenn Run mit einer Datei dieses Typs aufgerufen wird. Wenn beispielsweise Word auf dem Computersystem installiert ist, wird beim Aufrufen von Run mit einer DOC-Datei Word gestartet und das Dokument geladen. In der folgenden Tabelle sind die verfügbaren Einstellungen für intWindowStyle aufgeführt.

intWindowStyle | Beschreibung
0 | Blendet das Fenster aus und aktiviert ein anderes Fenster.
1 | Aktiviert ein Fenster und zeigt es an. Wenn das Fenster minimiert oder maximiert ist, stellt das System es mit seiner ursprünglichen Größe und Position wieder her. Eine Anwendung sollte dieses Flag angeben, wenn das Fenster zum ersten Mal angezeigt wird.
2 | Aktiviert das Fenster und zeigt es als minimiertes Fenster an.
3 | Aktiviert das Fenster und zeigt es als maximiertes Fenster an.
4 | Zeigt ein Fenster in der jeweils aktuellen Größe und Position an. Das aktive Fenster bleibt aktiv.
5 | Aktiviert das Fenster und zeigt es in der aktuellen Größe und Position an.
6 | Minimiert das angegebene Fenster und aktiviert das Fenster auf der nächstniedrigen Ebene in der Z-Reihenfolge.
7 | Zeigt das Fenster als minimiertes Fenster an. Das aktive Fenster bleibt aktiv.
8 | Zeigt das Fenster in seinem aktuellen Zustand an. Das aktive Fenster bleibt aktiv.
9 | Aktiviert das Fenster und zeigt es an. Wenn das Fenster minimiert oder maximiert ist, stellt das System es mit seiner ursprünglichen Größe und Position wieder her. Eine Anwendung sollte dieses Flag angeben, wenn ein minimiertes Fenster wiederhergestellt wird.
10 | Legt den Anzeigezustand basierend auf dem Zustand des Programms fest, das die Anwendung gestartet hat.

Beispiel 1

Der folgende VBScript-Code öffnet eine Kopie des aktuell ausgeführten Skripts mit Editor.

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\notepad " & WScript.ScriptFullName

Der folgende VBScript-Code führt die gleiche Aktion aus, mit der Ausnahme, dass er den Fenstertyp angibt, darauf wartet, dass Editor vom Benutzer geschlossen wird, und den von Editor nach dem Schließen zurückgegebenen Fehlercode speichert.

Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)

Beispiel 2

Der folgende VBScript-Code öffnet ein MS-DOS-Fenster, ändert den Pfad in C:\ und führt den Befehl DIR aus.

Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd /K CD C:\ & Dir"
Set oShell = Nothing

WshShell-Objekt


Save-Methode

Speichert ein Verknüpfungsobjekt auf einem Datenträger.

object.Save

Argumente

object
WshShortcut- oder WshUrlShortcut-Objekt.

Hinweise

Nachdem mit der CreateShortcut-Methode ein Verknüpfungsobjekt erstellt wurde und seine Eigenschaften festgelegt wurden, muss die Save-Methode verwendet werden, um das Verknüpfungsobjekt auf einem Datenträger zu speichern. Die Save-Methode verwendet die Informationen in der FullName-Eigenschaft des Verknüpfungsobjekts, um zu bestimmen, an welchem Ort das Verknüpfungsobjekt auf einem Datenträger gespeichert werden soll. Es können nur Verknüpfungen mit Systemobjekten erstellt werden. Hierzu gehören Dateien, Verzeichnisse und Laufwerke (jedoch keine Druckerverknüpfungen oder geplante Tasks).

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung einer einzigen WSF-Datei für zwei Aufträge in verschiedenen Skriptsprachen (VBScript und JScript). Jeder dieser Aufträge erstellt eine Verknüpfung mit dem derzeit ausgeführten Skript und eine URL-Verknüpfung mit www.microsoft.com/germany:

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         strDesktop = WshShell.SpecialFolders("Desktop")
         set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
         oShellLink.TargetPath = WScript.ScriptFullName
         oShellLink.WindowStyle = 1
         oShellLink.Hotkey = "CTRL+SHIFT+F"
         oShellLink.IconLocation = "notepad.exe, 0"
         oShellLink.Description = "Shortcut Script"
         oShellLink.WorkingDirectory = strDesktop
         oShellLink.Save
         set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Microsoft Web Site.url")
         oUrlLink.TargetPath = "http://www.microsoft.com/germany"
         oUrlLink.Save
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         strDesktop = WshShell.SpecialFolders("Desktop");
         var oShellLink = WshShell.CreateShortcut(strDesktop + "\\Shortcut Script.lnk");
         oShellLink.TargetPath = WScript.ScriptFullName;
         oShellLink.WindowStyle = 1;
         oShellLink.Hotkey = "CTRL+SHIFT+F";
         oShellLink.IconLocation = "notepad.exe, 0";
         oShellLink.Description = "Shortcut Script";
         oShellLink.WorkingDirectory = strDesktop;
         oShellLink.Save();
         var oUrlLink = WshShell.CreateShortcut(strDesktop + "\\Microsoft Web Site.url");
         oUrlLink.TargetPath = "http://www.microsoft.com/germany";
         oUrlLink.Save();
      </script>
   </job>
</package>

Siehe auch

Ausführen von Skripts | WshShortcut-Objekt | WshUrlShortcut-Objekt | FullName-Eigenschaft | TargetPath-Eigenschaft | WindowStyle-Eigenschaft | Hotkey-Eigenschaft | IconLocation-Eigenschaft | Description-Eigenschaft | WorkingDirectory-Eigenschaft


SendKeys-Methode

Sendet einen oder mehrere Tastenanschläge an das aktive Fenster (als seien sie auf der Tastatur eingegeben worden).

object.SendKeys(string)

Argumente

object
WshShell-Objekt.
string
Zeichenfolgenwert, der die zu sendenden Tastenanschläge angibt.

Hinweise

Verwenden Sie die SendKeys-Methode, um Tastenanschläge an Anwendungen zu senden, die nicht über eine Automatisierungsschnittstelle verfügen. Die meisten Tastaturzeichen werden durch einen einzigen Tastenanschlag dargestellt. Einige Tastaturzeichen bestehen aus Kombinationen von Tastenanschlägen (beispielsweise STRG+UMSCHALT+POS1). Ein einzelnes Tastaturzeichen wird gesendet, indem das Zeichen selbst als string-Argument gesendet wird. Um beispielsweise den Buchstaben x zu senden, senden Sie das string-Argument "x".

Anmerkung Um ein Leerzeichen zu senden, senden Sie die Zeichenfolge " ".

Mit SendKeys können mehrere Tastenanschläge gleichzeitig gesendet werden. Erstellen Sie hierzu ein Verbundzeichenfolgen-Argument, das eine Folge von Tastenanschlägen darstellt, indem Sie jeden Tastenanschlag in der Folge an den vorherigen anfügen. Um beispielsweise die Tastenanschläge a, b und c zu senden, würden Sie das Zeichenfolgenargument "abc" senden. Die SendKeys-Methode verwendet einige Zeichen als Modifizierer von Zeichen (statt ihre eigentlichen Werte zu verwenden). Diese Menge von Sonderzeichen besteht aus Klammern, eckigen Klammern, geschweiften Klammern und folgenden Zeichen:

  • Pluszeichen "+",
  • Zirkumflexzeichen "^",
  • Prozentzeichen "%",
  • Tilde "~".

Senden Sie diese Zeichen, indem Sie sie in geschweifte Klammern "{}" einschließen. Um beispielsweise das Pluszeichen zu senden, senden Sie das Zeichenfolgenargument "{+}". Eckige Klammern "[ ]" haben bei der Verwendung mit SendKeys keine spezielle Bedeutung, aber sie müssen in geschweifte Klammern eingeschlossen werden, um in Anwendungen verarbeitet werden zu können, bei denen sie doch eine spezielle Bedeutung haben (beispielsweise für den dynamischen Datenaustausch [Dynamic Data Exchange, DDE]).

  • Sollen Zeichen für eckige Klammern gesendet werden, senden Sie das Zeichenfolgenargument "{[}" für die eckige Klammer links und "{]}" für die eckige Klammer rechts.
  • Sollen Zeichen für geschweifte Klammern gesendet werden, senden Sie das Zeichenfolgenargument "{{}" für die geschweifte Klammer links und "{}}" für die geschweifte Klammer rechts.

Einige Tastenanschläge (z. B. die EINGABETASTE und TAB) erzeugen keine Zeichen. Einige Tastenanschläge (z. B. die RÜCKTASTE und UNTBR) stellen Aktionen dar. Sollen diese Arten von Tastenanschlägen gesendet werden, senden Sie die in der folgenden Tabelle aufgeführten Argumente:

Taste | Argument
RÜCKTASTE | {BACKSPACE}, {BS} oder {BKSP}
UNTBR | {BREAK}
FESTSTELLTASTE | {CAPSLOCK}
ENTF oder RÜCKSCHRITTTASTE | {DELETE} or {DEL}
NACH-UNTEN-TASTE | {DOWN}
ENDE | {END}
EINGABETASTE | {ENTER} or ~
ESC | {ESC}
HILFE | {HELP}
POS1 | {HOME}
EINFG | {INSERT} or {INS}
NACH-LINKS-TASTE | {LEFT}
NUM | {NUMLOCK}
BILD-AB | {PGDN}
BILD-AUF | {PGUP}
DRUCK | {PRTSC}
NACH-RECHTS-TASTE | {RIGHT}
ROLLEN | {SCROLLLOCK}
TAB | {TAB}
NACH-OBEN-TASTE | {UP}
F1 | {F1}
F2 | {F2}
F3 | {F3}
F4 | {F4}
F5 | {F5}
F6 | {F6}
F7 | {F7}
F8 | {F8}
F9 | {F9}
F10 | {F10}
F11 | {F11}
F12 | {F12}
F13 | {F13}
F14 | {F14}
F15 | {F15}
F16 | {F16}

Sollen Tastaturzeichen gesendet werden, die aus einem normalen Tastenanschlag in Verbindung mit der UMSCHALTTASTE, STRG oder ALT bestehen, erstellen Sie ein Verbundzeichenfolgen-Argument, das die Tastenanschlagkombination darstellt. Dies wird erreicht, indem vor den normalen Tastenanschlag eines oder mehrere der folgenden Sonderzeichen gesetzt wird:

Taste | Sonderzeichen
UMSCHALTTASTE | +
STRG | ^
ALT | %
Anmerkung Bei dieser Verwendung werden diese Sonderzeichen nicht in ein Paar von geschweiften Klammern eingeschlossen.

Soll angegeben werden, dass eine Kombination aus der UMSCHALTTASTE, STRG und ALT gedrückt bleiben soll, während mehrere andere Tasten gedrückt werden, erstellen Sie ein Verbundzeichenfolgen-Argument, bei dem die geänderten Tastenanschläge in Klammern eingeschlossen sind. Soll beispielsweise eine Tastenanschlagkombination gesendet werden, bei der die UMSCHALTTASTE gedrückt bleiben soll, senden Sie folgende Zeichenfolgenargumente:

  • Sollen bei gedrückter UMSCHALTTASTE e und c gedrückt werden, senden Sie das Zeichenfolgenargument "+(ec)".
  • Soll bei gedrückter UMSCHALTTASTE e gedrückt und von einem einzelnen c (ohne UMSCHALTTASTE) gefolgt werden, senden Sie das Zeichenfolgenargument "+ec".

Mit der SendKeys-Methode kann ein Muster von Tastenanschlägen gesendet werden, das aus einem einzelnen Tastenanschlag besteht, der mehrmals hintereinander gedrückt wird. Erstellen Sie hierzu ein Verbundzeichenfolgen-Argument, das den zu wiederholenden Tastenanschlag angibt, gefolgt von der gewünschten Anzahl der Wiederholungen. Verwenden Sie hierzu ein Verbundzeichenfolgen-Argument in der Form {Tastenanschlag Anzahl}. Soll beispielsweise der Buchstabe "x" zehn Mal gesendet werden, senden Sie das Zeichenfolgenargument "{x 10}". Stellen Sie sicher, dass sich zwischen dem Tastenanschlag und der Anzahl ein Leerzeichen befindet.

Anmerkung Die einzigen Tastenanschlagsmuster, die gesendet werden können, sind solche aus einem einzelnen Tastenanschlag, der mehrere Male gedrückt wird. Beispielsweise kann "x" zehn Mal gesendet werden, nicht jedoch "Strg+x".
Anmerkung Die DRUCK-Taste {PRTSC} kann nicht an eine Anwendung gesendet werden.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung einer einzigen WSF-Datei für zwei Aufträge in verschiedenen Skriptsprachen (VBScript und JScript). Jeder Auftrag führt den Windows-Rechner aus und sendet Tastenanschläge an ihn, um eine einfache Berechnung auszuführen.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         WshShell.Run "calc"
         WScript.Sleep 100
         WshShell.AppActivate "Calculator"
         WScript.Sleep 100
         WshShell.SendKeys "1{+}"
         WScript.Sleep 500
         WshShell.SendKeys "2"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 500
         WshShell.SendKeys "*3"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 2500
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         WshShell.Run("calc");
         WScript.Sleep(100);
         WshShell.AppActivate("Calculator");
         WScript.Sleep(100);
         WshShell.SendKeys ("1{+}");
         WScript.Sleep(500);
         WshShell.SendKeys("2");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(500);
         WshShell.SendKeys("*3");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(2500);
      </script>
   </job>
</package>

WshShell-Objekt | Run-Methode


SetDefaultPrinter-Methode

Weist einem Remotedrucker die Rolle des Standarddruckers zu.

object.SetDefaultPrinter(strPrinterName)

Argumente

object
WshNetwork-Objekt.
strPrinterName
Zeichenfolgenwert, der den UNC-Namen des Remotedruckers angibt.

Hinweise

Die SetDefaultPrinter-Methode schlägt fehl, wenn eine DOS-basierte Druckerverbindung verwendet wird. Die SetDefaultPrinter-Methode kann nicht verwendet werden, um den Namen des aktuellen Standarddruckers zu bestimmen.

Beispiel

Im folgenden Code wird die AddWindowsPrinterConnection-Methode verwendet, um einen Netzwerkdrucker zu verbinden und ihn als Standarddrucker festzulegen.

[VBScript]
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\research\library1"
WshNetwork.AddWindowsPrinterConnection PrinterPath
WshNetwork.SetDefaultPrinter PrinterPath
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
var PrinterPath = "\\\\research\\library1";
WshNetwork.AddWindowsPrinterConnection(PrinterPath);
WshNetwork.SetDefaultPrinter(PrinterPath);

Siehe auch

WshNetwork-Objekt | AddPrinterConnection-Methode | AddWindowsPrinterConnection-Methode | EnumPrinterConnections-Methode | RemovePrinterConnection-Methode


ShowUsage-Methode

Bewirkt, dass ein Skript durch Anzeigen von Informationen zu seiner Verwendung selbstdokumentierend wird.

object.ShowUsage

Parameter

object
WScript-Objekt.

Hinweise

Beim Ausführen der ShowUsage-Methode wird ein Hilfebildschirm (als "Verwendung" bezeichnet) angezeigt, der Details zu den Befehlszeilenoptionen des Skripts anzeigt. Diese Informationen stammen aus dem Laufzeitabschnitt der WSF-Datei. Der gesamte Text zwischen den Tags <runtime> und </runtime> wird zusammengesetzt und ergibt eine so genannte "Verwendungsanweisung". Die Verwendungsanweisung teilt dem Benutzer mit, wie das Skript verwendet wird.

Anmerkung Die Informationen zur Verwendung können auch mit Hilfe des Schalters /? angezeigt werden.

Beispiel

Das folgende Beispiel veranschaulicht, wie Informationen zur Verwendung in einer WSF-Skriptdatei eingerichtet werden.

<job>
    <runtime>
        <description>This script reboots a server</description>
        <named
            name = "Server"
            helpstring = "Server, auf dem das Skript ausgeführt werden soll"
            type = "string"
            required = "true"
        />
        <example>Example: reboot.wsf /server:scripting</example>
    </runtime>
<script language="VBScript">

If WScript.Arguments.Count <> 1 Then
   WScript.Arguments.ShowUsage
   WScript.Quit
End If

</script>
</job>

The JScript code for the equivalent script block would be:

if (WScript.Arguments.length != 1)
{
   WScript.Arguments.ShowUsage();
   WScript.Quit();

}

Das Aufrufen der ShowUsage-Methode aus diesem Skript bewirkt folgende Ausgabe:

Dieses Skript startet einen Server neu
Verwendung: reboot.wsf /server:value

Optionen:

server : Server, auf dem das Skript ausgeführt werden soll
Beispiel:
reboot.wsf /server:scripting

WScript-Objekt


Sign-Methode

Signiert ein in einer Zeichenfolge gespeichertes Skript.

Object.Sign (FileExtension, Text, Certificate, Store)

Argumente

Object
Scripting.Signer
FileExtension
Eine Zeichenfolge, die den Skripterweiterungstyp bezeichnet (VBS, JS oder WSF). So wird ein Mechanismus bereitgestellt, durch den das Betriebssystem den Typ der zu überprüfenden Skriptdatei ermitteln kann.
Text
Eine Zeichenfolge, die das zu signierende Skript enthält.
Certificate
Eine Zeichenfolge, die den Zertifikatnamen des Autors bezeichnet.
Store
Optional. Eine Zeichenfolge, die den Namen des Zertifikatspeichers bezeichnet. In der Regel befinden sich Zertifikate mit privaten Schlüsseln - also Zertifikate, die Sie für das Signieren von Code verwenden - in einem Zertifikatspeicher namens "my". Der Standardwert ist "my".

Hinweise

Die Sign-Methode wird zum digitalen Signieren eines in einer Zeichenfolge gespeicherten Skripts verwendet. Um eine digitale Signatur zu erstellen, muss der Aufrufer über ein gültiges Zertifikat verfügen.

Beispiel

Dim Signer, UnsignedText, SignedText
Set Signer = CreateObject("Scripting.Signer")
UnsignedText = _
     "Dim X " & vbCrLf & _
     "X = 123" & vbCrLf & _
     "WScript.Echo X" & vbCrLf
SignedText = Signer.Sign(".VBS", UnsignedText, "Name Ihres Zertifikats")

Siehe auch

Scripting.Signer-Objekt | SignFile-Methode | Verify-Methode | VerifyFile-Methode | Signieren eines Skripts


SignFile-Methode

Signiert ein Skript unter Verwendung einer digitalen Signatur.

Object.SignFile (FileName, Certificate, Store)

Argumente

object
Scripting.Signer
FileName
Eine Zeichenfolge, die den Namen der Skriptdatei enthält.
Certificate
Eine Zeichenfolge, die den Zertifikatnamen des Autors bezeichnet.
Store
Eine optionale Zeichenfolge, die den Namen des Zertifikatspeichers bezeichnet. In der Regel befinden sich Zertifikate mit privaten Schlüsseln - also Zertifikate, die Sie für das Signieren von Code verwenden - in einem Zertifikatspeicher namens ///"my". Der Standardwert ist "my".

Hinweise

Um mit einer digitalen Signatur zu signieren, muss der Autor über ein gültiges Zertifikat verfügen.

Beispiel

Im folgenden Beispiel wird nicht nur die Überprüfung der Signatur, sondern auch das Befehlszeilenargument veranschaulicht.

<job>
<runtime>
<named name="file" helpstring="die zu signierende Datei" required="true" type="string"/>
<named name="cert" helpstring="der Name des signierenden Zertifikats" required="true" type="string"/>
<named name="store" helpstring="der Name des Zertifikatspeichers" required="false" type="string"/>
</runtime>
<script language="vbscript">
Dim Signer, File, Cert, Store
If Not (WScript.Arguments.Named.Exists("cert") And WScript.Arguments.Named.Exists("file")) Then
     WScript.Arguments.ShowUsage
     WScript.Quit
End If
Set Signer = CreateObject("Scripting.Signer")
File  = WScript.Arguments.Named("file")
Cert  = WScript.Arguments.Named("cert")
If WScript.Arguments.Named.Exists("store") Then
     Store = WScript.Arguments.Named("store")
Else
     Store = "my"
End If
Signer.SignFile File, Cert, Store
</script>
</job>

Siehe auch

Scripting.Signer-Objekt | Sign-Methode | Verify-Methode | VerifyFile-Methode| Signieren eines Skripts


Skip-Methode (Windows Script Host)

Windows Script Host

Skip-Methode

Überspringt eine angegebene Anzahl von Zeichen beim Lesen aus einem Eingabetext-Datenstrom.

object.Skip(characters)

Argumente

object
StdIn-Textdatenstrom-Objekt.
characters
Ganzzahliger Wert, der die Anzahl der zu überspringenden Zeichen angibt.

Hinweise

Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird der Fehler "Ungültiges Handle" zurückgegeben. Der Positionszeiger wird um die im Argument characters angegebene Anzahl von Zeichen (Bytes) vorwärts bewegt. Die Skip-Methode kann nicht verwendet werden, um rückwärts durch eine Datei zu springen (negative Zeichenwerte werden nicht unterstützt). Die Skip-Methode ist nur auf den Modus "Öffnen zum Lesen" beschränkt (beim Schreiben in einen Ausgabedatenstrom kann nicht eine angegebene Anzahl von Zeichen übersprungen werden).

Beispiel

Der folgende Code verwendet die Skip-Methode, um das erste Zeichen in einem Textdatenstrom zu überspringen, eine Zeile von der Tastatur zu lesen und es in den StdOut-Textdatenstrom zu schreiben.

[VBScript]
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\research\library1"
WshNetwork.AddWindowsPrinterConnection PrinterPath
WshNetwork.SetDefaultPrinter PrinterPath
[JScript]
var WshNetwork = WScript.CreateObject("WScript.Network");
var PrinterPath = "\\\\research\\library1";
WshNetwork.AddWindowsPrinterConnection(PrinterPath);
WshNetwork.SetDefaultPrinter(PrinterPath);

StdIn-Eigenschaft


SkipLine-Methode (Windows Script Host)

Windows Script Host

SkipLine-Methode

Überspringt die nächste Zeile beim Lesen aus einem Eingabetext-Datenstrom.

object.SkipLine

Argumente

object
StdIn-Textdatenstrom-Objekt.

Hinweise

Eine Zeile ist eine Folge von Zeichen, die mit einem Zeilenumbruchzeichen endet. Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird der Fehler "Ungültiges Handle" zurückgegeben. Der Positionszeiger wird auf die Position direkt nach dem nächsten Zeilenumbruchzeichen vorwärts bewegt. Die SkipLine-Methode kann nicht verwendet werden, um rückwärts durch eine Datei zu springen. Die SkipLine-Methode ist nur auf den Modus Öffnen zum Lesen beschränkt (beim Schreiben in einen Ausgabedatenstrom können keine Zeilen übersprungen werden).

Beispiel

Der folgende Code veranschaulicht die SkipLine-Methode.

[VBScript]
Dim StdIn, StdOut, Str1, Str2

Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut

Str1 = ""
Str2 = ""

For i = 0 to 4
   StdIn.SkipLine
Next

i = 0
Do While Not StdIn.AtEndOfStream
     If i >= 2 Then
          StdOut.WriteLine Str1
     End If
     i = i + 1
     Str1 = Str2
     Str2 = StdIn.ReadLine
Loop
[JScript]
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;
var str1, str2 = "";
var i;
for (i = 0; i < 5; i++)
     stdin.SkipLine();
i = 0;
while (!stdin.AtEndOfStream)
{
     if (i++ >= 2)
     {
          stdout.WriteLine(str1);
     }
     str1 = str2;
     str2 = stdin.ReadLine();
}

StdIn-Eigenschaft


Sleep-Methode

Unterbricht die Skriptausführung für einen angegebenen Zeitraum und setzt anschließend die Ausführung fort.

object.Sleep(intTime)

Argumente

object
WScript-Objekt.
intTime
Ganzzahliger Wert, der das Intervall (in Millisekunden) angibt, während dessen der Skriptprozess inaktiv sein soll.

Hinweise

Der das Skript ausführende Thread wird unterbrochen und gibt seine CPU-Nutzung frei. Die Ausführung wird fortgesetzt, sobald das Intervall abgelaufen ist. Die Verwendung der Sleep-Methode kann hilfreich sein, wenn asynchrone Vorgänge oder mehrere Prozesse ausgeführt werden oder wenn das Skript Code enthält, der durch ein Ereignis ausgelöst wird. Um von einem Ereignis ausgelöst werden zu können, muss ein Skript ständig aktiv sein (nach der Beendigung der Ausführung erkennt ein Skript auf keinen Fall ein Ereignis). Vom Skript behandelte Ereignisse werden während des Ruhezustandes dennoch ausgeführt.

Anmerkung Das Übergeben von 0 oder -1 an die Sleep-Methode bewirkt nicht, dass das Skript unendlich lange unterbrochen wird.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung einer einzigen WSF-Datei für zwei Aufträge in verschiedenen Skriptsprachen (VBScript und JScript). Die Funktionalität ist bei beiden Aufträgen gleich - jeder Auftrag führt den Windows-Rechner aus und sendet Tastenanschläge an ihn, um eine einfache Berechnung auszuführen.

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         WshShell.Run "calc"
         WScript.Sleep 100
         WshShell.AppActivate "Calculator"
         WScript.Sleep 100
         WshShell.SendKeys "1{+}"
         WScript.Sleep 500
         WshShell.SendKeys "2"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 500
         WshShell.SendKeys "*3"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 2500
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         WshShell.Run("calc");
         WScript.Sleep(100);
         WshShell.AppActivate("Calculator");
         WScript.Sleep(100);
         WshShell.SendKeys("1{+}");
         WScript.Sleep(500);
         WshShell.SendKeys("2");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(500);
         WshShell.SendKeys("*3");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(2500);
      </script>
   </job>
</package>

Ausführen von Skripts | WScript-Objekt


Terminate-Methode (WshScriptExec)

Weist das Skriptmodul an, den durch die Exec-Methode gestarteten Prozess zu beenden.

object.Terminate

Argumente

object
WshScriptExec-Objekt.

Hinweise

Die Terminate-Methode gibt keinen Wert zurück. Verwenden Sie die Terminate-Methode nur als letzte Möglichkeit, da einige Anwendungen keinen ordnungsgemäßen Cleanup ausführen. Als Faustregel sollte der Prozess normal ausgeführt werden und von selbst enden. Die Terminate-Methode versucht, einen Prozess mit Hilfe der WM_CLOSE-Meldung zu beenden. Falls dies nicht funktioniert, wird der Prozess sofort und ohne Durchlaufen des normalen Vorgangs zum Herunterfahren beendet.

Beispiel

Das folgende JScript-Beispiel veranschaulicht, wie ein derzeit ausgeführtes Skript mit der Terminate-Methode angehalten werden kann.

var aScript = WScript.Exec("%comspec% /c myScript.js");
aScript.Terminate();

WshScriptExec-Objekt


Verify-Methode

Überprüft die als Zeichenfolge abgerufene digitale Signatur.

object.Verify (FileExtension, Text, ShowUI)

Argumente

object
Scripting.Signer
FileExtension
Eine Zeichenfolge, die den Skripterweiterungstyp bezeichnet (VBS, JS oder WSF). So wird ein Mechanismus bereitgestellt, durch den das Betriebssystem den Typ der zu überprüfenden Skriptdatei ermitteln kann.
Text
Der zu überprüfende Text.
ShowUI
Boolescher Wert. Ist der Wert des ShowUI-Arguments False, ermittelt das Scripting.Signer-Objekt, ob die Signatur von einer vertrauenswürdigen Quelle bereitgestellt wurde, ohne den Benutzer zu informieren. Wenn der Wert True ist, kann das Scripting.Signer-Objekt Dialogfelder erstellen, in die der Benutzer weitere Informationen eingeben muss, falls nicht ausreichend Informationen vorliegen, um die Vertrauenswürdigkeit festzustellen.
Anmerkung Bei einigen Betriebssystemen wird auch dann ein Dialogfeld erstellt, wenn das Flag gesetzt ist, die Datei vertrauenswürdig ist, Sie jedoch die Option "... immer vertrauen" noch nicht aktiviert haben.

Hinweise

Die Verify-Methode wird zur Überprüfung eines in einer Zeichenfolge gespeicherten digital signierten Skripts verwendet.

Beispiel

In diesem Beispiel ermittelt die Verify-Methode, ob das Skript in der UnsignedText-Variablen vertrauenswürdig ist. (In diesem Beispiel fehlt die digitale Signatur, deshalb wird der Benutzer vom Scripting.Signer-Objekt gefragt, ob die Vertrauenswürdigkeit erweitert werden soll.)

Dim Signer, UnsignedText, Trusted
Set Signer = CreateObject("Scripting.Signer")
UnsignedText = _
     "Dim X " & vbCrLf & _
     "X = 123" & vbCrLf & _
     "WScript.Echo X" & vbCrLf
Trusted = Signer.Verify(".VBS", UnsignedText, True)

Siehe auch

Scripting.Signer-Objekt | VerifyFile-Methode| Sign-Methode | SignFile-Methode | Verifizieren eines Skripts


VerifyFile-Methode

Überprüft die in ein Skript eingekapselte digitale Signatur.

Object.VerifyFile (FileName, ShowUI)

Argumente

Object
Scripting.Signer
FileName
Eine Zeichenfolge, die den Namen der Skriptdatei enthält.
ShowUI
Boolescher Wert. Ist der Wert des ShowUI-Arguments False, ermittelt das Scripting.Signer-Objekt, ob die Signatur von einer vertrauenswürdigen Quelle bereitgestellt wurde, ohne den Benutzer zu informieren. Wenn der Wert True ist, kann das Scripting.Signer-Objekt Dialogfelder erstellen, in die der Benutzer weitere Informationen eingibt, falls nicht ausreichend Informationen vorliegen, um die Vertrauenswürdigkeit festzustellen.
Anmerkung Bei einigen Betriebssystemen wird auch dann ein Dialogfeld erstellt, wenn das Flag gesetzt ist, die Datei vertrauenswürdig ist, Sie jedoch die Option "... immer vertrauen" noch nicht aktiviert haben.

Beispiel

Im folgenden Beispiel wird die Überprüfung der Signatur mit Hilfe der Verarbeitungsfeatures der Befehlszeilenargumente veranschaulicht.

<job>
<runtime>
<named name="file" helpstring="die zu signierende Datei" required="true" type="string"/>
<named name="UI" helpstring="Benutzeroberfläche für nicht vertrauenswürdige Skripts ausgeben" required="false"/>
</runtime>
<script language="vbscript">
Dim Signer, File, UI, OK
If Not WScript.Arguments.Named.Exists("file") Then
     WScript.Arguments.ShowUsage
     WScript.Quit
End If
Set Signer = CreateObject("Scripting.Signer")
File = WScript.Arguments.Named("file")
UI   = WScript.Arguments.Named.Exists("ui")
OK = Signer.VerifyFile(File, UI)
If OK Then
     WScript.Echo File & " ist vertrauenswürdig."
Else
     WScript.Echo File & " ist NICHT vertrauenswürdig."
End If
</script>
</job>

Siehe auch

Scripting.Signer-Objekt | Verify-Methode | Sign-Methode | SignFile-Methode | Verifizieren eines Skripts


Write-Methode (Windows Script Host)

Windows Script Host

Write-Methode

Sendet eine Zeichenfolge an einen Ausgabedatenstrom.

object.Write(strText)

Argumente

object
StdOut- oder StdErr-Textdatenstrom-Objekt.
strText
Zeichenfolgenwert, der den Text angibt, der in den Datenstrom geschrieben werden soll.

Hinweise

Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird der Fehler "Ungültiges Handle" zurückgegeben. Der Positionszeiger wird auf die Position unmittelbar nach dem letzten Zeichen in strText bewegt.

Beispiel

Der folgende Code veranschaulicht die Verwendung der Write-Methode.

[VBScript]
Dim strInput
strInput = WScript.StdIn.ReadAll
WScript.StdOut.Write strInput
[JScript]
var strInput = WScript.StdIn.ReadAll();
WScript.StdOut.Write(strInput);

StdErr-Eigenschaft | StdOut-Eigenschaft


WriteBlankLines-Methode (Windows Script Host)

Windows Script Host

WriteBlankLines-Methode

Sendet eine angegebene Anzahl von leeren Zeilen (Zeilenumbruchzeichen) an einen Ausgabedatenstrom.

object.WriteBlankLines(intLines)

Argumente

object
StdOut- oder StdErr-Textdatenstrom-Objekt.
intLines
Ganzzahliger Wert, der die Anzahl von leeren Zeilen angibt, die in den Datenstrom geschrieben werden sollen.

Hinweise

Das Aufrufen der WriteLine-Methode ohne Angabe des strText-Arguments entspricht dem Aufrufen von WriteBlankLines(1). Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird der Fehler "Ungültiges Handle" zurückgegeben.

Beispiel

Der folgende Code veranschaulicht die WriteBlankLines-Methode.

[VBScript]
Dim StdIn, StdOut
Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut

Do While Not StdIn.AtEndOfStream
     str = StdIn.ReadLine
     StdOut.Write "Zeile " & (StdIn.Line - 1) & ": " & str
     StdOut.WriteBlankLines 1
Loop
[JScript]
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;

while (!stdin.AtEndOfStream)
{
     var str = stdin.ReadLine();
     stdout.Write("Zeile " + (stdin.Line - 1) + ": " + str);
     stdout.WriteBlankLines(1);
}

StdErr-Eigenschaft | StdOut-Eigenschaft | WriteLine-Methode


WriteLine-Methode (Windows Script Host)

Windows Script Host

WriteLine-Methode

Sendet eine Zeichenfolge mit einem Zeilenumbruchzeichen an einen Ausgabedatenstrom.

object.WriteLine([strText])

Argumente

object
StdOut- oder StdErr-Textdatenstrom-Objekt.
strText
Optional. Zeichenfolgenwert, der den Text angibt, der in den Datenstrom geschrieben werden soll. Wird dieses Argument ausgelassen, wird ein Zeilenumbruchzeichen in den Ausgabedatenstrom geschrieben.

Hinweise

Die WriteLine-Methode fügt stets ein Zeilenumbruchzeichen an die Zeichenfolge an. Das Aufrufen der WriteLine-Methode ohne Angabe des strText-Arguments entspricht dem Aufrufen von WriteBlankLines(1). Die Eigenschaften und Methoden von StdIn, StdOut und StdErr sind nur funktionsfähig, wenn das Skript mit der auf dem Host ausführbaren Datei CScript.exe ausgeführt wird. Wenn das Skript mit WScript.exe ausgeführt wird, wird der Fehler "Ungültiges Handle" zurückgegeben. Eine Zeile ist eine Folge von Zeichen, die mit einem Zeilenumbruchzeichen endet.

Beispiel

Der folgende Code veranschaulicht die WriteLine-Methode.

[VBScript]
Dim StdIn, StdOut
Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut

Do While Not StdIn.AtEndOfStream
     str = StdIn.ReadLine
     StdOut.WriteLine "Zeile " & (StdIn.Line - 1) & ": " & str
Loop
[JScript]
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;

while (!stdin.AtEndOfStream)
{
     var str = stdin.ReadLine();
     stdout.WriteLine("Zeile " + (stdin.Line - 1) + ": " + str);
}

Siehe auch

StdErr-Eigenschaft | StdOut-Eigenschaft | WriteBlankLines-Methode


Ereignisse (Windows Script Host)

Windows Script Host

Ereignisse

In diesem Abschnitt

End-Ereignis
Signalisiert dem Skriptmodul, die Ausführung eines Remoteskriptobjekts zu beenden.
Error-Ereignis
Signalisiert dem Skriptmodul, die Ausführung eines Remoteskriptobjekts zu beenden, wenn das Remoteskript aufgrund eines Fehlers vorzeitig abgebrochen wird.
Start-Ereignis
Signalisiert dem Skriptmodul, die Ausführung eines Remoteskriptobjekts zu beginnen.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


End-Ereignis

Ereignis, das nach dem Beenden der Ausführung des Remoteskripts ausgelöst wird.

Object_end

Parameter

object
WshRemote object.

Hinweise

Das End-Ereignis wird nach der Ausführung des Remote-Skriptobjekts ausgelöst. Dies kann bei regulärem Beenden, bei Timeout oder bei frühzeitigem Beenden aufgrund eines Fehlers des Remote-Skriptobjekts sein.

Beispiel

var WshController = new ActiveXObject("WSHController");
var RemoteProc = WshController.CreateScript("foo.wsf", "remotemachine");
WScript.ConnectObject(RemoteProc, "RemoteProc_");
var Done = false;
RemoteProc.Execute();
while (!Done)
   WScript.Sleep(100);

function RemoteProc_End()
{
   WScript.Echo("Der Prozess wurde beendet");
   Done = true;
}

function RemoteProc_Error()
{
   WScript.Echo("Ein Fehler ist aufgetreten: " + RemoteProc.Error.Description);
   Done = true;
}

function RemoteProc_Start()
{
   WScript.Echo("Der Prozess hat begonnen");
}

Siehe auch

WshController-Objekt | WshRemote-Objekt | Status-Eigenschaft | Error-Eigenschaft | Execute-Methode | Terminate-Methode | Start-Ereignis | Error-Ereignis


Error-Ereignis

Ereignis, das ausgelöst wird, wenn ein Fehler im Remoteskript auftritt.

Object_Error

Parameter

object
WshRemote object.

Hinweise

Das Remote-Skriptobjekt löst das Error-Ereignis aus, wenn das Remoteskript verfrüht beendet wird. Die Error-Eigenschaft enthält das WshRemoteError-Objekt (das Informationen zu dem Fehler enthält, der zum frühzeitigen Beenden des Remoteskripts führte).

Beispiel

var WshController = new ActiveXObject("WSHController");
var RemoteProc = WshController.CreateScript("foo.wsf", "remotemachine");
WScript.ConnectObject(RemoteProc, "RemoteProc_");
var Done = false;
RemoteProc.Execute();
while (!Done)
   WScript.Sleep(100);

function RemoteProc_End()
{
   WScript.Echo("Der Prozess wurde beendet"");
   Done = true;
}

function RemoteProc_Error()
{
   WScript.Echo("Ein Fehler ist aufgetreten: " + RemoteProc.Error.Description);
   Done = true;
}

function RemoteProc_Start()
{
   WScript.Echo("Der Prozess hat begonnen");
}

Siehe auch

WshController-Objekt| WshRemote-Objekt| WshRemoteError-Objekt| Status-Eigenschaft| Error-Eigenschaft| Execute-Methode| Terminate-Methode | Start-Ereignis| End-Ereignis


Start-Ereignis

Ereignis, das zu Beginn der Ausführung des Remoteskripts ausgelöst wird.

Object_Start

Parameter

object
WshRemote object.

Hinweise

Das Start-Ereignis wird ausgelöst, wenn die Execute-Methode aufgerufen wird.

Beispiel

var WshController = new ActiveXObject("WSHController");
var RemoteProc = WshController.CreateScript("foo.wsf", "remotemachine");
WScript.ConnectObject(RemoteProc, "RemoteProc_");
var Done = false;
RemoteProc.Execute();
while (!Done)
   WScript.Sleep(100);

function RemoteProc_End()
{
   WScript.Echo("Der Prozess wurde beendet"");
   Done = true;
}

function RemoteProc_Error()
{
   WScript.Echo("Ein Fehler ist aufgetreten: " + RemoteProc.Error.Description);
   Done = true;
}

function RemoteProc_Start()
{
   WScript.Echo("Der Prozess hat begonnen");
}

Siehe auch

WshController-Objekt| WshRemote-Objekt| Status-Eigenschaft| Error-Eigenschaft| Execute-Methode| Terminate-Methode| End-Ereignis| Error-Ereignis


Fehlermeldungen

In diesem Abschnitt

Im Folgenden sind die Fehlermeldungen aufgeführt, die beim Ausführen von Skripts in der Windows Script Host 5.6-Umgebung auftreten können.

Die Option //E benötigt den Namen des Skriptmoduls.

Die Option //H benötigt den Namen des Hosts.

Die Option //T benötigt den Timeout-Wert.

Es wurde ein doppelt vorhandener Name für ein benanntes oder unbenanntes Element gefunden.

Ein Versuch, Ihre Einstellungen über die Option //S zu speichern, ist fehlgeschlagen.

Script Host-Standard <Hostname> kann nicht geändert werden.

Skriptmodul <Modulname> für Skript wurde nicht gefunden.

Die Skriptdatei <Skriptdateiname> wurde nicht gefunden.

Das Skript kann nicht von stdin gelesen werden.

Die Einstellungen wurden nicht gespeichert.

Befehlszeilenoptionen-Konflikt.

Objekt <Objektname> wurde nicht verbunden.

Eine Automatisierungsklasse mit dem Namen <Automatisierungsklassenname> wurde nicht gefunden.

Windows Script Host kann nicht ausgeführt werden.

Der Hostname für die Option //H muss "cscript" oder "wscript" sein.

Windows Script Host wurde nicht initialisiert.

Ungültiger Versuch, Exec ohne einen Befehl aufzurufen.

Ungültiger Pfadname.

Ungültige Wurzel in Registrierungsschlüssel <Name> zum Lesen.

Ungültige Syntax in URL: <Name>.

Ungültiger Timeout-Wert für die Option //T.

Das Laden des Skripts <Skriptname> ist fehlgeschlagen.

Das Laden Ihrer Einstellungen ist fehlgeschlagen.

Auftragsname fehlt.

Protokollhandler für <Name> wurde nicht gefunden.

Das Remoteskriptobjekt kann nur einmal ausgeführt werden.

Die Skriptausführungszeit wurde bei Skript <Skriptname> überschritten. Die Ausführung von Skript <Skriptname> wurde abgebrochen.

Skripteinstellungsdatei <Einstellungsdateiname> ist ungültig.

Der Pfadname der Verknüpfung muss in .lnk oder .url enden.

<Dateiname> hat keine Dateierweiterung.

Es ist kein Drucker mit dem Namen <Name> vorhanden.

Für die Dateierweiterung <Dateierweiterung> gibt es kein Skriptmodul.

Es wurde keine Skriptdatei angegeben.

Ausführen fehlgeschlagen - Argumentenliste zu lang.

Registrierungsschlüssel <Name> wurde nicht zum Lesen geöffnet.

Umgebungsvariable <Name> wurde nicht entfernt.

Registrierungsschlüssel <Name> wurde nicht entfernt.

Die Verknüpfung <Name> wurde nicht gespeichert.

Das Verknüpfungsziel wurde nicht auf <Name> gesetzt.

In Wsh.log kann nicht geschrieben werden. Bitte wenden Sie sich an Ihren Administrator.

Warten auf Prozess nicht möglich.

Das Remoteskript kann nicht ausgeführt werden.

Der Auftrag <Auftrags-ID> wurde nicht gefunden.

Unicode wird auf dieser Plattform nicht unterstützt.

Es wurde die unbekannte Option <Optionsbezeichnung> angegeben.

Der Zugriff auf Windows Script Host wurde für diesen Computer deaktiviert. Wenden Sie sich an Ihren Administrator, um weitere Details in Erfahrung zu bringen.

Verwandte Abschnitte

WSH-Verzeichnis
Liste von Elementen, aus denen das WSH-Verzeichnis besteht.
WSH-Grundlagen
Lernen Sie die Grundlagen von WSH.


Die Option //H benötigt den Namen des Hosts.

Sie haben keinen Standardhostnamen angegeben.

So beheben Sie diesen Fehler

  • Geben Sie beim Verwenden der Option //H den Standardhostnamen an.

Siehe auch

Der Hostname für die Option //H muss "cscript" oder "wscript" sein.


Die Option //T benötigt den Timeout-Wert.

Sie haben keinen Timeout-Wert für die Option //T eingegeben.

So beheben Sie diesen Fehler

  • Geben Sie einen Timeout-Wert unter Verwendung der Option //T ein.

Siehe auch

Ungültiger Timeout-Wert für die Option //T | Die Skriptausführungszeit wurde bei Skript <Skriptname> überschritten. Die Ausführung von <Skriptname> wurde abgebrochen.


Es wurde ein doppelt vorhandener Name für ein benanntes oder unbenanntes Element gefunden.

Sie versuchen, einem <benannten> oder <unbenannten> Element einen Namen zu geben, der bereits von einem anderen <benannten> oder <unbenannten> Element verwendet wird. Das "name"-Attribut der <benannten> und <unbenannten> Elemente muss während des gesamten <Auftrags> eindeutig sein.

So beheben Sie diesen Fehler

  • Suchen Sie nach einem anderen Namen für das benannte oder unbenannte Element.

Siehe auch

WshArguments-Objekt | WshNamed-Objekt | WshUnnamed-Objekt | <named>-Element


Ein Versuch, Ihre Einstellungen über die Option //S zu speichern, ist fehlgeschlagen.

Dies ist in der Regel erneut ein Systemberechtigungsproblem.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.

Siehe auch

Script Host-Standard <Hostname> kann nicht geändert werden | Festlegen von Skripteigenschaften


Ausführen fehlgeschlagen - Argumentenliste zu lang.

Dieser Fehler tritt im Allgemeinen bei Verwendung des Features Drag & Drop von Windows Script Host auf. Dieser Fehler tritt auf, wenn zu viele Dateien auf einer Windows Script-Datei abgelegt werden.

So beheben Sie diesen Fehler

  • Verkürzen Sie die Argumentliste, indem Sie die Anzahl der per Drag & Drop kopierten Elemente reduzieren.
Anmerkung Die maximal zulässige Befehlszeilenlänge auf Ihrem System bestimmt die Anzahl der Dateien, die Sie per Drag & Drop in ein Skript kopieren können.

  • Drag and Drop Support | Command line option mismatch


In Wsh.log kann nicht geschrieben werden. Bitte wenden Sie sich an Ihren Administrator.

Sie rufen unter Windows 95, Windows 98 und Windows Millennium Edition die LogEvent()-Methode auf, die jedoch fehlschlägt, weil die Datei wsh.log gesperrt ist.

So beheben Sie diesen Fehler

  • Heben Sie die Sperre der Datei wsh.log auf, falls Sie über die geeigneten Berechtigungen verfügen, oder fragen Sie Ihren Systemadministrator.

LogEvent-Methode


Script Host-Standard <Hostname> kann nicht geändert werden.

Dies ist in der Regel ein Systemberechtigungsproblem. Die wahrscheinliche Ursache liegt darin, dass die Systemregistrierung von einem Administrator gesperrt wurde.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.

Siehe auch

Ein Versuch, Ihre Einstellungen über die Option //S zu speichern, ist fehlgeschlagen


Skriptmodul <Modulname> für Skript wurde nicht gefunden.

Dies bedeutet in der Regel, dass das Skriptmodul nicht installiert ist.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.
  • Stellen Sie sicher, dass das betreffende Skriptmodul installiert ist bzw. das korrekte Skriptmodul angegeben wurde.
  • Überprüfen Sie die Schreibweise des Modulnamens.


Die Skriptdatei <Skriptdateiname> wurde nicht gefunden.

Sie haben einen falschen Pfad angegeben, oder die Skriptdatei ist nicht vorhanden.

So beheben Sie diesen Fehler

  • Überprüfen Sie den angegebenen Pfad, und korrigieren Sie ihn.
  • Stellen Sie sicher, dass die Datei tatsächlich vorhanden ist.

Siehe auch

Ungültiger Pfadname.


Das Skript kann nicht von stdin gelesen werden.

Hierbei handelt es sich oft um ein Berechtigungsproblem.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach potenziell schwer wiegenden Netzwerk- oder Sicherheitsproblemen.


Die Einstellungen wurden nicht gespeichert.

Die Steuerungsdatei (WSH) für dieses Skript konnte nicht gespeichert werden.

So beheben Sie diesen Fehler

  • Eventuell versuchen Sie, eine schreibgeschützte Datei, eine Datei, die bereits in einer anderen Anwendung geöffnet ist, oder eine Datei, die von einem Administrator gesperrt wurde, zu speichern.
  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.

Festlegen von Skripteigenschaften


Befehlszeilenoptionen-Konflikt.

Dies bedeutet oft, dass Sie miteinander in Konflikt stehende Argumente angegeben haben. Beispielsweise ist //B (Batchmodus) inkonsistent mit //I (interaktiver Modus).

So beheben Sie diesen Fehler

  • Überprüfen Sie Ihre Argumente auf Konflikte.


Objekt <Objektname> wurde nicht verbunden.

Wahrscheinlich versuchen Sie, Ereignisse mit einem Objekt zu synchronisieren, oder Sie verbinden Ereignisse mit einem Objekt, das diese Objektereignisse nicht annehmen kann.

Beispielsweise kann IE nach seiner Erstellung nicht mit Ereignissen verbunden werden. Objektereignisse müssen mit IE zum Zeitpunkt seiner Erstellung als Objekt als Teil des Erstellungsprozesses verbunden werden.

So beheben Sie diesen Fehler

  • Erstellen Sie das Objekt, und verbinden Sie seine Objektereignisse während des Erstellungsprozesses mit ihm.

<object>-Element | WScript-Objekt


Eine Automatisierungsklasse mit dem Namen <Automatisierungsklassenname> wurde nicht gefunden.

Entweder war das Erstellen einer Automatisierungsklasse nicht erfolgreich, oder die Automatisierungsklasse wurde nicht ordnungsgemäß installiert.

So beheben Sie diesen Fehler

  • Stellen Sie sicher, dass die erstellte Automatisierungsklasse installiert ist.
  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.


Die Option //E benötigt den Namen des Skriptmoduls.

Sie haben kein Skriptmodul unter Verwendung der Option //E bestimmt.

So beheben Sie diesen Fehler

  • Stellen Sie sicher, dass Sie beim Verwenden der Option //E das Skriptmodul bestimmen.

Siehe auch

Für die Dateierweiterung <Dateierweiterung> gibt es kein Skriptmodul.


Umgebungsvariable <Name> wurde nicht entfernt.

Sie rufen die Environment.Remove()-Methode für eine unerkannte Umgebungsvariable auf.

Dieser Fehler tritt in der Regel bei Verwendung der Remove-Methode auf. Falls die Umgebungsvariable nicht existiert oder falsch geschrieben ist, ist das System nicht in der Lage, sie zu entfernen.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Namen der aktuellen Umgebungsvariablen, und stellen Sie sicher, dass sie existieren und die Schreibweise korrekt ist.

Remove-Methode | WshEnvironment-Objekt


Windows Script Host kann nicht ausgeführt werden.

Dies ist in der Regel ein Systemberechtigungsproblem.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach potenziell schwer wiegenden Netzwerk- oder Sicherheitsproblemen.

Das Laden des Skripts <Skriptname> ist fehlgeschlagen


Der Hostname für die Option //H muss "cscript" oder "wscript" sein.

Sie haben beim Verwenden der Option //H als Hostnamen weder "cscript" noch "wscript" angegeben.

So beheben Sie diesen Fehler

  • Geben Sie beim Verwenden der Option //H entweder "cscript" oder "wscript" als Hostnamen an.

Siehe auch

Die Option //H benötigt den Namen des Hosts.


Windows Script Host wurde nicht initialisiert.

Die Initialisierung von Windows Script Host ist fehlgeschlagen.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach potenziell schwer wiegenden Netzwerk- oder Sicherheitsproblemen.


Ungültiger Versuch, Exec ohne einen Befehl aufzurufen.

Sie haben die WshShell.Exec()-Methode aufgerufen, jedoch keinen auszuführenden Befehl bereitgestellt.

So beheben Sie diesen Fehler

  • strCommand ist ein obligatorisches Argument. Es handelt sich um eine Zeichenfolge, die für die Befehlszeile steht, die zur Ausführung des Skripts verwendet wird.

Exec-Methode


Ungültiger Pfadname.

Sie haben einen falschen Pfad angegeben.

So beheben Sie diesen Fehler

  • Überprüfen Sie den angegebenen Pfad, und korrigieren Sie ihn.

Siehe auch

Die Skriptdatei <Skriptdateiname> wurde nicht gefunden.


Der Pfadname der Verknüpfung muss in .lnk oder .url enden.

Sie haben der Verknüpfung entweder keine Dateinamenerweiterung oder eine Dateinamenerweiterung gegeben, die weder LNK noch URL lautet.

Bei Verwendung der CreateShortcut-Methode ist die Dateinamenerweiterung falsch oder fehlt.

So beheben Sie diesen Fehler

  • Stellen Sie sicher, dass die Dateinamenerweiterung der Verknüpfung bei einer Windows-Verknüpfung mit LNK oder bei einer Internetverknüpfung mit URL endet.

WshShortcut-Objekt | WshUrlShortcut-Objekt


Ungültiger Timeout-Wert für die Option //T.

Der Timeout-Wert, den Sie unter Verwendung der Option //T eingegeben haben, ist ungültig. Sie müssen eine nicht negative ganze Zahl für die Option //T bestimmen.

So beheben Sie diesen Fehler

  • Geben Sie einen geeigneten Timeout-Wert unter Verwendung der Option //T ein. Geben Sie für //T eine nicht negative ganze Zahl an.

Siehe auch

Die Option //T benötigt den Timeout-Wert | Die Skriptausführungszeit wurde bei Skript <Skriptname> überschritten. Die Ausführung von <Skriptname> wurde abgebrochen.


Das Laden des Skripts <Skriptname> ist fehlgeschlagen.

Dies ist in der Regel ein Systemberechtigungsproblem. Ihnen wurde der Lesezugriff auf die fragliche Datei verweigert.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach potenziell schwer wiegenden Netzwerk- oder Sicherheitsproblemen.

Das Laden Ihrer Einstellungen ist fehlgeschlagen


Das Laden Ihrer Einstellungen ist fehlgeschlagen.

Dies ist in der Regel ein Systemberechtigungsproblem.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach potenziell schwer wiegenden Netzwerk- oder Sicherheitsproblemen.

Das Laden des Skripts <Skriptname> ist fehlgeschlagen


Auftragsname fehlt.

Sie haben den Auftragsnamen nicht angegeben.

So beheben Sie diesen Fehler

  • Geben Sie den Auftragsnamen an.

Der Auftrag <Auftrags-ID> wurde nicht gefunden


Es ist kein Drucker mit dem Namen <Name> vorhanden.

Die SetDefaultPrinter-Methode akzeptiert nur die Namen der derzeit installierten Drucker. Dieser Fehler tritt in der Regel dann auf, wenn Sie den Druckeranschluss anstelle des Namens des Druckers angeben, oder wenn Sie den Namen eines Druckers angeben, der derzeit nicht installiert ist.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Namen der derzeit installierten Drucker, und stellen Sie sicher, dass der angegebene Drucker tatsächlich installiert ist.
  • Überprüfen Sie die Schreibweise des Druckerpfades auf Tippfehler.
  • Stellen Sie sicher, dass der Netzwerkdrucker online ist.

Siehe auch

SetDefaultPrinter-Methode | EnumPrinterConnections-Methode | AddWindowsPrinterConnection-Methode


Protokollhandler für <Name> wurde nicht gefunden.

Dieser Fehler tritt im Allgemeinen dann auf, wenn die Schreibweise des Protokollhandlers für das URL-Verknüpfungsziel nicht korrekt ist. Die zwei gebräuchlichsten Protokollhandler sind HTTP und FTP.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Schreibweise des Protokollhandlers.

WshUrlShortcut-Objekt


Ungültige Wurzel in Registrierungsschlüssel <Name> zum Lesen.

Sie rufen die Methode RegRead() oder RegWrite() für einen unerkannten Stammregistrierungsschlüssel auf.

Dieser Fehler tritt im Allgemeinen dann auf, wenn die Methode RegRead oder RegWrite mit einem ungültigen Registrierungsschlüssel verwendet wird.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Windows-Registrierung, und stellen Sie sicher, dass der Registrierungsschlüssel existiert und die Schreibweise korrekt ist.

RegRead-Methode | RegWrite-Methode | RegDelete-Methode


Registrierungsschlüssel <Name> wurde nicht zum Lesen geöffnet.

Sie rufen die RegRead()-Methode für einen unerkannten Registrierungsschlüssel auf.

Dieser Fehler tritt im Allgemeinen dann auf, wenn die RegRead-Methode mit einem ungültigen Registrierungsschlüssel verwendet wird.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Windows-Registrierung, und stellen Sie sicher, dass der Registrierungsschlüssel existiert und die Schreibweise korrekt ist.

RegRead-Methode


Registrierungsschlüssel <Name> wurde nicht entfernt.

Sie rufen die RegDelete()-Methode für einen unerkannten Registrierungsschlüssel auf.

Dieser Fehler tritt im Allgemeinen dann auf, wenn die RegDelete-Methode für einen ungültigen Registrierungsschlüssel verwendet wird.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Windows-Registrierung, und stellen Sie sicher, dass der Registrierungsschlüssel existiert und die Schreibweise korrekt ist.

RegDelete-Methode | RegRead-Methode | RegWrite-Methode


Das Remoteskriptobjekt kann nur einmal ausgeführt werden.

Sie versuchen, ein Remoteskriptobjekt erneut auszuführen.

So beheben Sie diesen Fehler

  • Erstellen Sie ein anderes Remoteskriptobjekt und führen Sie dieses anstelle dessen aus.

WshRemote-Objekt


Die Skriptausführungszeit wurde bei Skript <Skriptname> überschritten. Die Ausführung von <Skriptname> wurde abgebrochen.

Das fragliche Skript konnte nicht innerhalb der benutzerdefinierten Ausführungszeit (//T) ausgeführt werden.

So beheben Sie diesen Fehler

  • Führen Sie eine Problembehandlung des Skripts aus, um zu ermitteln, warum es nicht innerhalb des von Ihnen festgelegten Zeitparameters (//T) ausgeführt wird. Entwerfen Sie das Skript neu, damit es schneller ausgeführt wird, und/oder ändern Sie den Zeitparameter (//T).

Siehe auch

Die Option //T benötigt den Timeout-Wert | Ungültiger Timeout-Wert für die Option //T


Skripteinstellungsdatei <Einstellungsdateiname> ist ungültig.

Sie haben eine ungültige Skripteinstellungsdatei verwendet.

So beheben Sie diesen Fehler

  • Erstellen Sie die Skripteinstellungsdatei neu, oder fragen Sie Ihren Systemadministrator.


Ungültige Syntax in URL: <Name>.

Dieser Fehler tritt im Allgemeinen auf, wenn der Text, aus dem sich das URL-Ziel zusammensetzt, fehlerhafte Syntax enthält.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Schreibweise des URL-Zieles auf Tippfehler.

WshUrlShortcut-Objekt


Die Verknüpfung <Name> wurde nicht gespeichert.

Dieser Fehler tritt im Allgemeinen dann auf, wenn der Name der Verknüpfung bereits existiert oder die Verknüpfung eine schreibgeschützte Datei ist.

So beheben Sie diesen Fehler

  • Ändern Sie das Schreibschutzattribut in Lese-/Schreibzugriff.
  • Wählen Sie einen eindeutigen Namen für die Verknüpfung.
  • Ändern Sie den Namen der bestehenden Verknüpfung.

WshShortcut-Objekt | WshUrlShortcut-Objekt


Das Verknüpfungsziel wurde nicht auf <Name> gesetzt.

Dieser Fehler tritt im Allgemeinen dann auf, wenn der Protokollhandler für das URL-Verknüpfungsziel ungültig oder nicht korrekt registriert ist. Die zwei gebräuchlichsten Protokollhandler sind HTTP und FTP.

So beheben Sie diesen Fehler

  • Verwenden Sie einen gültigen Protokollhandler.
  • Überprüfen Sie die Schreibweise des verwendeten Protokollhandlers.
  • Setzen Sie sich mit dem Systemadministrator in Verbindung, um sicherzustellen, dass der Protokollhandler richtig installiert ist.
  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.

WshUrlShortcut-Objekt


<Dateiname> hat keine Dateierweiterung.

Damit ermittelt werden kann, welches Skriptmodul passend ist, benötigt das Programm in der Regel die geeignete Dateierweiterung.

So beheben Sie diesen Fehler

  • Stellen Sie sicher, dass Sie zusammen mit dem Dateinamen eine korrekte Dateierweiterung angeben, die für die zu verwendende Skriptsprache geeignet ist.


Für die Dateierweiterung <Dateierweiterung> gibt es kein Skriptmodul.

Diese Dateierweiterung ist keinem Skriptmodul zugeordnet.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Dateierweiterung sowie die Schreibweise der Bezeichnung der Skriptsprache.
  • Verwenden Sie //E, um ein Skriptmodul zu bestimmen.

Siehe auch

Die Option //E benötigt den Namen des Skriptmoduls.


Es wurde keine Skriptdatei angegeben.

Sie haben keine Skriptdatei angegeben.

So beheben Sie diesen Fehler

  • Geben Sie die entsprechende Skriptdatei an.

Siehe auch

Es wurde die unbekannte Option <Optionsbezeichnung> angegeben


Das Remoteskript kann nicht ausgeführt werden.

Das Skript konnte nicht initialisiert werden.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.

WshRemote-Objekt


Der Auftrag <Auftrags-ID> wurde nicht gefunden.

Sie haben in der Windows Script-Datei (WSF-Datei) auf eine unerkannte Auftrags-ID verwiesen.

So beheben Sie diesen Fehler

  • Überprüfen Sie die Schreibweise der Auftrags-ID auf Tippfehler.

Verwenden von Windows-Skriptdateien | <job>-Element


Warten auf Prozess nicht möglich.

Dieser Fehler tritt im Allgemeinen dann auf, wenn das Skript beim Warten auf einen Prozess, der jedoch keinen Wert zurückgibt (z. B. Warten auf das Ergebnis der Ausführung einer Verknüpfung), nicht mehr reagiert.

So beheben Sie diesen Fehler

  • Führen Sie das Programm direkt aus, statt eine Verknüpfung zu verwenden.
  • Überprüfen Sie die Gültigkeit der Verknüpfung.

Run-Methode


Unicode wird auf dieser Plattform nicht unterstützt.

Die Plattformen Windows 95, Windows 98 und Windows Millennium Edition unterstützen die Verwendung von Unicode nicht.

So beheben Sie diesen Fehler

  • Versuchen Sie nicht, Unicode auf den Plattformen Windows 95, Windows 98 oder Windows Millennium Edition zu verwenden.


Es wurde die unbekannte Option <Optionsbezeichnung> angegeben.

Sie haben eine Option angegeben, die für Windows Script Host ungültig ist.

So beheben Sie diesen Fehler

  • Verwenden Sie die Option von Windows Script Host, die für die verwendete Skriptsprache geeignet ist, oder geben Sie eine andere unterstützte Skriptsprache an.
  • Überprüfen Sie außerdem die Schreibweise der Option.

Es wurde keine Skriptdatei angegeben


Der Zugriff auf Windows Script Host wurde für diesen Computer deaktiviert. Wenden Sie sich an Ihren Administrator, um weitere Details in Erfahrung zu bringen.

Dies ist in der Regel ein Systemberechtigungsproblem.

So beheben Sie diesen Fehler

  • Fragen Sie Ihren Systemadministrator nach möglichen Netzwerk- oder Sicherheitsproblemen.

Windows Script Host kann nicht ausgeführt werden


Script Component-Tutorium

Mithilfe von Microsoft® Windows® Script Component können Sie auf einfache Weise unter Verwendung von Skripterstellungssprachen, wie Microsoft® Visual Basic® Scripting Edition (VBScript) und Microsoft® JScript®, COM-Komponenten erstellen. Skriptkomponenten können als COM-Komponenten in Anwendungen wie Microsoft® Internet-Informationsdienste (IIS), Microsoft® Windows® Script Host und anderen Anwendungen, die COM-Komponenten unterstützen, eingesetzt werden. Die folgende Aufstellung zeigt die in diesem Tutorium besprochenen Themen.

Skriptkomponenten - Übersicht Erfahren Sie, was Skriptkomponenten sind und wie Sie sie nutzen können.

Erstellen von Skriptkomponenten Erstellen von Skriptkomponenten.

Verwenden von Skriptkomponenten Verwenden von Skriptkomponenten in Ihren Anwendungen.

Implementieren von ASP-Skriptkomponenten Erstellen von Skriptkomponenten, die die Funktionalität von Active Server Pages (ASP) integrieren. Auf diese Weise können Sie ASP-Logik isolieren und wiederverwenden.

Implementieren von DHTML-Verhaltens-Skriptkomponenten Erstellen von Skriptkomponenten, die in Microsoft® Internet Explorer 5.0 zum Definieren von Verhalten verwendet werden können.


Skriptkomponenten - Übersicht

Windows® Script Components basiert auf neuentwickelter Technologie, die das Erstellen leistungsstarker, wiederverwendbarer COM-Komponenten mithilfe benutzerfreundlicher Skripterstellungsprachen, wie Microsoft® Visual Basic® Scripting Edition (VBScript) und Microsoft® JScript®, ermöglicht. Die folgenden Themen bieten einen Überblick über die Skriptkomponenten-Technologie und erläutern das Erstellen und Verwenden von Skriptkomponenten.

  • Einführung in Windows Script Components Erfahren Sie, was Skriptkomponenten sind und welche Vorteile sich aus ihrer Verwendung ergeben.
  • Funktionsweise von Skriptkomponenten Lernen Sie die Komponenten der Skriptkomponenten-Technologie und das Erstellen von Skriptkomponenten kennen.


Einführung in Windows Script Components

Windows® Script Components bietet eine sinnvolle Möglichkeit, im Skript leistungsstarke und wiederholt verwendbare COM-Komponenten zu erstellen. Sie können Skriptkomponenten mit einer beliebigen Skripterstellungssprache erstellen, die Microsoft® ActiveX® Scripting-Schnittstellen unterstützt. Zu den diese Schnittstellen unterstützenden Skripterstellungssprachen gehören JScript, Microsoft® Visual Basic® Scripting Edition (VBScript), PERLScript, Pscript und Python.

Anmerkung Weitere Informationen über ActiveX Scripting-Schnittstellen finden Sie auf der Microsoft Scripting-Technologien-Website unter http:/www.microsoft.com/germany/scripting/.

Diese neue Skriptkomponenten-Technologie unterstützt häufig verwendete COM-Komponententypen, wie z. B. die Automatisierung, und kann mit Add-On-Modulen, wie DHTML-Verhalten, erweitert werden.

Vorteile von Skriptkomponenten:

  • Sie sind klein und effizient.
  • Sie können problemlos erstellt, verwaltet und verteilt werden.
  • Sie bieten die Möglichkeit, COM-Komponenten zu erstellen.
  • Sie bieten Zugriff auf viele verschiedene Systemdienste.

Mithilfe von Skriptkomponenten können Sie COM-Komponenten für verschiedene Aufgaben erstellen, z. B. Ausführen von Unternehmensabläufen auf mittlerer Ebene, Zugreifen auf und Bearbeiten von Datenbankdaten, Hinzufügen der Transaktionsverarbeitung zu Anwendungen und Hinzufügen interaktiver Effekte zu Webseiten mittels DHTML-Verhalten.

Siehe auch

Erstellen von Skriptkomponenten | Funktionsweise von Skriptkomponenten


Funktionsweise von Skriptkomponenten

Die Windows® Script Component-Technologie umfasst die folgenden drei Komponenten:

  • Die Skriptkomponenten-Laufzeitbibliothek (Scrobj.dll), die dem Ausführen von COM-Anforderungen in Skripten dient. Im COM-Zusammenhang funktioniert Scrobj.dll als inproc-Server für Skriptkomponenten.
  • Schnittstellenbehandlungsroutinen, bei denen es sich um kompilierte Komponenten handelt, die bestimmte COM-Schnittstellen implementieren. Verschiedene Schnittstellenbehandlungsroutinen, die sofort die Funktion spezieller COM-Komponenten übernehmen können.

    Die am häufigsten verwendeten Schnittstellenbehandlungsroutinen, einschließlich der Schnittstellenbehandlungsroutine COM-Automatisierung, eine ASP-Schnittstellenbehandlungsroutine und eine Behandlungsroutine für DHTML-Verhalten sind bereits in die Skriptkomponenten-Laufzeitbibliothek integriert. Weitere Behandlungsroutinen sind als Add-On-Komponenten verfügbar oder in bestimmte Anwendungen eingebettet.

  • Ihre Skriptkomponentendatei (WSC-Datei). Skriptkomponentendateien sind XML-Dateien (Extensible Markup Language) mit Informationen zu den zu erstellenden Typen von COM-Komponenten (d. h. die zu verwendenden Schnittstellenbehandlungsroutinen). Anschließend schreiben Sie abhängig von der Funktionalität, die durch die Behandlungsroutine zur Verfügung gestellt wird, Skript in die Skriptkomponente, um diese Schnittstellen zu implementieren.

Die Skriptkomponenten-Laufzeitbibliothek dient als Einstiegspunkt für die Hostanwendung. Die Komplexitäten von COM, einschließlich der Implementierung standardmäßiger COM-Schnittstellen wie IUnknown, sind in die verschiedenen Schnittstellenbehandlungsroutinen eingebettet. Eine Skriptkomponente enthält nur das Skript, das zum Implementieren der Funktionalität der COM-Komponente erforderlich ist.

Ein häufig verwendeter COM-Komponententyp ist z. B. die Komponente Automatisierung. Diese umfasst Eigenschaften und Methoden, die in anderen Anwendungen aufgerufen werden können. Die untergeordneten COM-Schnittstellen, die zum Implementieren dieser Funktionalität erforderlich sind, wie z. B. das Übergeben an die korrekte Funktion beim Aufrufen einer Methode, sind in eine Automatisierungs-Schnittstellenbehandlungsroutine integriert. In der Skriptkomponentendatei werden die offen zu legenden Eigenschaften, Methoden und Ereignisse definiert. Anschließend wird durch die Automatisierungs-Behandlungsroutine sichergestellt, dass diese korrekt aufgerufen werden, wenn die Hostanwendung sie benötigt.

Siehe auch

Einführung in Windows Script Components | Erstellen von Skriptkomponenten


Erstellen von Skriptkomponenten

Das Erstellen einer Windows® Script Component-Datei (WSC) entspricht nahezu dem Erstellen anderer Dateien, die Skripte enthalten, einschließlich HTML-Dateien. Unter den folgenden Themen finden Sie Informationen zur Struktur einer Skriptkomponentendatei sowie zum Erstellen von Registrierungsinformationen und Typbibliotheken.

  • Inhalt von Skriptkomponentendateien Hier lernen Sie die XML-Elemente (Extensible Markup Language) kennen, die für eine Skriptkomponente benötigt werden.
  • Verwenden des Skriptkomponenten-Assistenten Verwenden Sie den Skriptkomponenten-Assistenten zum Erstellen einer Skriptkomponentendatei.
  • Erstellen von Registrierungsinformationen Fügen Sie der Skriptkomponentendatei Informationen hinzu, die zu deren Registrierung als COM-Komponente verwendet werden.
  • Offenlegen von Methoden Fügen Sie Ihrer Skriptkomponente Methoden hinzu.
  • Offenlegen von Eigenschaften Fügen Sie Ihrer Skriptkomponente Eigenschaften hinzu.
  • Offenlegen von Ereignissen Legen Sie benutzerdefinierte Ereignisse in Ihrer Skriptkomponente fest, und lösen Sie sie aus.
  • Erstellen einer Skriptkomponenten-Typbibliothek Erstellen Sie eine Typbibliothek für eine Skriptkomponente, damit diese einfacher in der Hostanwendung eingesetzt werden kann.
  • Verweisen auf andere Komponenten Fügen Sie Objekten, die Sie in Skripten benötigen, globale Verweise auf externe Typbibliotheken hinzu, die Konstanten für den Einsatz in den Skripten bereitstellen, oder auf Ressourcen, die auf Zeichenfolgen oder Werte verweisen, die nicht explizit kodiert in den Skripten vorhanden sind.
  • Verweisen auf eine andere Skriptkomponente in demselben Paket Bei mehreren Skriptkomponenten in demselben Paket wird die Funktionalität einer Skriptkomponente in eine andere eingebettet.
  • Suchen nach Fehlern in Skriptkomponentendateien Fügen Sie Ihrer Skriptkomponente eine während der Kompilierung ausgeführte Fehlerüberprüfung hinzu.
  • Skriptkomponentendateien und XML-Übereinstimmung Informieren Sie sich über weitere Einzelheiten zur XML-Übereinstimmung.


Inhalt von Skriptkomponentendateien

Windows® Script Component-Dateien sind mit HTML-Dateien vergleichbare XML-Dateien (Extensible Markup Language), die spezielle Elemente zum Definieren der Skriptkomponente und deren Verhalten aufweisen. Die Elemente, die zum Definieren von Skriptkomponenten verwendet werden, sind keine HTML-Tags, sondern XML-Elemente, die speziell für Skriptkomponentendefinitionen verwendet werden.

Eine Basis-Skriptkomponentendatei umfasst die folgenden Elemente:

  • <component>- und <package>-Elemente Das <component>-Element umfasst eine vollständige Skriptkomponentendefinition. Mehrere <component>-Elemente können in derselben WSC-Datei enthalten sein und sind wiederum in einem <package>-Hauptelement enthalten.
  • <registration>-Element Umfasst Informationen, mit denen die Skriptkomponente als COM-Komponente registriert wird. Dieses Element ist evtl. nicht erforderlich, wenn die Hostanwendung (z. B. Microsoft® Internet Explorer 5.0) zum Erstellen einer Instanz der Skriptkomponente nicht unmittelbar die Windows-Registrierung verwendet.
  • <public>-Element Umfasst Definitionen für Eigenschaften, Methoden und Ereignisse, die die Skriptkomponente offen legt. Die Definitionen verweisen auf Variablen und Funktionen, die in einem getrennten <script>-Block definiert sind.
  • <implements>-Element Gibt die COM-Schnittstellenbehandlungsroutine für die Skriptkomponente an, die den Typ von COM-Komponente der Skriptkomponente bestimmt. Durch Angabe von z. B. <implements type=ASP> implementieren Sie die ASP-Schnittstellenbehandlungsroutine und erhalten dadurch Zugriff auf das ASP-Objektmodell in der Skriptkomponente.

    Das <public>-Element wird verwendet, um anzugeben, dass eine Skriptkomponente die Schnittstellenbehandlungsroutine der COM-Automatisierung implementiert. Aus diesem Grund müssen Sie für die Automatisierungs-Behandlungsroutine kein <implements>-Element erstellen.

    Anmerkung Die Skriptkomponenten-Laufzeitbibliothek umfasst Schnittstellenbehandlungsroutinen für die Automatisierung (offengelegt durch das <public>-Element) für ASP und für die DHTML-Verhalten von Internet Explorer 5.0. Andere Schnittstellenbehandlungsroutinen stehen als externe DLLs zur Verfügung. Weitere Informationen zu zusätzlichen Schnittstellenbehandlungsroutinen und Skriptkomponenten finden Sie auf der Microsoft Scripting-Technologien-Website.
  • <script>-Element Enthält das Skript, mit dem die Logik der Skriptkomponenten implementiert wird, in Abhängigkeit vom Typ der erstellten COM-Komponente. Wenn Sie z. B. eine COM-Automatisierungskomponente erstellen, deklarieren Sie Eigenschaften, Methoden und Ereignisse in einem <public>-Element und schreiben anschließend das Skript, um diese in einem oder mehreren <script>-Elementen zu definieren.
  • <object>-Element Enthält Informationen zu einem Objekt, das in dem Skript verwendet wird, wie z. B. eine weitere COM-Komponente.
  • <resource>-Elemente Enthalten Werte, die im Skriptkomponentencode nicht explizit kodiert sein sollen. Resource-Elemente enthalten u. U. Informationen, die in Abhängigkeit von der Version unterschiedlich sind. Außerdem können zu übersetzende Zeichenfolgen und andere Werte enthalten sein.
  • <reference>-Element Verweist auf eine Typbibliothek, die Sie im Skript verwenden möchten.
  • <comment>-Elemente Enthalten Text, der bei der Analyse der Syntax der Skriptkomponente und deren Ausführung ignoriert wird.
    Anmerkung Wenn Sie prüfen möchten, ob die in WSC-Dateien erstellten XML-Elemente den XML-Standards entsprechen, können Sie angeben, dass die XML-Syntaxanalyse der Skriptkomponente die XML-Syntax überprüft. Dies ist z. B. sinnvoll, wenn Sie beabsichtigen, einen XML-Editor zum Bearbeiten der Dateien zu verwenden. Normalerweise braucht dieser Vorgang nicht speziell berücksichtigt werden. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.

Struktur von Skriptkomponentendateien

Das folgende Beispiel veranschaulicht den Aufbau einer Skriptkomponentendatei.

<?XML version="1.0"?>
<package>
<?component error="true" debug="true"?>

   <comment>
      Diese Struktur zeigt, wie Skriptkomponentenelemente zu
       einer WSC-Datei zusammengesetzt werden.
   </comment>

<component id="MeineSkriptkomponente">
   <registration
      progid="ProgID"
      description="Beschreibung"
      version="Version"
      clsid="{00000000-0000-0000-000000000000}"/>

   <reference object="ProgID">

   <public>
      <property name="Eigenschaftsname"/>
      <method name="Methodenname"/>
      <event name="Ereignisname"/>
   </public>

   <implements type=COMBehRoutine id=internerName>
      (schnittstellenspezifische Definitionen hier eingeben)
   </implements>

   <script language="VBScript">
      <![CDATA[
      dim Eigenschaftsname
      Function Methodenname()
      ' Skript hier einfügen.
      End Function
      ]]>
   </script>

   <script language="JScript">
      <![CDATA[
      function get_Eigenschaftsname()
      { // Skript hier einfügen.
      }
      function put_Eigenschaftsname(neuerWert)
      { // Skript hier einfügen.
         fireEvent(Ereignisname)
      }
      ]]>
   </script>

   <object id="objID" classid="clsid:00000000-0000-0000-000000000000">
   <resource ID="RessourceID1">Zeichen oder Zahl hier eingeben</resource>
   <resource ID="RessourceID2">Zeichen oder Zahl hier eingeben</resource>
</component>
</package>
Anmerkung In XML können Sie Elemente ohne Inhalt (reine Attribute), wie z. B. die im vorherigen Beispiel genannten Elemente <property> und <method> angeben, indem Sie die Elemente mit einem /> schließen.

Beachten Sie:

  • Die <?XML ?>-Deklaration am Anfang des Beispiels gibt an, dass es sich um eine XML-Datei handelt, die dem XML-Protokoll entspricht. Diese Deklaration ist optional. Wenn sie nicht angegeben wird, ist beim Erstellen der Elemente der Skriptkomponente eine weniger strikte Syntaxverwendung möglich. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
  • Das <package>-Element in diesem Beispiel ist optional, da die Datei nur ein <component>-Element enthält.
  • Die <?component?>-Verarbeitungsanweisung enthält Attribute, mit denen die Fehlerüberprüfungsoptionen angegeben werden. Weitere Informationen finden Sie in Suchen nach Fehlern in Skriptkomponentendateien. Wenn Sie dieses Element nicht eingeben, sind alle Voreinstellungen "false".
  • <comment>-Elemente können überall in der Skriptkomponente enthalten sein.
  • Ein <registration>-Element ist nicht in allen Fällen erforderlich. Eine Skriptkomponente, die z. B die Schnittstellenbehandlungsroutine von DHTML-Verhalten in Internet Explorer 5.0 implementiert, muss nicht registriert werden, da Internet Explorer die Verhalten nach deren Ermittlung in der Seite direkt instanziiert. Weitere Informationen zu den Registrierungsanforderungen finden Sie in der Dokumentation der zu implementierenden Schnittstellenbehandlungsroutine. Berücksichtigen Sie auch den Host, auf dem die Skriptkomponente verwendet wird.
  • Mithilfe eines <reference>-Elements können Sie zur Verwendung der Konstanten der Bibliothek im Skript eine Typbibliothek in die Skriptkomponente aufnehmen.
  • Das <public>-Element umfasst die Elemente <property>, <method> und <event>. Das Skript, mit dem diese definiert werden, wird weiter unten in der Skriptkomponentendatei erstellt.
  • Das <implements>-Element wird verwendet, um nicht standardmäßige COM-Schnittstellen bereitzustellen. Sie können z. B. die ASP-Schnittstelle mit einem <implements>-Element wie folgt offen legen:
    <implements type="ASP" id="iASP">

    Die einzelnen, innerhalb eines <implements>-Elements angezeigten Elemente hängen von der implementierten Schnittstelle ab.

    Anmerkung Das <implements>-Element wird in diesem Fall mit einem id-Attribut angezeigt. Dieses Attribut ist jedoch optional, außer in Fällen, in denen Sie Objekte oder Variablen eindeutig bestimmen müssen. Weitere Informationen finden Sie in den Erläuterungen zum <implements>-Element.
  • In dieser Struktur sind zwei Skriptelemente enthalten, eines für VBScript und eines für JScript. Wenn Sie nur eine Skripterstellungssprache verwenden, benötigen Sie nicht mehr als ein <script>-Element. Da die <?XML ?>-Deklaration oben in der Datei enthalten ist, wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
  • Das <object>-Element erstellt einen Verweis auf ein Objekt, das Sie im Skript innerhalb der Skriptkomponente verwenden möchten.

Geben Sie nach dem Erstellen der Struktur die Elemente ein, um die Funktionalität der Skriptkomponente in Abhängigkeit von der implementierten Schnittstellenbehandlungsroutine zu bestimmen.

Siehe auch

Erstellen von Registrierungsinformationen | Erstellen einer Skriptkomponenten-Typbibliothek | Implementieren von ASP-Skriptkomponenten | Implementieren von DHTML-Verhaltens-Skriptkomponenten | Offenlegen von Eigenschaften | Offenlegen von Ereignissen | Offenlegen von Methoden | Skriptkomponentendateien und XML-Übereinstimmung | Suchen nach Fehlern in Skriptkomponentendateien | Verwenden des Skriptkomponenten-Assistenten


Verwenden des Skriptkomponenten-Assistenten

Das Windows® Skriptkomponentenpaket beinhaltet einen Skriptkomponenten-Assistenten, der das Erstellen von Skriptkomponentendateien (WSC-Dateien) automatisiert. Der Assistent führt die folgenden Funktionen aus:

  • Er erstellt die WSC-Datei und fügt XML-Basiselemente hinzu.
  • Er fordert Registrierungsinformationen an und erstellt diese.
  • Er fordert die Angabe des Typs der Schnittstellenbehandlungsroutine an, die die Skriptkomponente verwenden soll.
  • Er fordert die Angabe von Eigenschaften an, die Sie offen legen möchten, und erstellt die notwendigen Elemente in der gewählten Skripterstellungssprache.
  • Er fordert die Angabe von Methoden an, die Sie offen legen möchten, und erstellt die notwendigen Elemente in der gewählten Skripterstellungssprache.
  • Er fordert die Angabe von Ereignissen an, die die Skriptkomponente auslösen kann, und erstellt die grundlegenden Ereigniselemente.
    Anmerkung Sie können den Skriptkomponenten-Assistenten von der Microsoft Scripting-Technologien-Website (http:/www.microsoft.com/germany/scripting/) downloaden und installieren.

Der Assistent erstellt anhand der angegebenen Informationen ein Skriptkomponentengerüst und schreibt dieses in eine WSC-Datei. Bearbeiten Sie diese WSC-Datei, indem Sie Ihr Skript hinzufügen, um die Funktionalität der Skriptkomponente bereit zu stellen.

Anmerkung Der Assistent erstellt eine Skriptkomponentendatei, die zu Beginn die <?XML ?>-Deklaration enthält. Der Inhalt der Datei muss also XML-konform sein. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.

Siehe auch

Erstellen von Registrierungsinformationen | Erstellen von Skriptkomponenten | Inhalt von Skriptkomponentendateien | Skriptkomponentendateien und XML-Übereinstimmung


Erstellen von Registrierungsinformationen

Falls es für die Hostanwendung erforderlich ist, können Sie eine Windows®-Skriptkomponente z. B. unter Verwendung des Programms Regsvr32.exe als COM-Komponente registrieren. Bei der Registrierung werden die Informationen zur COM-Komponente an einem öffentlichen Speicherort abgelegt (in Windows werden die Registrierungsinformationen in der Windows-Registrierung gespeichert). Durch Lesen der Registrierungsinformationen können Anwendungen COM-Komponenten finden und laden.

Anmerkung Die Registrierung ist nicht in jedem Fall erforderlich. Eine Skriptkomponente, die z. B die Schnittstellenbehandlungsroutine von DHTML-Verhalten in Internet Explorer 5.0 implementiert, muss nicht registriert werden, da Internet Explorer die Verhalten nach deren Ermittlung in der Seite registriert. Weitere Informationen zum Verwenden von Verhalten finden Sie unter "Using DHTML Behaviors" auf der Microsoft Site Builder Network (SBN)-Website. Falls die Hostanwendung Verweisobjekte unterstützt, können Sie ferner eine Instanz einer Skriptkomponente erstellen, ohne sie zu registrieren.

Wenn Sie die Registrierung aktivieren, sind die folgenden Informationen am wichtigsten:

  • Eine Progamm-ID (prog ID), bei der es sich um den Namen handelt, der in der Hostanwendung beim Erstellen einer Instanz der Skriptkomponente verwendet wird. Wenn die Programm-ID der Skriptkomponente z. B. "Component.MeineKomponente" lautet, können Sie in Microsoft® Visual Basic® eine Instanz unter Verwendung einer Anweisung wie der Folgenden erstellen:
    Set Component = CreateObject("Component.MeineKomponente")
  • Eine Klassen-ID, bei der es sich um eine GUID (globale eindeutige Bezeichnung) handelt, die die Skriptkomponente eindeutig identifiziert. Eine GUID können Sie z. B. mit dem Programm Uuidgen.exe erstellen.
    Anmerkung Wenn Sie eine Skriptkomponente mit dem Skriptkomponenten-Assistenten erstellen, generiert der Assistent automatisch eine Programm-ID und eine Klassen-ID. Weitere Informationen finden Sie unter Verwenden des Skriptkomponenten-Assistenten.

Zu den Registrierungsinformationen gehören auch eine Beschreibung und eine Versionsnummer.

Das Registrierungsprogramm kann nach der Registrierung eine Klassen-ID für die Skriptkomponente erstellen. Es wird jedoch ausdrücklich empfohlen, dass Sie selbst eine Klassen-ID für die Skriptkomponente angeben, um sicherzustellen, dass die Skriptkomponente auf allen Computern, auf denen sie registriert wird, über dieselbe Klassen-ID verfügt. Wenn Sie eine Klassen-ID über das Registrierungsprogramm erstellen lassen, können Fehler auftreten, falls Sie die Skriptkomponente zusammen mit Entwicklungstools einsetzen, die Klassen-IDs speichern. Wenn bei der Registrierung jedes Mal eine neue Klassen-ID erstellt wird, stimmt diese nicht mit der ID überein, die von der Anwendung gespeichert wurde.

So erstellen Sie die Registrierungsinformationen für die Skriptkomponente

  • Erstellen Sie ein <registration>-Element, das mindestens eine Programm-ID und optional wie in dem folgenden Beispiel eine Klassen-ID, Beschreibung und Version enthält:
    <registration
description="My Test Component"
progid="Component.TestScript"
version="1"
classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"/>
    Anmerkung Die Registrierungsattribute können im <registration>-Element in beliebiger Reihenfolge angezeigt werden.

Ausführen von Skript während der Registrierung

Durch das <registration>-Element der Skriptkomponente können Sie Skript einfügen, das ausgeführt wird, wenn die Skriptkomponente registriert und deregistriert wird. Sie können z. B die Nachricht übermitteln, dass die Skriptkomponente registriert wurde.

So führen Sie Skript während der Registrierung und Deregistrierung aus

  • Fügen Sie in das <registration>-Element ein <script>-Element ein. Um Skript während der Registrierung auszuführen, schreiben Sie eine register( )-Funktion. Um Skript während der Deregistrierung der Skriptkomponente auszuführen, fügen Sie eine unregister( )-Funktion ein.

    Das folgende Beispiel zeigt, wie Nachrichten übermittelt werden, wenn die Skriptkomponente registriert oder deregistriert wird.

    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
    <registration
   description="Meine Testkomponente"
   progid="Component.TestSkript"
   version="1"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}">

   <script language="VBScript">
   <![CDATA[
      Function register()
         MsgBox "Komponente 'Meine Testkomponente' registriert."
      End Function
       Function unregister()
         MsgBox "Komponente 'Meine Testkomponente' deregistriert."
      End Function
   ]]>
   </script>
</registration>

Registrieren für den Remotezugriff

Wenn Sie die Skriptkomponente in einer verteilten Umgebung einsetzen, können Sie angeben, dass die Skriptkomponente remote instanziiert werden kann. Sie können z. B. eine Skriptkomponente erstellen, die für die Ausführung auf einem Server entwickelt wurde, jedoch von Code auf einem Client aufgerufen wird. Diese Situation ist möglich, wenn der Client- und der Servercomputer ordnungsgemäß mit DCOM konfiguriert wurden, wodurch sich die Möglichkeit des Übergebens von Objektverweisen vom Client zum Server ergibt.

So registrieren Sie eine Skriptkomponente für den Remotezugriff

  • Fügen Sie das remotable-Attribut in das <registration>-Element ein, wie im folgenden Beispiel gezeigt:
    <registration
   description="Meine Testkomponente"
   progid="Component.TestSkript"
   version="1"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
   remotable=true/>

Weitere Informationen zur Remoteerstellung von Instanzen einer Skriptkomponente finden Sie in Verwenden von Skriptkomponenten in Anwendungen.

Siehe auch

Erstellen einer Skriptkomponenten-Typbibliothek | Inhalt von Skriptkomponentendateien | Skriptkomponentendateien und XML-Übereinstimmung | Suchen nach Fehlern in Skriptkomponentendateien | Verwenden des Skriptkomponenten-Assistenten


Offenlegen von Methoden

Methoden werden als Funktionen oder Unterroutinen in der Windows® Script Component-Datei implementiert.

So legen Sie eine Methode offen

  1. Erstellen Sie ein <public>-Element als untergeordnetes Element des <component>-Elements.
  2. Fügen Sie in das <public>-Element ein <method>-Element ein. Das method-Element kann optional ein oder mehrere <parameter>-Elemente enthalten, um die Parameter der Methode festzulegen.
  3. Schreiben Sie in einer beliebigen Skripterstellungssprache eine Prozedur, um die Funktion zu implementieren. Setzen Sie die Prozedur in ein <script>-Element außerhalb des <implements>-Elements, jedoch innerhalb des <component>-Elements. Stellen Sie sicher, dass der Funktionsname mit Funktionsname oder, wenn Sie Funktionsname nicht angegeben haben, mit Methodenname übereinstimmt, den Sie im <method>-Element angegeben haben.

    Das folgende Beispiel zeigt einen Auszug aus einer Skriptkomponentendatei mit den beiden Methoden fakultaet und erzeugeZufallszahl.

    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
    <public>
   <method name="fakultaet"/>
   <method name="zufall" internalName="erzeugeZufallszahl">
      <parameter name="obereGrenze"/>
      <parameter name="startwert"/>
   </method>
</public>

<script language="VBScript">
Function fakultaet(n)
   <![CDATA[
   If isNumeric(n) Then
      If n <= 1 Then
         fakultaet = 1
      Else
         fakultaet = n*fakultaet(n-1)
      End If
   Else
      fakultaet = -2    ' Fehlercode.
   End If
End Function

Function erzeugeZufallszahl(obereGrenze, startwert)
   erzeugeZufallszahl = Cint(obereGrenze * Rnd(startwert) + 1)
End Function
]]>
</script>

Sie können eine Standardmethode für eine Skriptkomponente angeben, sodass die Hostanwendung die Methode aufrufen kann, ohne diese explizit zu benennen. Wenn Sie z. B. die fakultaet-Methode offen gelegt und diese als Standard markiert haben, können Sie diese in Visual Basic folgendermaßen aufrufen:

Set Komponente = CreateObject("Component.MeineKomponente")
n = Komponente.fakultaet(4)   ' Ruft die fakultaet-Methode explizit auf.
n = Komponente(4)   ' Ruft die fakultaet-Methode als Standard auf.

Um eine Standardmethode anzugeben, fügen Sie ein Attribut ein, in dem Sie der Methode eine bestimmte Dispatch-ID (dispid) zuweisen. Weitere Informationen zu Dispatch-IDs finden Sie unter Offenlegen von Ereignissen.

So geben Sie eine Standardmethode an

  • Fügen Sie in das <method>-Element das Attribut dispid="0" ein, wie im folgenden Beispiel gezeigt:
    <public>
   <method name="fakultaet" dispid="0"/>
</public>
    Anmerkung Auf diese Weise können Sie nur jeweils eine Standardmethode oder eine Standardeigenschaft zuweisen. In der Skriptkomponente darf es nur ein Element mit der Dispatch-ID 0 geben.

Siehe auch

Inhalt von Skriptkomponentendateien | Offenlegen von Eigenschaften | Offenlegen von Ereignissen


Offenlegen von Eigenschaften

Sie haben zwei Möglichkeiten, Eigenschaften offen zu legen:

  • Als einfache Werte Die Eigenschaft ist lediglich eine globale Variable, die von den Benutzern der Skriptkomponente gelesen und geschrieben werden kann. Da der Wert in einem globalen Wert gespeichert wird, können Sie ihn in den Skripten der Windows® Script Component-Datei bearbeiten.
  • Als Funktionen Die Eigenschaft wird unter Verwendung einer Funktion definiert. Dadurch können Sie einen Eigenschaftswert berechnen und festlegen, ob eine Eigenschaft schreibgeschützt ist, über einen Lese- und Schreibzugriff verfügt oder nur einen Schreibzugriff aufweist.

Darüber hinaus können Sie eine Eigenschaft als Standardwert für eine Skriptkomponente markieren.

So legen Sie eine Eigenschaft als einfachen Wert offen

  1. Erstellen Sie ein <public>-Element als untergeordnetes Element des <component>-Elements.
  2. Fügen Sie in das <public>-Element ein <property>-Element ein, das die Variable angibt, die zum Speichern des Eigenschaftswertes verwendet wird.
  3. Um den Wert einer einfachen Eigenschaft zu initialisieren, erstellen Sie im <script>-Element eine globale Variable mit einem Namen, der mit Eigenschaftsname (oder mit Eigenschaftsvariable, sofern angegeben) übereinstimmt, und weisen Sie dieser einen Wert zu.
  4. Der folgende Skriptkomponentenauszug zeigt zwei Eigenschaften (name und tag), die als einfache Werte offengelegt werden. Die Eigenschaften werden unter Verwendung globaler Variablen im <script>-Element initialisiert.
    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
    <public>
   <property name="name"/>
   <property name="tag" internalName="tagVar"/>
</public>

<script language="VBScript">
   <![CDATA[
   Dim name
   name = "script component"   ' Initialisiert den Wert der name-Eigenschaft.
   Dim tagVar
   tagVar = "10"   ' Initialisiert den Wert der tag-Eigenschaft.
   ]]>
</script>

Das Offenlegen einer Eigenschaft mithilfe von Funktionen ähnelt dem Offenlegen einer Methode.

So legen Sie eine Eigenschaft mithilfe von Funktionen offen

  1. Fügen Sie in das <public>-Element der Skriptkomponentendatei ein <property>-Element ein, das ein <get>-Element für die Lesefunktion und ein <put>-Element für die Schreibfunktion enthält. Wenn Sie das <put>-Element nicht einfügen, ist die Eigenschaft schreibgeschützt. Wenn Sie das <get>-Element nicht einfügen, hat die Eigenschaft nur Schreibzugriff.
  2. Schreiben Sie Prozeduren in ein <script>-Element außerhalb des <public>-Elements, um die Funktionen zu implementieren. Die Funktion für das Festlegen des Eigenschaftswertes, die put-Funktion, muss einen einzelenen Parameter, den Wert, auf den die Eigenschaft festgelegt wird, akzeptieren.

    Die Namen der Prozeduren müssen mit den internen Namen übereinstimmen, die Sie im <property>-Element angegeben haben. Wenn Sie kein internalName-Attribut angegeben haben, müssen die Namen der Funktionen mit dem Namen der Funktion mit einem get_-Präfix für die Lesefunktion und mit einem put_-Präfix für die Schreibfunktion übereinstimmen.

  3. Der folgende Skriptkomponentenauszug zeigt z. B. eine Skriptkomponentendatei, die drei Eigenschaften offen legt: sname, geburtsdatum und alter. Die geburtsdatum-Eigenschaft wird von Funktionen definiert, sodass eine Fehlerüberprüfung möglich ist. Die alter-Eigenschaft wird berechnet und deshalb als schreibgeschützt definiert.
    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
    <public>
   <property name="sname"/>
   <property name="alter">
      <get internalName="leseAlter"/>
   </property>
   <property name="geburtsdatum">
      <get internalName="leseGDat"/>
   <put internalName="schreibeGDat"/>
   </property>
</public>

<script language="VBScript">
<![CDATA[
Dim sname   ' sname-Eigenschaft mit Lese- und Schreibzugriff (keine Funktionen).
Dim gGDat   ' Globale Variable zum Speichern des Geburtsdatums.

Function leseGDat()
   ' Ruft den Wert der geburtsdatum-Eigenschaft ab.
   leseGDat = gGDat
End Function

Function schreibeGDat(neuesGDat)
   ' Setzt den Wert der geburtsdatum-Eigenschaft.
   If isDate(gGDat) Then
      ' Fehlerüberprüfung
      gGDat = neuesGDat
   End If
End Function

Function leseAlter()
   ' Berechnet die schreibgeschützte alter-Eigenschaft.
   If isDate(gGDat) Then
      GDatM = DatePart("m", gGDat)
      GDatT = DatePart("d", gGDat)
      GDatJ = DatePart("yyyy", gGDat)
      heuteJ = DatePart("yyyy", Date)
      alter = heuteJ – GdatJ

      ' Berichtigen, wenn der Geburtstag in diesem Jahr noch nicht war.
      gTag = DateValue(GDatM & "/" & GDatT & "/" & heuteJ)
      If DateDiff("d", gTag, DateValue(Date)) < 0 Then
         alter = alter - 1
      End If
      leseAlter = alter
   End If
End Function
]]>
</script>

Sie können eine Standardeigenschaft für eine Skriptkomponente angeben, sodass die Hostanwendung den Wert der Eigenschaft abrufen oder setzen kann, ohne die Eigenschaft explizit zu benennen. Wenn Sie z. B. die Eigenschaft sname offen gelegt und als Voreinstellung markiert haben, können Sie diese auf die folgenden Weisen in Visual Basic einsetzen:

Set Komponente = CreateObject("Component.MeineKomponente")
n = Komponente.sname   ' Ruft die Eigenschaft explizit ab.
n = Komponente   ' Ruft den Wert von sname als Voreinstellung ab.

Um eine Standardeigenschaft anzugeben, fügen Sie ein Attribut ein, in dem Sie der Eigenschaft eine bestimmte Dispatch-ID (dispid) zuweisen. Weitere Informationen zu Dispatch-IDs finden Sie unter Offenlegen von Ereignissen.

So geben Sie eine Standardeigenschaft an

  • Fügen Sie in das <property>-Element das Attribut dispid="0" ein, wie in dem folgenden Beispiel gezeigt:
    <property name="sname" dispid="0"/>
    Anmerkung Auf diese Weise können Sie nur jeweils eine Standardeigenschaft oder eine Standardmethode zuweisen. In der Skriptkomponente darf es nur ein Element mit der Dispatch-ID 0 geben.

Siehe auch

Inhalt von Skriptkomponentendateien | Offenlegen von Ereignissen | Offenlegen von Methoden | Skriptkomponentendateien und XML-Übereinstimmung


Offenlegen von Ereignissen

So fügen Sie einer Windows® Script Component Ereignisfunktionalität hinzu

  • Deklarieren Sie alle Ereignisse, die Sie auslösen möchten.
  • Rufen Sie eine Funktion auf, um das Ereignis wie gewünscht in der Skriptkomponente auszulösen.

In einigen Hostumgebungen ist es auch erforderlich, dass Sie eine Typbibliothek erstellen, um Ereignisse in Funktionen einbinden zu können. Weitere Informationen hierzu finden Sie unter Erstellen einer Skriptkomponenten-Typbibliothek.

Anmerkung Die Verhaltensbearbeitungsroutine legt Ereignisse auf eine etwas andere Weise offen. Weitere Informationen hierzu finden Sie unter Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten.

Deklarieren von Ereignissen

Jedes Ereignis, das Sie auslösen möchten, muss einzeln deklariert werden.

So deklarieren Sie ein Ereignis

  1. Erstellen Sie ein <public>-Element als untergeordnetes Element des <component>-Elements.
  2. Fügen Sie dem <public>-Element ein <event>-Element für alle Ereignisse hinzu, die Sie deklarieren möchten.
  3. Der folgende Skriptkomponentenauszug zeigt z. B., wie Sie zwei Ereignisse offen legen:
    <public>
   <property name="sname"/>
   <method name="fakultaet"/>
   <event name="namegeaendert"/>
   <event name="abfragebeendet"/>
</public>

Festlegen von Dispatch-IDs

Die COM-Programmierung bietet eine Ereignisbenachrichtigung über Dispatch-IDs (die als dispid angegeben werden), bei denen es sich um Ganzzahlwerte handelt, die die Ereignisse einer Komponente bestimmen. Die Dispatch-ID wird in die Typbibliothek der Komponente kompiliert und anschließend von der Hostanwendung zum Einbinden von Ereignissen verwendet.

Beim Erstellen einer Typbibliothek für Skriptkomponenten werden Dispatch-IDs automatisch für die Ereignisse der Skriptkomponente erstellt. Sie können jedoch auch eigene Dispatch-IDs angeben. Dadurch können Sie:

  • Sicherstellen, dass Ereignisse in der Skriptkomponente stets dieselbe dispid aufweisen. Wenn die Erstellungsfunktion für Typbibliotheken Dispatch-IDs zuweist, werden diese immer dann geändert, wenn die Bibliothek erstellt wird.
  • Ereignisse in der Skriptkomponente dispids mit bestimmten Nummern zuweisen. Wenn Sie ein Standard-COM-Ereignis, z. B. eine Fehlerbenachrichtigung, auslösen möchten, können Sie das Ereignis den Werten zuordnen, die gemäß den Konventionen in COM verwendet werden.

Um eine dispid für ein Ereignis anzugeben, fügen Sie wie im folgenden Beispiel gezeigt das dispid-Attribut in das <event>-Element ein.

<public>
   <event name="namegeaendert" dispid="22">
</public>

Innerhalb der Skriptkomponente müssen Dispatch-IDs eindeutig sein. Sie können zwar einen negativen Wert angeben, um eine Dispatch-ID herkömmlichen Ereignissen zuzuweisen, jedoch können Sie für Steuerelemente nur angegebene Bereiche, z. B. -999 bis -500, verwenden. Weitere Informationen zu reservierten Dispatch-ID-Bereichen finden Sie in der MSDN-Bibliothek unter der Dokumentation zu DISPID.

Anmerkung Die DISPID-Nummer 0 wird zum Kennzeichnen einer Standardmethode oder -eigenschaft verwendet. Weitere Informationen hierzu finden Sie unter Offenlegen von Methoden und Offenlegen von Eigenschaften.

Auslösen von Ereignissen

Sie können ein Ereignis auslösen, indem Sie die fireEvent-Methode aufrufen und den Namen des auszulösenden Ereignisses angeben. Ereignisse, die Sie nicht im <implements>-Element offengelegt haben, können Sie nicht auslösen. Sie können ein Ereignis in einem beliebigen Skript in der Skriptkomponentendatei auslösen. Das folgende Beispiel zeigt, wie Sie ein Ereignis auslösen können, wenn sich ein Eigenschaftswert ändert.

<script language="VBScript">
<![CDATA[
Sub put_nameKleinBuchst(neuerNameKlB)
   name = neuerNameKlB
   fireEvent("namegeaendert")
End Sub
]]>
</script>

Siehe auch

Inhalt von Skriptkomponentendateien | Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten | Offenlegen von Eigenschaften | Offenlegen von Methoden | Verarbeiten von Skriptkomponentenereignissen in der Hostanwendung


Erstellen einer Skriptkomponenten-Typbibliothek

Sie können für eine Windows®-Skriptkomponente eine Typbibliothek erstellen, die Informationen zu deren Schnittstellen (Interface) und Mitgliedern (Member) enthält. In einigen Hostanwendungen (wie z. B. Visual Basic) sind Typbibliotheken erforderlich, um Ereignisse für die Skriptkomponente zu aktivieren, während sie in anderen Hostanwendungen optional sind. Auch wenn keine Typbibliothek erforderlich ist, kann das Erstellen einer solchen Bibliothek das Arbeiten mit einer Skriptkomponente in der Hostanwendung einfacher und weniger fehleranfällig machen.

Wenn Sie z. B. Visual Basic als Hostanwendung verwenden, öffnen Sie das Dialogfeld Verweise, um die Typbibliothek einer Skriptkomponente auszuwählen. Dadurch können Sie Ereignisse in die Skriptkomponente einbinden und diese in Visual Basic anzeigen. Wenn Sie außerdem Visual Basic-Code schreiben, der auf die Skriptkomponente verweist, verwendet Visual Basic die Informationen in der Typbibliothek sowohl zur Vervollständigung von Anweisungen als auch innerhalb des Objektkatalogs, damit die von der Skriptkomponente offen gelegten Eigenschaften, Methoden und Ereignisse angezeigt und verwendet werden können.

Anmerkung Informationen zum Verwenden einer Typbibliothek in der Hostanwendung finden Sie in der Dokumentation zur Hostanwendung.

So erstellen Sie eine Skriptkomponenten-Typbibliothek

  • Klicken Sie im Windows-Explorer mit der rechten Maustaste auf die Skriptkomponentendatei (WSC), und wählen Sie dann Typbibliothek generieren.

    Für die Skriptkomponente wird eine TLB-Datei mit demselben Dateinamen der Skriptkomponentendatei erstellt erstellt. Diese wird in den Ordner geschrieben, in dem sich die WSC-Datei befindet, und in der Windows-Registrierung registriert.

Um eine genauere Steuerung der Erstellung von Typbibliotheken zu ermöglichen, können Sie die Typbibliothek dynamisch über Skript in der Skriptkomponentendatei erstellen oder die Befehlszeilenschnittstelle verwenden.

Dynamisches Erstellen von Typbibliotheken

Die Skriptkomponentenlaufzeitbibliothek umfasst eine Automatisierungsschnittstelle, die vom Component.GenerateTypeLib-Objekt implementiert wird. Sie können dieses Objekt im Skript verwenden, um eine Typbibliothek innerhalb der Skriptkomponentendatei zu erstellen. Dies ist insbesondere hilfreich, wenn eine Typbibliothek automatisch nach dem Registrieren der Skriptkomponente erstellt wird.

So erstellen Sie eine Skriptkomponenten-Typbibliothek dynamisch

  1. Erstellen Sie im Skript innerhalb der Skriptkomponentendatei eine Instanz des Component.GenerateTypeLib-Objekts, indem Sie z. B. die folgende Syntax verwenden:
    set oTL = CreateObject("Scriptlet. GenerateTypeLib")
  2. Stellen Sie die folgenden Eigenschaften des Component.GenerateTypeLib-Objekts ein:
    Eigenschaft/Methode | Beschreibung
    AddURL | (Methode) Fügt den URL der Skriptkomponentendatei hinzu, über den die Typbibliothek erstellt werden soll. Sie können diese Methodeneigenschaft mehrmals aufrufen, um mehrere Skriptkomponenten in die Typbibliothek einzufügen.
    Path | (Eigenschaft) Gibt den Pfad zur Datei an, in die die Typbibliothek geschrieben wird. Der Standardpfad ist das aktuelle Verzeichnis. Der Standardname ist der Name der Skriptkomponentendatei mit der Erweiterung TLB. Wenn das Objekt die angegebene Bibliothek nicht erstellen kann, wird standardmäßig die Typbibliothek component.tlb erstellt.
    Doc | (Eigenschaft) Eine Zeichenfolge mit Informationen, die in der Registrierung mit den Informationen zur Typbibliothek gespeichert wird.
    GUID (Eigenschaft) Eine GUID für die Typbibliothek. (Dies ist nicht die GUID für die Skriptkomponente.) Das GenerateTypeLib-Objekt erstellt eine GUID, wenn keine angegeben wird. Auf jedem Computer ist dann jedoch in der Typbibliothek eine andere GUID vorhanden. Die GUID muss exakt das folgende Format haben, wobei x einen Hexadezimalwert darstellt:
    {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
    Name | (Eigenschaft) Der interne Name der Typbibliothek. Dieser Name wird in einigen Anwendungen angezeigt, z. B. dem Visual Basic-Objektkatalog.
    MajorVersion | (Eigenschaft) Ein zuzuweisender Ganzzahlwert.
    MinorVersion | (Eigenschaft) Ein zuzuweisender Ganzzahlwert.
  3. Rufen Sie die Write-Methode des typelib-Objekts auf, um die TLB-Datei zu erstellen, und registrieren Sie sie dann.
  4. Wenn Sie eine weitere Typbibliothek erstellen möchten, rufen Sie die Reset-Methode des GenerateTypeLib-Objekts auf, um die Liste der Skriptkomponentendateien in der Eigenschaft AddURL zu löschen. Setzen Sie die URLs und erforderlichenfalls andere Eigenschaften zurück, und rufen Sie dann erneut die Write-Methode auf.

Das folgende Skript in einem <registration>-Element erstellt z. B. dynamisch eine Typbibliothek.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<registration
   description="Meine Testkomponente"
   progid="Component.TestSkript"
   version="1"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}">
   <script language="VBScript">
   <![CDATA[
   Function Register()
      Set oTL = CreateObject("Scriptlet.TypeLib")
         oTL.AddURL "d:\Komponenten\MeineKomponente.wsc"   ' Skriptkomponenten-URL.
         oTL.AddURL "d:\Komponenten\MeineKomponente.wsc"
         oTL.Path = "d:\Komponenten\MeineKomponente.tlb"   ' .TLB-Pfad.
         oTL.Doc = "Beispiel einer Component-Typbibliothek"   ' Zeichenfolge für Dokumentation.
         oTL.GUID = "{a1e1e3e0-a252-11d1-9fa1-00a0c90fffc0}"
         oTL.Name = "MeineKomponenteTLib" ' Interner Name für .tlb.
         oTL.MajorVersion = 1
         oTL.MinorVersion = 0
         oTL.Write ' TLib auf Festplatte speichern.
         oTL.Reset ' Liste der URLs in AddURL löschen.
      End Function
   ]]>
   </script>
</registration>

Befehlszeilenschnittstelle

Wenn Sie mit dem Fenster MS-DOS-Eingabeaufforderung vertraut sind, können Sie das Programm Rundll32.exe aufrufen, um Typbibliotheken zu erstellen.

So erstellen Sie eine Typbibliothek an der Eingabeaufforderung

  • Rufen Sie Rundll32.exe unter Verwendung der folgenden Syntax auf:
    rundll32.exe Pfad\scrobj.dll,GenerateTypeLib Optionen

    Dabei handelt es sich um Folgendes:

    • Pfad Der Pfad mit der Scrobj.dll des Computers.
    • Optionen Verschiedene Flags und Werte, mit denen Sie Informationen zur Typbibliothek im Format Flag:Wert angeben können. Sie können die Optionen in beliebiger Reihenfolge angeben. Die folgenden Flags werden, wie im vorherigen Abschnitt beschrieben, mit Werten unterstützt, mit denen eine Skriptkomponenten-Typbibliothek dynamisch erstellt werden kann.
      -name:Name
      -file:Pfad
      -doc:\"Dok\"
      -guid:GUID
      -major:MajorVersion
      -minor:MinorVersion
      -URL:AddURL

Beispielsweise erstellt der folgende Befehl aus der Skriptkomponente MeineKomponente.wsc eine Typbibliothek mit dem Namen MeineKomponente.tlb (der Befehl ist zur Verdeutlichung umbrochen):

rundll32.exe c:\winnt\system32\scrobj.dll,GenerateTypeLib
   -name:MeineKomponenteTLib  -file:d:\Komponenten\MeineKomponente.tlb
   -doc:\"Beispiel einer Component-Typbibliothek\"
   -guid:{a1e1e3e0-a252-11d1-9fa1-00a0c90fffc0} -major:1  -minor:0
   -URL:d:\Komponenten\MeineKomponente.wsc

Fehlerbehebung bei Typbibliotheken

Das Erstellen einer Typbibliothek kann aus verschiedenen Gründen fehlschlagen. Die angezeigte Fehlermeldung ist möglicherweise in einigen Fällen nicht eindeutig genug, um eine Ermittlung des Problems zu ermöglichen. Wenn Sie keine Typbibliothek erstellen können, überprüfen Sie die folgende Liste auf mögliche Fehlerursachen hin.

  • Wenn eine Eigenschaft durch Funktionen definiert ist, müssen die Funktionen get und put dieselbe Anzahl an Argumenten mit denselben Namen aufweisen. Weitere Informationen finden Sie in Offenlegen von Eigenschaften.
    Anmerkung Es ist möglich, eine Skriptkomponente zu definieren, bei der die Eigenschaftsfunktionen get und put verschieden viele Argumente haben. Für diese Skriptkomponente können Sie jedoch keine Typbibliothek erstellen.
  • Wenn Sie Ereignisse offen legen, können Sie dieselben Dispatch-IDs (dispid) höchstens einmal in einer Skriptkomponente verwenden. Darüber hinaus können Sie für dispid keinen negativen Wert verwenden, es sei denn, dieser liegt in einem angegebenen Bereich. Weitere Informationen finden Sie in Offenlegen von Methoden.
  • Die ID-Attribute der Elemente in der Skriptkomponente müssen eindeutig sein. Wenn Sie eine Typbibliothek aus mehr als einer Skriptkomponente erstellen, müssen die IDs in der gesamten Typbibliothek eindeutig sein.

Siehe auch

Erstellen von Registrierungsinformationen | Inhalt von Skriptkomponentendateien | Skriptkomponentendateien und XML-Übereinstimmung | Suchen nach Fehlern in Skriptkomponentendateien


Verweisen auf andere Komponenten

Eine Windows®-Skriptkomponente kann Verweise auf externe Komponenten enthalten, die Sie zum Erstellen der Skriptkomponente benötigen, wie z. B.:

  • Zusätzliche COM-Objekte
  • Typbibliotheken
  • Ressourcen, wie z. B. Zahlen und Text, die in den Skripten der Skriptkomponente nicht fest codiert werden sollen.

Verweisen auf zusätzliche COM-Komponenten

In einer Skriptkomponente ist es je nach Anforderung erforderlich, Instanzen anderer COM-Komponenten zu erstellen. Dafür gibt es zwei Möglichkeiten:

  • Im Skript Erstellen Sie Instanzen anderer Objekte direkt im Skript. Sie können z. B. in Microsoft® Visual Basic® Scripting Edition (VBScript) die CreateObject-Funktion oder in JScript das neue ActiveXObject-Objekt verwenden.
  • Verwenden eines OBJECT-Elements Verwenden Sie ein <object>-Element ähnlich dem <OBJECT>-Kennzeichen in HTML-Seiten. Durch die Verwendung des <object>-Elements steht das Objekt global jedem Skript zur Verfügung und ermöglicht Skripterstellungstools das Bereitstellen der Anweisungsvervollständigung. Ferner ist dies eine komfortable Möglichkeit, die in der Skriptkomponente verwendeten Objekte zusammenzufassen und zu dokumentieren.
    Hinweis Obgleich <object>-Elemente in Skriptkomponenten <OBJECT>-Kennzeichen in HTML-Seiten ähneln, ist die Liste der Attribute für ein <object>-Element in einer Skriptkomponente kürzer, da Skriptkomponenten keine Benutzeroberfläche haben.

So erstellen Sie ein OBJECT-Element

  • Erstellen Sie ein <object>-Element. Dieses Element muss sich innerhalb des <component>-Elements, jedoch außerhalb beliebiger anderer Elemente (z. B. <script>-Element) befinden.

Das folgende Beispiel zeigt eine Objektdefinition in einer Skriptkomponente.

<object id="cnn" progid="ADODB.Connection"/>

Verweisen auf eine externe Typbibliothek

Viele Komponenten, mit denen Sie arbeiten, unterstützen Typbibliotheken. Diese bieten eine vollständige Auflistung der Komponentenklassen und ihrer Mitglieder. Durch Verweisen auf die Typbibliotheken der Komponente können Sie in Typbibliotheken definierte Konstanten verwenden.

So fügen Sie einen Verweis auf eine Typbibliothek ein

  • Fügen Sie ein <reference>-Element in die Skriptkomponente ein, das Speicherort und Name der einzuschließenden Typbibliothek angibt. Beispiel:
    <reference object="ADODB.Connection.2.0"/>

Verweisen auf Ressourcen

Resource-Elemente können versionsabhängige Informationen, zu übersetzende Zeichenfolgen und andere Werte enthalten.

So verweisen Sie auf Ressourcen

  1. Erstellen Sie in der Skriptkomponente außerhalb der Elemente <public> und <script> (sowie des <implements>-Element, falls vorhanden) ein <resource>-Element für die einzelnen zu definierenden Ressourcen, und versehen Sie alle Elemente mit einer eindeutigen Kennung (ID). Das folgende Beispiel zeigt zwei <resource>-Elemente:
    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um den Inhalt des <resource>-Elements gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
    <component id="MyScriptlet">
<public>
   <method name="random" internalName="getRandomNumber"/>
</public>
<resource id="errNonNumeric"><![CDATA[Nicht-numerischen Wert übergeben]]>
</resource>
<resource id="errOutOfRange"><![CDATA[Übergebener Wert außerhalb des Gültigkeitsbereichs]]>
</resource>
  2. Den Ressourcentext oder die Ressourcenzahl fügen Sie durch einen Aufruf der getResource-Funktion (siehe folgendes Beispiel) in Ihr Skript ein.
    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
    <script language="VBScript">
<![CDATA[
Function getRandomNumber(upperBound)
   If IsNumeric(upperBound) Then
      getRandomNumber = Cint(upperBound * Rnd + 1)
   Else
      getRandomNumber=getResource("errNonNumeric")
   End If
End Function
]]>
</script>

Siehe auch

Inhalt von Skriptkomponentendateien | Verweisen auf eine andere Skriptkomponente in demselben Paket


Verweisen auf eine andere Skriptkomponente in demselben Paket

Sie können ein Paket mit mehreren Windows®-Skriptkomponenten erstellen, damit Sie in einer Skriptkomponente eine der anderen Skriptkomponenten instanziieren und verwenden können, ohne dazu die zweite Skriptkomponente registrieren zu müssen.

Sie können z. B. eine Skriptkomponente erstellen, die die Automatisierungs-Schnittstelle implementiert und verschiedene Eigenschaften und Methoden offen legt. Eine zweite Skriptkomponente in demselben Paket kann die ASP-Schnittstelle implementieren, die den Zugriff auf das Serverobjektmodell für Microsoft® Internet-Informationsdienste (IIS) bietet. Anschließend können Sie eine Methode oder Eigenschaft in der Automatisierungs-Skriptkomponente erstellen, die die ASP-Skriptkomponente offen legt und deren Mitglieder verfügbar macht.

Um in einer Skriptkomponente auf eine andere Skriptkomponente zu verweisen, erstellen Sie ein Gerüstmitglied (eine Eigenschaft oder Methode) in einer Methode, die die zweite Skriptkomponente offen legt.

So verweisen Sie in derselben Skriptkomponentendatei auf eine andere Skriptkomponente

  1. Deklarieren Sie in der ersten Skriptkomponente eine Eigenschaft oder Methode.
  2. Rufen Sie als Teil der Definition der neuen Eigenschaft oder Methode die createComponent-Funktion auf.

    Das folgende Beispiel zeigt zwei Skriptkomponenten in demselben Paket. In der ersten Skriptkomponente verweist die mathe-Methode lediglich auf die zweite Skriptkomponente, die die Methoden addiere und multipliziere offen legt.

    Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<?XML version="1.0"?>
<package>
<component id="komponente1">
<registration progid="Component.EingabeFenster"/>
<public>
   <property name="mathe"/>
</public>
<script language="JScript">
<![CDATA[
var mathe = createComponent("komponente2")
   ]]>
</script>
</component>

<component id="komponente2">
<registration progid="Component.Mathe"/>
<public>
   <method name="addiere"/>
   <method name="multipliziere"/>
</public>
<script language="JScript">
<![CDATA[
function addiere(n1, n2){
   return n1+n2;
}
function multipliziere(n1, n2){
   return n1*n2;
}
]]>
</script>
</component>
</package>

Zum Aufrufen der Skriptkomponente, auf die verwiesen wird, rufen Sie die vollständige Mitgliederhierarchie auf, um deren Methoden oder Eigenschaften abzurufen. Das folgende Beispiel veranschaulicht die dafür vorhandenen Möglichkeiten:

' Erstellt Instanz der ersten Skriptkomponente.
set o1 = CreateObject("Component.EingabeFenster")

' Ruft die Funktionen der zweiten Skriptkomponente direkt auf.
msgbox(o1.mathe.addiere(3,5))
msgbox(o1.mathe.multipliziere(3,5))

' Erstellt ein zweites Objekt, das direkt auf die mathe-Methode verweist.
Set o2 = o1.mathe()
msgbox(o2.addiere(4,5))
msgbox(o2.multipliziere(4,5))

Bei jedem Aufruf der createComponent()-Funktion wird eine neue Instanz der Skriptkomponente erstellt, auf die verwiesen wird. Wenn Sie Instanzinformationen zwischen den Aufrufen erhalten möchten, speichern Sie, wie im folgenden Beispiel, den Zeiger auf die zweite Skriptkomponente in einer globalen Variable.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<component id="komponente1">
<registration progid="Component.EingabeFenster"/>
<public>
   <property name="mathe">
      <get/>
   </property>
</public>
<script language="JScript">
<![CDATA[
var m = createComponent("komponente2")
function get_mathe(){
   return m
}
   ]]>
</script>
</component>

(komponente2 wie im vorherigen Beispiel)

Siehe auch

<package> | <component> | Inhalt von Skriptkomponentendateien


Suchen nach Fehlern in Skriptkomponentendateien

Da Windows® Script Components als COM-Komponenten verwendet werden, werden sie in der Regel automatisch ausgeführt. Beim Entwickeln einer Skriptkomponentendatei ist es ggf. jedoch sinnvoll, über Fehler in der Datei informiert zu werden. Drei Typen von Fehlerprüfungen stehen zur Verfügung:

  • Überprüfen der XML-Gültigkeit. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
  • Benachrichtigung bei Syntax- und Laufzeitfehlern aktivieren. Wenn ein Fehler in einer Skriptkomponentendatei auftritt, wird standardmäßig eine Fehlermeldung angezeigt. Durch Angeben der Fehlerbenachrichtigung veranlassen Sie die Skriptkomponenten-Syntaxanalyse, Einzelheiten zum Fehler anzuzeigen.
  • Debuggen aktivieren. Der Skript-Debugger kann normalerweise nicht für Skriptkomponenten verwenden werden. Wenn Sie das Debuggen aktivieren, können Sie den Skript-Debugger als Reaktion auf einen Fehler starten. Entweder legen Sie dazu einen Haltepunkt fest oder verwenden die Anweisung Stop (Microsoft® Visual Basic® Scripting Edition [VBScript]) bzw. debugger (JScript).

Festlegen der Fehleroptionen

Geben Sie die Fehleroptionen als Attribute der XML-Verarbeitungsanweisung <?component?> an.

So bestimmen Sie die Fehlerüberprüfung

  • Fügen Sie oben in der Skriptkomponentendatei (jedoch hinter der optionalen <?XML ?>-Deklaration) die <?component?>-Verarbeitungsanweisung mit einem oder mehreren der folgenden Attribute ein:
    • error Setzen Sie dieses Attribut auf TRUE, um ausführliche Fehlermeldungen zu Syntax- oder Laufzeitfehlern in der Skriptkomponente anzuzeigen.
    • debug Setzen Sie dieses Attribut auf TRUE, um das Debuggen zu aktivieren. Ist dieser Debugvorgang nicht aktiviert, können Sie den Skript-Debugger nicht für eine Skriptkomponente starten.

Die folgende Anweisung aktiviert z. B. alle drei Fehlermeldeoptionen:

<?component error="true" debug="true"?>
Tipp Schalten Sie das Melden von Fehlern aus, bevor Sie die Skriptkomponente in einer Produktionsumgebung einsetzen.

Siehe auch

Erstellen einer Skriptkomponenten-Typbibliothek | Erstellen von Registrierungsinformationen | Inhalt von Skriptkomponentendateien | Skriptkomponentendateien und XML-Übereinstimmung | Verwenden des Skriptkomponenten-Assistenten


Skriptkomponentendateien und XML-Übereinstimmung

Windows®-Skriptkomponenten sind XML-Dateien, die den XML-Richtlinien (Version 1.0) für die Definition von Elementen in derartigen Dateien entsprechen müssen. Obgleich XML-Elemente oberflächlich HTML-Tags ähneln, ist XML ein stringenter definiertes Protokoll. So unterscheiden z. B. die Elementnamen Groß- und Kleinschreibung.

Um das Erstellen von Skriptkomponenten zu erleichtern, kann für die Skriptkomponentenlaufzeitbibliothek (Scrobj.dll) angegeben werden, wie stringent die XML-Syntax in der Datei interpretiert werden soll. Das Skriptkomponenten-XML kann auch relativ formlos interpretiert werden und so dieselben Variationen bei Tags wie HTML ermöglichen.

Sie können jedoch auch eine XML-Gültigkeitsüberprüfung in der Skriptkomponentendatei verlangen. Bei dieser kontrolliert die Skriptkomponentenlaufzeitbibliothek, ob die XML-Syntax der Skriptkomponentendatei eng mit dem XML-Standard übereinstimmt. Sollten Sie den Einsatz für die Bearbeitung Ihrer Skriptkomponente jemals einen XML-Editors einsetzen, so sollten Sie die XML-Gültigkeitsüberprüfung aktivieren.

Wenn Sie die XML-Gültigkeitsüberprüfung aktivieren, muss die Skriptkomponentendatei den folgenden Regeln entsprechen.

  • Bei Elementtypen und Attributnamen ist die Schreibweise relevant. Elementtypen und Attributnamen werden üblicherweise klein geschrieben. Ausgenommen hiervon sind aus mehreren Teilen bestehende Namen wie z. B. internerName. Namen in XML-Dateien, welche sich eng an die XML-Standards halten, müssen den ohne Ausnahme den Benennungskonventionen genügen.
  • Attributwerte müssen in Anführungszeichen gesetzt werden. Werte für Attribute müssen von einfachen oder doppelten Anführungszeichen umgeben sein. Ohne XML-Gültigkeitsüberprüfung können Sie in einem <script>-Element z. B. die Anweisung language=JScript angeben. Bei Befolgung der XML-Regeln muss die Anweisung language="JScript" lauten.
  • Reservierte Zeichen in Skriptelementen müssen verschleiert werden. Skriptelemente enthalten häufig die Symbole "Größer als" (>) und "Kleiner als" (<), das UND-Zeichen (&) und andere in XML reservierte Zeichen. Wenn Sie eine den XML-Standards genügende Datei erstellen, müssen Sie dafür sorgen, dass diese reservierten Zeichen keine Konflikte bei der Analyse der XML-Syntax verursachen. Sie können Zeichen einzeln mit ESC-Sequenzen markieren (geben Sie z. B. "<" als "&lt;" an). Sie können auch ein vollständiges Skriptelement verschleiern, indem Sie es in einen <![CDATA[ ...]]>-Abschnitt einbetten. Ohne XML-Gültigkeitsüberprüfung behandelt die XML-Syntaxanalyse der Skriptkomponente <script>-Elemente so, als wären diese verschleiert.
    Anmerkung Fügen Sie im Skript keinen CDATA-Abschnitt ein, wenn keine strenge XML-konforme Syntaxanalyse ausgeführt werden soll. Andernfalls meldet die Skriptkomponente Fehler, wenn Sie versuchen, sie zu registrieren, zu instanziieren oder aufzurufen.

Weitere Einzelheiten zu den XML-Standards finden Sie auf der XML Specification-Website und der Microsoft® XML-Website.

So geben Sie die XML-Übereinstimmung an

  • Fügen Sie als erstes Element die Anweisung <?XML ?> in Ihre Datei ein.
    <?XML version="1.0" ?>
    Anmerkung Wenn Sie mithilfe des Skriptkomponenten-Assistenten eine Skriptkomponente erstellen, wird der Datei die Anweisung <?XML ?> hinzugefügt, sodass die XML-Anweisungen der Skriptkomponente streng analysiert werden.

Fehlt dieses Element, so nimmt die Skriptkomponentenlaufzeitbibliothek an, dass keine XML-Gültigkeitsüberprüfung erwünscht ist. In diesem Fall können Sie die Datei jedoch möglicherweise nicht mit einem XML-Editor bearbeiten.

Siehe auch

Inhalt von Skriptkomponentendateien | Suchen nach Fehlern in Skriptkomponentendateien | Verwenden des Skriptkomponenten-Assistenten


Verwenden von Skriptkomponenten

Nach dem Erstellen einer Windows®-Skriptkomponente können Sie diese in Ihren Anwendungen einsetzen. Die Verwendung von Skriptkomponenten ähnelt der anderer COM-Komponenten, jedoch geht jede Hostanwendung beim Instanziieren von COM-Komponenten etwas anders vor.

  • Registrieren von Skriptkomponenten Registrieren und Deregistrieren von Skriptkomponenten.
  • Verwenden von Skriptkomponenten in Anwendungen Erstellen einer Instanz einer Skriptkomponente in einer Hostanwendung.
  • Verarbeiten von Skriptkomponentenereignissen in der Hostanwendung Ermitteln von und Reagieren auf benutzerdefinierte Skriptkomponentenereignisse.


Registrieren von Skriptkomponenten

Zum Registrieren von Windows®-Skriptkomponenten muss die Skriptkomponentenlaufzeitbibliothek Scrobj.dll verfügbar und auf dem Computer registriert sein. Wenn Sie das Windows Skriptkomponentenpaket von der Microsoft® Scripting-Technologien-Website installieren, wird Scrobj.dll automatisch auf den Computer geladen und registriert.

Anmerkung Die Registrierung ist nicht erforderlich, wenn Sie eine Skriptkomponente erstellen, die über DHTML-Verhalten aufgerufen werden soll, da Microsoft® Internet Explorer 5.0 derartige Skriptkomponenten ohne vorherige Registrierung verwenden kann.

Dieser Abschnitt enthält Informationen zu folgenden Themen:

  • Registrieren von Skriptkomponenten
  • Registrieren von Skriptkomponenten für die Remoteinstanziierung
  • Deregistrieren von Skriptkomponenten

Registrieren von Skriptkomponenten

Sie haben verschiedene Möglichkeiten, eine Skriptkomponente auf einem lokalen Computer zu registrieren.

So registrieren Sie eine Skriptkomponente

  • Klicken Sie im Windows-Explorer mit der rechten Maustaste auf die Skriptkomponentendatei (WSC-Datei), und dann auf Registrieren.

    - oder -

  • Verwenden Sie die im Skriptkomponentenpaket enthaltene neue Version von Regsvr32.exe sowie den folgenden Befehl:
    regsvr32 URL/component_name.wsc

    Um z. B. die Skriptkomponente MyComponent.wsc zu registrieren, verwenden Sie die folgende Syntax:

    regsvr32 file:\\myserver\MyComponent.wsc

    - oder -

  • Wenn Sie nicht über die im Skriptkomponentenpaket enthaltene Version von Regsvr32.exe verfügen, verwenden Sie die vorhandene Version und registrieren die Skriptkomponentenlaufzeitbibliothek mit der folgenden Syntax:
    regsvr32 scrobj.dll /n /i:URL/Komponentenname.erw

    Um z. B. die Skriptkomponente MyComponent.wsc zu registrieren, verwenden Sie die folgende Syntax:

    regsvr32 scrobj.dll /n /i:http://myserver/MyComponent.wsc

Registrieren von Skriptkomponenten für die Remoteinstanziierung

Wenn Sie eine Remoteinstanz einer Skriptkomponente erstellen möchten, muss die Skriptkomponente auf dem Remotecomputer registriert werden, auf dem sie sich befindet. Ferner müssen Sie sie auf allen lokalen Computern registrieren, auf denen Sie die Skriptkomponente instanziieren möchten, damit DCOM über einen Ausgangspunkt in der Registrierung verfügt, von dem aus die Remote-Skriptkomponente gesucht und instanziiert werden kann.

So registrieren Sie eine Skriptkomponente für den Remotezugriff

  1. Ermitteln Sie die Programm-ID und Klassen-ID der remote zu instanziierenden Skriptkomponente.
    Anmerkung Die Skriptkomponente muss auf dem lokalen und dem Remotecomputer über dieselbe Klassen-ID verfügen, daher müssen Sie im <registration>-Element der Skriptkomponente eine Klassen-ID angeben.
  2. Erstellen Sie auf allen lokalen Computern den folgenden Registrierungseintrag:
    HKEY_CLASSES_ROOT\componentProgID

    wobei componentProgID die Programm-ID der zu instanziierenden Skriptkomponente darstellt.

  3. Erstellen Sie unter dem neuen Eintrag den Schlüssel CLSID, und setzen Sie dessen Wert auf die Klassen-ID der Skriptkomponente, die Sie mit eckigen Klammern umgeben.
    Tipp Eine einfache Möglichkeit zum Erstellen der richtigen Registrierungsinformationen besteht darin, die Skriptkomponente auf dem Server zu registrieren, auf dem sie instanziiert wird. Suchen Sie dann mithilfe von Regedit.exe den Eintrag HKEY_CLASSES_ROOT\componentProgID. Klicken Sie im Menü Registrierung auf Registrierungsdatei exportieren, wodurch eine REG-Datei erstellt wird. Diese Datei kann an lokale Computer verteilt werden. Die Benutzer können anschließend einfach diese Datei ausführen, um die gewünschten Registrierungseinträge zu erstellen.

Deregistrieren von Skriptkomponenten

Wenn Sie eine auf dem Computer registrierte Skriptkomponente nicht mehr benötigen, können Sie diese auf folgende Weise deregistrieren:

  • Klicken Sie im Windows-Explorer mit der rechten Maustaste auf den Namen der Skriptkomponentendatei, und klicken Sie dann auf Aus Registrierung entfernen.
  • Führen Sie Regsvr32.exe mit der Option -u aus.

Siehe auch

Erstellen von Registrierungsinformationen | Inhalt von Skriptkomponentendateien | Verwenden von Skriptkomponenten in Anwendungen


Verwenden von Skriptkomponenten in Anwendungen

Nach dem Erstellen einer Windows®-Skriptkomponente können Sie diese wie eine COM-Komponente verwenden, indem Sie sie in einer Hostanwendung wie Microsoft® Visual Basic®, C++, Microsoft® Internet Explorer oder anderen Anwendungen aufrufen.

Anmerkung Für DHTML-Verhalten geschriebene Skriptkomponenten werden auf andere Weise als herkömmliche COM-Objekte instanziiert. Einzelheiten hierzu finden Sie in "Using DHTML Behaviours" auf der Microsoft Site Builder Network (SBN)-Website.

Abhängig von der Hostanwendung, dem Typ der verwendeten Skriptkomponente und dem Einsatzort der Skriptkomponente gibt es eine Vielzahl von Optionen zum Erstellen von Instanzen der Skriptkomponente. Diese unterscheiden sich im wesentlichen in der Frage, ob Sie die Instanz der Skriptkomponente lokal (auf demselben Computer wie die Anwendung) oder remote (auf einem anderen Computer) erstellen möchten.

In beiden Fällen müssen verschiedene Punkte beachtet werden. Wenn Sie eine Instanz der Skriptkomponente erstellen und während der Verwendung der Instanz die WSC-Datei verändern, wird diese Instanz der Komponente nicht aktualisiert. Um diese zu aktualisieren, müssen Sie eine neue Instanz der Skriptkomponente erstellen.

Welche Eigenschaften und Methoden Sie verwenden können, wird durch das <public>-Element und die Skripte in der Skriptkomponentendatei definiert. Wenn Sie in einer Umgebung wie z. B. Visual Basic arbeiten, die Anweisungsvervollständigung unterstützt, können Sie beim Erstellen und Verwenden einer Typbibliothek die Eigenschaften und Methoden der Skriptkomponente einsehen. Weitere Informationen hierzu finden Sie unter Erstellen einer Skriptkomponenten-Typbibliothek.

Falls der Versuch misslingt, eine Instanz der Skriptkomponente zu erstellen, ist die wahrscheinliche Ursache ein Syntax- oder Laufzeitfehler in der Skriptkomponentendatei. Ein Analysefehler bei einem XML-Element (einschließlich dem <registration>-Element) kann das Scheitern der Instanziierung bewirken. Aktivieren Sie beim Entwickeln der Skriptkomponentendatei wie unter Suchen nach Fehlern in Skriptkomponentendateien beschrieben die Fehlerüberprüfungsoptionen in den <?component?>-Verarbeitungsanweisungen.

Tipp Damit Hostanwendungen einfacher über die von einer Skriptkomponente offen gelegten COM-Schnittstellen informiert werden, kann die Skriptkomponentenlaufzeitbibliothek eine Typbibliothek generieren, die Informationen zu den in der Skriptkomponente verfügbaren Eigenschaften, Methoden und Ereignissen enthält. Weitere Informationen hierzu finden Sie unter Erstellen einer Skriptkomponenten-Typbibliothek.

Erstellen lokaler Instanzen von Skriptkomponenten

Wenn die Skriptkomponente auf demselben Computer wie die Hostanwendung installiert ist, können Sie die Skriptkomponente wie in Registrieren von Skriptkomponenten erläutert als eigenständige Komponente registrieren. Anschließend können Sie die üblichen Möglichkeiten der Hostanwendung zum Erstellen einer Objektinstanz verwenden (z. B. CreateObject-Funktion). Um z. B. eine Instanz der Skriptkomponente zu erstellen, die mit der Programm-ID Component.MeineKomponente in Visual Basic registriert wurde, verwenden Sie eine Anweisung wie die folgende:

Set oKomponente = CreateObject("Component.MeineKomponente")
Anmerkung Wenn die Hostanwendung Visual Basic ist und Sie von der Skriptkomponente ausgelöste Ereignisse verarbeiten möchten, müssen Sie das Objekt beim Kompilieren in eine Dim-Anweisung einbinden, die wie im folgenden Beispiel das Schlüsselwort WithEvents enthält:
   Dim WithEvents scMeineKomponente As MeineKomponente
   Private Sub Anweisung1_Click()
   Set scMeineKomponente=CreateObject("MeineKomponente")
   End Sub
Anmerkung Einzelheiten hierzu finden Sie unter Verarbeiten von Skriptkomponentenereignissen in der Hostanwendung. Dies ist nicht nötig, wenn Sie keine Behandlungsroutinen für Skriptkomponentenereignisse schreiben möchten.

Auf einer Webseite können Sie mit dem <OBJECT>-Kennzeichen eine Instanz der Skriptkomponente erstellen. Dazu müssen Sie die Klassen-ID der Skriptkomponente kennen und diese wie im folgenden Beispiel in das <OBJECT>-Kennzeichen einfügen:

<OBJECT
   ID="oKomponente"
   CLASSID="clsid:855c8606-49ba-11d2-a428-00c04f8ec80b">
</OBJECT>

Ist die Skriptkomponente nicht auf dem lokalen Computer registriert, können Sie das Skriptkomponenten-Verweisobjekt verwenden, um eine Instanz für dieses zu erstellen. Das Verweisobjekt wird von Funktionen wie GetObject unterstützt. Die Skriptkomponentenlaufzeitbibliothek Scrobj.dll muss auf dem lokalen Computer registriert sein.

Anmerkung Aus Sicherheitsgründen wird in Microsoft® Internet Explorer die GetObject-Funktion für Skriptkomponenten nicht unterstützt.

Das folgende Beispiel veranschaulicht, wie die Visual Basic-Funktion GetObject zum Erstellen einer Instanz einer nicht registrierten Skriptkomponente aufzurufen ist:

Set oKomponente = GetObject("script:c:\COM\MyComponent.wsc")

Enthält die WSC-Datei, auf die das Verweis-Objekt verweist, mehr als eine Skriptkomponente, so können Sie die zu instanziierende Skriptkomponente benennen, indem Sie ihren Namen mit einem Rautenzeichen (#) als Trennzeichen dem Dateinamen hinzufügen. Im Folgenden wird eine Instanz der Skriptkomponente in der Datei MyComponent.wsc mit der Kennung (ID) "mathe" erstellt.

Set oKomponente = GetObject("script:c:\COM\MyComponent.wsc#mathe")

Unter Verwendung eines URL-Verweisobjekts können Sie eine Instanz einer Skriptkomponente erstellen, die sich auf einem anderen Computer (z. B. auf einem Webserver) befindet. Verwenden Sie wie in dem folgenden Beispiel einen vollständigen URL (mit HTTP-Protokoll) als Speicherort der Skriptkomponente:

Set oKomponente = GetObject("script:http://myserver/MyComponent.wsc")

Internet Explorer 5.0 unterstützt die DHTML-Verhaltenssyntax zum Erstellen von Instanzen von Skriptkomponenten. Diese Syntax funktioniert geringfügig anders als die herkömmliche Syntax zum Instanziieren von Objekten und stellt sicher, dass die Skriptkomponente nicht auf möglicherweise unsichere Systemobjekte zugreift. Ein Beispiel finden Sie unter "Using DHTML Behaviours" auf der Microsoft Site Builder Network (SBN)-Website.

Erstellen von Remoteinstanzen von Skriptkomponenten

Ist das Attribut remoteable des <registration>-Elements einer Skriptkomponente auf TRUE gesetzt, so kann die Skriptkomponente mithilfe von DCOM (Distributed COM) auf einem anderen Computer remote instanziiert werden.

Auf beiden Computern muss Basis-DCOM installiert sein. Wird auf einem Computer eines der folgenden Betriebssysteme ausgeführt, so ist DCOM auf diesem korrekt konfiguriert:

  • Windows NT 4.0
  • Windows 95 bei ausgeführtem Internet Explorer 4.0
  • Windows 95 (OSR2 oder neuer). Einzelheiten hierzu finden Sie auf der Windows 95 OSR2-Seite der Microsoft®-Website.
  • Windows 95 mit DCOM für Windows 95, Version 1.2. Einzelheiten hierzu finden Sie auf der DCOM für Windows 95-Seite der Microsoft®-Website.

Die Skriptkomponente selbst muss wie folgt eingesetzt werden:

  • Auf dem lokalen Computer benötigen Sie zum Zeitpunkt der Instanziierung der Skriptkomponente weder die Skriptkomponente (WSC-Datei) selbst noch die Skriptkomponentenlaufzeitbibliothek (Scrobj.dll). Sie müssen jedoch in der lokalen Windows-Registrierung für DCOM über einen Verweis auf die Remote-Skriptkomponente verfügen. Einzelheiten finden Sie unter Registrieren von Skriptkomponenten.
  • Auf dem Remotecomputer benötigen Sie die Skriptkomponente und die Skriptkomponentenlaufzeitbibliothek. Beide müssen registriert sein.

Wenn Sie eine Instanz einer Remote-Skriptkomponente erstellen, arbeitet diese in den Anwendungen, als wäre es ein lokales Objekt. Sie können ihre Methoden ganz normal aufrufen und ihre Eigenschaften auslesen und setzen. Das Skript der Remote-Skriptkomponente wird jedoch auf dem Remotecomputer ausgeführt und hat Zugriff auf die Ressourcen dieses Computers (im Rahmen der durch die Sicherheit usw. auferlegten Beschränkungen). Die Kommunikation zwischen der Hostanwendung auf dem lokalen Computer und der Skriptkomponente auf dem Remotecomputer wird automatisch und im Hintergrund von DCOM durchgeführt.

Zur Erstellung einer Remoteinstanz einer Skriptkomponente rufen Sie die CreateObject-Methode auf und übergeben dieser als Parameter den Namen des Remotecomputers.

Anmerkung Um CreateObject für das Instanziieren von Remote-Skriptkomponenten zu verwenden, wird Visual Basic 6.0 oder höher bzw. VBScript 5.0 oder höher benötigt.

Das folgende Visual Basic-Beispiel zeigt diesen Vorgang auf dem Computer "meinServer":

Set neuesS = CreateObject("Component.MeineKomponente", "meinServer")
Anmerkung Bei der ersten Instanziierung einer Remote-Skriptkomponente kann es während des Verbindungsaufbaus zwischen den beiden Computern über DCOM zu einer kurzen Verzögerung kommen.

Siehe auch

Einführung in Windows Script Components | Erstellen von Registrierungsinformationen | Erstellen von Skriptkomponenten | Funktionsweise von Skriptkomponenten | Registrieren von Skriptkomponenten


Verarbeiten von Skriptkomponentenereignissen in der Hostanwendung

Die meisten Hostanwendungen können Windows®-Skriptkomponentenereignisse wie beliebige andere Ereignisse empfangen. Einige Hostanwendungen müssen jedoch eingerichtet werden, damit sie Skriptkomponentenereignisse empfangen können.

Anmerkung Wenn Sie eine Verhaltens-Skriptkomponente erstellen, werden Ereignisse mithilfe des DHTML-Objektmodells offengelegt. Weitere Informationen hierzu finden Sie unter Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten.

In Visual Basic muss die Komponente mittels früher Bindung (zur Kompilierzeit) eingebunden werden ("early binding"), damit Ereignisse empfangen werden können. Zur frühen Bindung einer Komponente ist das Einrichten einer Typbibliothek für die Skriptkomponente erforderlich. Weitere Informationen hierzu finden Sie unter Erstellen einer Skriptkomponenten-Typbibliothek. Zum Deklarieren der Objektvariable für die Komponente muss das WithEvents-Schlüsselwort angegeben werden. (Der in der Dim-Anweisung verwendete Klassenname ist die ID, die Sie im <component>-Element der Skriptkomponente zugewiesen haben.)

Im Folgenden ist das Beispiel einer entsprechenden Visual Basic-Anweisung aufgeführt:

Dim WithEvents Skriptkomponente1 as MeineSkriptkomponente
Set Skriptkomponente1 = CreateObject("MeineSkriptkomponente")
Sub Skriptkomponente1_namegeaendert
   MsgBox("Wert der name-Eigenschaft geändert")
End Sub

Offenlegen von Ereignissen


Implementieren von ASP-Skriptkomponenten

Mithilfe von Windows®-Skriptkomponenten können Sie die Funktionalität von Active Server Pages (ASP) nutzen. Auf diese Weise können Sie Serverskript in eine Komponente isolieren, die in ASP-Seiten aufgerufen werden kann und die erneute Verwendung von ASP-Code ermöglicht. Angenommen, Sie verfügen über mehrere ASP-Seiten zum Verarbeiten von Formularen. Anstatt die gesamte formularverarbeitende Logik einzeln in jede ASP-Seite zu implementieren, können Sie diese so einrichten, dass jede ASP-Seite eine erstellte Skriptkomponente mit der formularverarbeitenden Logik aufruft.

Um eine ASP-Skriptkomponentendatei zu erstellen, generieren Sie, wie in Inhalt von Skriptkomponentendateien beschrieben, manuell eine Skriptkomponente. Verwenden Sie das <implements>-Element, um die ASP-Schnittstellenbehandlungsroutine zu implementieren. Stellen Sie dabei das Typattribut des <implements>-Elements auf "ASP" ein. Auf diese Weise wird der Zugriff auf die folgenden ASP-Objekte ermöglicht: Response, Request, Server, Session und Application. In einer ASP-Skriptkomponente können Sie diese Objekte direkt wie in einer ASP-Seite verwenden. Die ASP-Schnittstellenbehandlungsroutine ist in die Skriptkomponenten-Laufzeitbibliothek (Scrobj.dll) integriert, sodass keine externen Schnittstellenbehandlungsroutinen benötigt werden.

Bei der Ausführung der Skriptkomponente verwendet sie denselben Namensraum wie die ASP-Seite, die sie aufgerufen hat. Die Skriptkomponente kann auf die Objekte Request und Server so zugreifen, als befände sich das betreffende Objekt in der ASP-Seite, die sie aufgerufen hat. Die Skriptkomponente kann außerdem auf dieselben Session- und Application-Variablen wie die aufrufende ASP-Seite zugreifen. Wenn die ASP-Skriptkomponente darüber hinaus eine Methode für das Response-Objekt aufruft, ist das Ergebnis dieser Aufrufe in der aufrufenden Seite verfügbar. Wenn Sie z. B. Response.Write aufrufen, wird die Ausgabe zu der aufrufenden ASP-Seite geleitet.

Das folgende Beispiel zeigt eine einfache ASP-Skriptkomponente, die eine Eigenschaft und eine Methode enthält. Die Eigenschaft anwendungsVar1 macht die hypothetische Application-Variable Var1 verfügbar. Die Datumeinfuegen-Methode gibt das aktuelle Datum in der aufrufenden ASP-Seite aus.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<component id="ASPKomponente">
<registration progid="ASPKomponente"/>

<public>
   <property name="anwendungsVar1"/>
   <method name="Datumeinfuegen"/>
</public>

<implements type="ASP"/>
<script language="VBScript">
<![CDATA[
dim anwendungsVar1
anwendungsVar1 = Application("Var1")
Sub Datumeinfuegen()
   Response.Write(Date)
End Sub
]]>
</script>
</component>

Eine aufrufende ASP-Seite kann z. B. folgendermaßen eingerichtet werden:

<HTML>
<HEAD>
<TITLE>Testen der Script Components-ASP-Behandlungsroutine</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>Testen der ASP-Behandlungsroutine</H1>
<%Set wscASP = CreateObject("ASPKomponente")%>
<P>Das aktuelle Datum ist <%= wscASP.Datumeinfuegen()%></P>

<P>Der Wert der Application(Var1)-Variable ist <%= wscASP.anwendungsVar1%></P>

</BODY>
</HTML>


Implementieren von DHTML-Verhaltens-Skriptkomponenten

Windows® Script Components bietet eine funktionsreduzierte und überschaubare Möglichkeit, Komponenten für das Implementieren von DHTML-Verhalten zu erstellen, die in Microsoft® Internet Explorer 5.0 verfügbar sind. Mithilfe von Skriptkomponenten können Skriptentwickler Verhalten mittels Microsoft® Visual Basic® Scripting Edition (VBScript), Microsoft® JScript® (ECMAScript) und Skripterstellungssprachen anderer Hersteller implementieren, die die Microsoft® ActiveX® Scripting-Schnittstellen unterstützen.

Allgemeine Informationen zu DHTML-Verhalten finden Sie unter http:// msdn.microsoft.com/workshop.

Das Erstellen von Verhaltens-Skriptkomponenten bietet folgende Möglichkeiten:

  • Offenlegen von Verhalten durch Einbinden von Ereignissen in Funktionen der Skriptkomponente, die im enthaltenden Dokument entweder für bestimmte Elemente, für das DHTML-Dokument oder für window-DHTML-Objekte ausgelöst werden.
  • Definieren von Layouts mit HTML-Text, der in das enthaltende Dokument eingefügt wird, wenn das Verhalten aufgerufen wird.
  • Offenlegen benutzerdefinierter Eigenschaften und Methoden, die die Menge der Mitglieder eines Elements in der enthaltenden Seite erweitern.
  • Offenlegen benutzerdefinierter Ereignisse, die die Skriptkomponente jederzeit auslösen kann. Eine Skriptkomponente kann z. B. ein benutzerdefiniertes Ereignis auslösen, nachdem der Inhalt eines DHTML-Elements in der Seite geändert wurde.
  • Binden einer Skriptkomponentenfunktion an bestimmte Standardereignisse, z. B. Laden des Dokuments oder Ändern des Inhalts des Elements.

In diesem Abschnitt sind die folgenden Informationen enthalten:

  • Erstellen einer Verhaltens-Skriptkomponente Überprüfen, welche Elemente in die Verhaltens-Skriptkomponentendatei aufgenommen werden sollen, wie Informationen für das enthaltende Dokument freigegeben werden, welche DHTML-Funktionsmerkmale für die Verhaltens-Skriptkomponenten gelten und worauf bei der Skripterstellung geachtet werden soll.
  • Offenlegen von Eigenschaften und Methoden in Verhaltens-Skriptkomponenten Erstellen von Eigenschaften und Methoden, die zusätzlich zu den bereits verfügbaren DHTML-Elementen bereitgestellt werden sollen.
  • Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten Offenlegen und Auslösen von Ereignissen der Skriptkomponente im enthaltenden Dokument.
  • Referenz zur Verhaltens-Behandlungsroutine Eine Liste der XML-Elemente, -Eigenschaften und -Methoden, die in Verhaltens-Skriptkomponenten verwendet werden.

Siehe auch

Die Themen "DHTML Behaviors" und "Using DHTML Behaviors" im Site Builder Network (SBN) Workshop auf der Microsoft-Website.


Erstellen einer Verhaltens-Skriptkomponente

Verhaltens-Skriptkomponenten werden auf ähnliche Weise erstellt wie alle übrigen Skriptkomponenten, ausgenommen davon ist das Verknüpfen von Microsoft® Internet Explorer-Ereignissen mit Skripten, die als Antwort auf diese Ereignisse ausgeführt werden.

Dieses Thema enthält die folgenden Abschnitte:

  • Erstellen einer Verhaltens-Skriptkomponentendatei
  • Verhaltensbezogene Verbesserungen am DHTML-Objektmodell
  • Abrufen von Ereignisparametern in der Skriptkomponente
  • Regeln für den Gültigkeitsbereich
  • Überlegungen zum zeitlichen Ablauf

Erstellen einer Verhaltens-Skriptkomponentendatei

Verhaltens-Skriptkomponenten enthalten ein <implements>-Element zum Festlegen der Behandlungsroutinen der Verhaltensschnittstelle. Folgende Elemente können Bestandteil von <implements>-Elementen sein:

  • <attach>-Elemente zum Einbinden von Ereignissen in einem enthaltenden Dokument in Funktionen, die in einem separaten <script>-Element innerhalb der Skriptkomponente erstellt wurden.
  • <layout>-Elemente zum Festlegen des HTML-Textes, der in das enthaltende Dokument eingefügt werden soll.
  • <event>-Elemente zum Festlegen benutzerdefinierter Ereignisse, die von der Skriptkomponente ausgelöst werden.

Elemente in Verhaltens-Skriptkomponenten können benutzerdefinierte Eigenschaften und Methoden enthalten, die über diejenigen Eigenschaften und Methoden hinausgehen, die für dasselbe Element im enthaltenden Dokument verfügbar sind. Weitere Informationen finden Sie unter Offenlegen von Eigenschaften und Methoden in Verhaltens-Skriptkomponenten.

Das folgende Beispiel zeigt eine Verhaltens-Skriptkomponente, mit der die Farbe eines Elements der Seite geändert wird, sobald der Mauszeiger über das Element gezogen wird. Wie im folgenden Beispiel aufgeführt, werden dazu die DHTML-Ereignisse onmouseover und onmouseout in Funktionen der Skriptkomponente eingebunden, die das DHTML-Style-Attribut des Elements festlegen. Außerdem wird die Verknüpfungsfarbe des Dokuments festgelegt, sobald es durch Einbinden in das onload-Ereignis des DHTML-Window-Objekts initialisiert wird.

Zusätzlich zum Einbinden von Ereignissen in Skripten fügt die Skriptkomponente Text in mit dieser Skriptkomponente verbundene <H1>-Elemente des enthaltenden Dokuments ein. Schließlich wird über das Offenlegen und Auslösen eines beiAenderung-Ereignisses das Event-Objekt des DHTML-Window-Objekts mit der benutzerdefinierten neueFarbe-Eigenschaft erweitert.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<?XML version="1.0"?>
<component>
<implements type="Behavior">
   <comment>Im Folgenden werden die Funktionen arbeite_onmouseover
   und do_omouseout aufgerufen, wenn der Mauszeiger über
   das Element im enthaltenden Dokument gezogen wird.</comment>

   <attach event="onmouseover" handler="arbeite_onmouseover"/>
   <attach event="onmouseout" handler="arbeite_onmouseout"/>

   <comment> Dieses Ereignis ruft die docinit-Funktion auf, wenn das onload-
   Ereignis von window ausgelöst wird.</comment>

   <attach for="window" event="onload" handler="docinit"/>

   <comment>Im Folgenden wird der im enthaltenden Dokument
   anzuzeigende HTML-Text festgelegt.</comment>

   <layout>
      <h1>Dies ist der im Element angezeigte HTML-Text</h1>
   </layout>

   <comment>Im Folgenden wird ein benutzerdefiniertes Ereignis definiert, das innerhalb
   der Skriptkomponente mit der fireEvent-Methode ausgelöst wird.</comment>

   <public>
      <event name="beiAenderung"/>
   </public>

</implements>
<script language="JScript">
<![CDATA[
var normaleFarbe, normalerAbstand;
function arbeite_onmouseover(){
   // Ursprüngliche Werte speichern.
   normaleFarbe  = style.color;
   normalerAbstand= style.letterSpacing;
   style.color  = "red";
   style.letterSpacing = 2;
   oEreignis = createEventObject();
   oEreignis.neueFarbe = "red";
   fireEvent("beiAenderung",oEreignis);
}
function arbeite_onmouseout(){
   // Auf ursprüngliche Werte zurücksetzen.
   style.color  = normaleFarbe;
   style.letterSpacing = normalerAbstand;
}
function docinit(){
   document.linkColor = "red";
}
]]>
</script>
</component>

Folgende Hinweise betreffen den vorhergehenden Code:

  • In einer Skriptkomponentenprozedur verweist der implizierte this-Verweis in einer Ereignisbehandlungsroutine auf die enthaltene Funktion und nicht auf das Element, für das das Ereignis ausgelöst wird.
  • Wie in einer HTML-Seite ist es möglich, in einer Skriptkomponente Inline-Skripttext in einem <script>-Element abzulegen. In diesem Fall werden die globalen Variablen normaleFarbe und normalerAbstand im Inline-Skript definiert.
    Anmerkung Inline-Skripte werden ausgeführt, noch bevor das Verhalten auf das Element angewendet wird; auf diese Weise können nur bestimmte Anweisungen im Inline-Skript ausgeführt werden. Wenn z. B dasselbe Verhalten in dem Beispiel die Eigenschaft markierungsFarbe offen legen würde, könnte das Inline-Skript direkt auf markierungsFarbe verweisen (anders ausgedrückt, wird es mit dem Namensraum der Skriptkomponente aufgelöst). Es ist jedoch unzulässig, in einem Inline-Skript auf markierungsFarbe als verweisen, da an diesem Punkt das Verhalten noch nicht auf Behavior.element.markierungsFarbe zu das Element angewendet wurde. Weitere Informationen finden Sie in Regeln für den Gültigkeitsbereich und Überlegungen zum zeitlichen Ablauf weiter unten in diesem Kapitel.

Verhaltensbezogene Verbesserungen am DHTML-Objektmodell

Die folgenden Verbesserungen wurden am DHTML-Objektmodell für Microsoft® Internet Explorer 5 vorgenommen, um die Unterstützung für verschiedene Verhalten hinzuzufügen.

  • Das Verhaltensattribut Cascading Style Sheet (CSS) gibt die Position des Verhaltens an.
  • Die DHTML-Methoden attachEvent und detachEvent ermöglichen einer Verhaltens-Skriptkomponente den Empfang von Ereignisbenachrichtigungen von der enthaltenden Seite, indem eine Funktion angegeben wird, die aufgerufen wird, wenn das Ereignis für das Objekt ausgelöst wird.
  • Mithilfe der DHTLM-Eigenschaft uniqueID kann eine Verhaltens-Skriptkomponente dem Element eine ID zuweisen. Dies ist dann nützlich, wenn eine Skriptkomponente Code in die enthaltende Seite einfügt und die ID des Elements angeben muss, auf das das Verhalten angewendet wird.

Abrufen von Ereignisparametern in der Skriptkomponente

In DHTML liefert das DHTML-Objekt event Informationen zum Ereignis. Obgleich in DHTML die Ereignisbehandlungsroutinen über das DTHML-Objekt window auf das event-Objekt zugreifen können, wird in einer Verhaltens-Skriptkomponente das event-Objekt als Parameter an die Ereignisbehandlungsroutine übergeben.

Der folgende Code in einer hypothetischen Berechnungs-Skriptkomponente demonstriert die Tastatur- und Mausereignisse, die in der Skriptkomponentenfunktion berechne eingebunden sind. Die berechne-Funktion verwendet das event-Objekt, um Informationen zu den Bedingungen abzurufen, unter denen das Ereignis ausgelöst wurde.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<implements type="Behavior">
   <attach event="onclick" handler="berechne"/>
   <attach event="onkeydown" handler="berechne"/>
</implements>

<script language="jscript">
<![CDATA[
function berechne(oEreignisParam){
   oElement = oEreignisParam.srcElement;
   if(oEreignisParam.type == "keydown"){
      sWert = KeyCodeToChar(oEreignisParam.keyCode);
   }
   else{
      if (oEreignisParam.srcElement.type != "button"){
         return;}
      sWert = stripBlanks(oEreignisParam.srcElement.value);
   }
}
// weiteres Skript hier einfügen
]]>
</script>

Regeln für den Gültigkeitsbereich

Beim Arbeiten mit Skriptkomponenten werden die folgenden drei Namensräume verwendet: das Verhalten, das Element und das enthaltende Dokument. Die Regeln für den Gültigkeitsbereich bestimmen die Reihenfolge, in der Namenskonflikte in einer Verhaltens-Skriptkomponente aufgelöst werden. Ein Name wird in dieser Reihenfolge aufgelöst:

Der Name wird in einen durch das Verhalten an beliebiger Stelle in der Skriptkomponente definierten Namen aufgelöst, sei es in eine Variable, eine durch das Verhalten definierte Eigenschaft, eine Methode oder ein Ereignis.

Wird der Name nicht erfolgreich aufgelöst, wird er in eine Eigenschaft, eine Methode oder ein Ereignis aufgelöst, die/das auf das Element angewendet wird.

Schließlich wird der Name in den Namen einer Eigenschaft, einer Methode oder eines Ereignisses aufgelöst, die/das auf das window-Objekt der enthaltenden Seite angewendet wird.

Im folgenden Beispiel werden die Namen unter Verwendung der oben aufgeführten Regeln für den Gültigkeitsbereich aufgelöst:

  • normaleFarbe Wird in die Variable aufgelöst, die durch das weiter oben im Skript genannte Verhalten definiert wird.
  • style Wird in die style-Eigenschaft des Elements in dem enthaltenden Dokument aufgelöst.
    <implements type="Behavior">
   <attach event="onmouseover" handler="arbeite_onmouseover"/>
   <attach event="onmouseout "handler="arbeite_onmouseout"/>
</implements>

<script language="JScript">
<![CDATA[
var normaleFarbe, normalerAbstand;
function arbeite_onmouseover()
{
   // Ursprüngliche Werte speichern.
   normaleFarbe = style.color;
   normalerAbstand= style.letterSpacing;

   style.color  = "red";
   style.letterSpacing = 2;
}
function arbeite _onmouseout()
{
   // Auf ursprüngliche Werte zurücksetzen.
   style.color = normaleFarbe;
   style.letterSpacing = normalerAbstand;
}
]]>
</script>

Überlegungen zum zeitlichen Ablauf

Beim Erstellen von Verhalten ist es wichtig zu wissen, wann das Verhalten auf das Element angewendet werden soll. Bis das Verhalten angewendet wird, dürfen Skripten nicht auf die Werte der verhaltensdefinierten Eigenschaften zugreifen, die ggf. in dem Dokument festgelegt sind.

Da das Verhalten in einer vom HTML-Dokument getrennten Datei verkapselt ist, wird diese getrennt vom Rest des Dokuments übertragen. Nach dem Analysieren und Laden des Dokuments empfängt das Verhalten Benachrichtigungen zum Status über die Funktion, die mit der attachNotification-Methode angegeben wird. Gegenwärtig wird das Verhalten mit einer Benachrichtigung vom Typ "contentChange" oder "documentReady" benachrichtigt. Die Benachrichtigung "contentChange" wird gesendet, wenn der Inhalt des Elements, an das das Verhalten angefügt wurde, analysiert worden ist, und anschließend immer dann, wenn der Inhalt des Elements geändert wurde. Die Benachrichtigung "documentReady" wird gesendet, wenn das Dokument übertragen und analysiert wurde.

Da Inline-Skript in der Skriptkomponentendatei ausgeführt wird, sobald das Verhalten instanziiert wurde, kann auf die Werte der verhaltensdefinierten Attribute und Eigenschaften, die in dem Dokument gesendet wurden, ggf. nicht über ein Inline-Skript zugegriffen werden. Diese Eigenschaften stehen jedoch dann zur Verfügung, wenn die erste "contentChange"-Benachrichtigung gesendet wurde.

Siehe auch

Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten | Offenlegen von Eigenschaften und Methoden in Verhaltens-Skriptkomponenten | Referenz zur Verhaltens-Behandlungsroutine


Offenlegen von Eigenschaften und Methoden in Verhaltens-Skriptkomponenten

Verhaltens-Skriptkomponenten können, ähnlich wie Automatisierungs-Skriptkomponenten, benutzerdefinierte Eigenschaften und Methoden offen legen. Die Eigenschaften und Methoden von Verhaltens-Skriptkomponenten erweitern die Eigenschaften und Methoden, die den Elementen in der enthaltenden Seite zur Verfügung stehen. Sie können z. B. eine Verhaltens-Skriptkomponente erstellen, die die Farbe eines Elements ändert, wenn die Maus darüber geführt wird. Das Definieren von Eigenschaften in der Skriptkomponente ermöglicht es, benutzerdefinierte Eigenschaften im Dokument bereitzustellen. Beispielsweise ermöglicht die Eigenschaft markierungsFarbe Webseitenautoren das Festlegen von Farbeinstellungen, die zum Hervorheben von Text verwendet werden.

Ein Verhalten kann das Standardverhalten eines Elements außer Kraft setzen, indem eine Eigenschaft oder Methode mit demselben Namen offen gelegt wird, der bereits für das Element definiert wurde.

Eigenschaften und Methoden werden in einem <public>-Element getrennt vom <implements>-Element definiert, mit dem die Verhaltens-Behandlungsroutine angegeben wurde. Weitere Informationen hierzu finden Sie unter Offenlegen von Eigenschaften und Offenlegen von Methoden.

Offenlegen einer Eigenschaft

In Skriptkomponenten werden Eigenschaften in einem <public>-Element offen gelegt. Der folgende Skriptkomponentenauszug zeigt eine Verhaltens-Skriptkomponente, die die benutzerdefinierte Eigenschaft markierungsFarbe offen legt. Wenn die enthaltende Seite den Wert der Eigenschaft nicht separat einstellt, ist die Standardeinstellung "red" gültig.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <property name="markierungsFarbe"/>
</public>

<implements type="Behavior">
   <attach for="window" event="onload" handler="ereignis_onload">
</implements>

<script language="JScript">
<![CDATA[
   var markierungsFarbe;
   function ereignis_onload(){
      // Inizialisiert die Eigenschaften.
      if (markierungsFarbe == null){
         markierungsFarbe = "red";}
   }
   // Weiteres Skript hier einfügen.
]]>
</script>

Offenlegen einer Methode

Das Offenlegen einer Methode in einer Verhaltens-Skriptkomponente entspricht diesem Vorgang in einer Automatisierungs-Skriptkomponente. Weitere Informationen finden Sie in Offenlegen von Methoden. In einer Verhaltens-Skriptkomponente erweitern die in der Skriptkomponente offengelegten Methoden, die bereits für das Element in dem enthaltenden Dokument vorhandenen Methoden.

Siehe auch

Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten


Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten

Verhaltens-Skriptkomponenten, z. B. Automatisierungs-Skriptkomponenten, können benutzerdefinierte Ereignisse offen legen, die innerhalb der Skriptkomponente ausgelöst werden und im enthaltenden Dokument verarbeitet werden können. Wie im folgenden Beispiel gezeigt, wird ein Ereignis im <public>-Element deklariert:

<public>
   <event name="beiAenderung" />
</public>

Das Ereignis kann ausgelöst werden, indem die fireEvent-Methode im Skript aufgerufen wird:

<script language="JScript">
   // Andere Codeinformationen.
   fireEvent("beiAenderung");
   // Andere Codeinformationen.
</script>

Ein Verhalten kann das Standardverhalten eines Elements außer Kraft setzen, indem ein Ereignis mit demselben Namen offen gelegt wird, das bereits für das Element definiert wurde. Beispielsweise kann ein Verhalten, das ein onclick-Ereignis offen legt, das onclick-Standardereignis des Elements außer Kraft setzen.

Abrufen und Festlegen von benutzerdefinierten Ereignisinformationen

Das benutzerdefinierte Skriptkomponentenereignis kann auf das ereignisspezifische Informationen enthaltene DHTML-Ereignisobjekt zugreifen. Dieses Objekt bietet die folgenden Möglichkeiten:

  • Ändern vorhandener Ereignisobjekteigenschaften, wie z. B. keyCode, die für das aufrufende Ereignis festgelegt wurden.
  • Erstellen neuer (expando-)Eigenschaften für das Ereignisobjekt, um Informationen über das Ereignis zurück zu dem enthaltenden Ereignis zu übergeben.

Rufen Sie im Skriptkomponentencode die createEventObject-Methode auf, um eine neue Instanz eines Ereignisobjekts zu erstellen. Legen Sie anschließend eine oder mehrere Eigenschaften für das neue Ereignisobjekt fest. Wenn Sie die fireEvent-Methode aufrufen, können Sie das neue Ereignisobjekt mit dem Ereignisnamen übergeben.

Um eine neue expando-Eigenschaft zu erstellen, müssen Sie diese lediglich benennen, wenn ihr Wert im Skript zugewiesen wird. Das folgende Beispiel zeigt, wie Sie die neue Eigenschaft MeineEigenschaft für das Ereignisobjekt erstellen können:

oEreignis = createEventObject();
oEreignis.MeineEigenschaft= "ein neuer Wert"
Anmerkung Sie können expando-Eigenschaften nur dann erstellen, wenn Sie Microsoft® JScript® (oder JavaScript) verwenden. Dieses Funktion wird von Microsoft® Visual Basic® Scripting Edition (VBScript) nicht unterstützt.

Beispiel

Der folgende Skriptkomponentenauszug wurde von einem Beispiel einer Rechner-Skriptkomponente abgeleitet. Das Beispiel legt ein benutzerdefiniertes beiAenderung-Ereignis fest, das für das enthaltende Dokument immer ausgelöst wird, wenn sich das Ergebnis ändert. Ereignisspezifische Informationen (das tatsächliche Berechnungsergebnis) werden über die expando-Eigenschaft ergebnis übergeben.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <event name="beiAenderung" />
</public>
<implements type="Behavior">
   <attach event="onclick" handler="berechnen"/>
</implements>

<script language="JScript">
<![CDATA[
function berechnen()
{
   // Code zur Berechnung einfügen. Die Ergebnisse werden in
   // der Variablen sErgebnis abgelegt.
   oEreignis = createEventObject();
   oEreignis.ergebnis = sErgebnis;
   fireEvent("beiAenderung",oEreignis);
}
]]>
</script>

Der folgende Abschnitt zeigt, wie die enthaltende Seite aussieht. Wird das beiAenderung-Ereignis ausgelöst, werden die Ergebnisse der Berechnung aus der expando-Eigenschaft ergebnis des DHTML-Objekts window.event extrahiert und im ergebnisFenster-<DIV>-Element angezeigt.

<HTML>
<HEAD>
<xml:namespace prefix="LK" />
<style>
   LK\:RECHNER {behavior:url(rechner.wsc)}
</style>
<script language="JScript">
function ergebnisAnzeigen(){
   ergebnisFenster.innerText=window.event.ergebnis;
}
</script>
</HEAD>

<LK:RECHNER id="MeinRechner" beiAenderung="ergebnisAnzeigen()">
<TABLE>
<TR>
   <DIV ID=ergebnisFenster
      STYLE="border: '.025cm solid gray'"
      ALIGN=RIGHT>0,</DIV>
</TR>
<TR>
   <TD><INPUT TYPE=BUTTON VALUE=" 0 "></TD>
   <TD><INPUT TYPE=BUTTON VALUE="+/-"></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" , "></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" + "></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" = "></TD>
<TR>
</TABLE>
</LK: RECHNER>
</HTML>

Siehe auch

Offenlegen von Eigenschaften und Methoden in Verhaltens-Skriptkomponenten


Script Component-Sprachverzeichnis

Beim Erstellen von Windows® Script Component-Dateien verwenden Sie XML-Elemente, um verschiedene Abschnitte der Skriptkomponente zu definieren (z. B. die Registrierungsinformationen sowie Skripte und Objekte, auf die im Code der Skriptkomponente verwiesen werden soll). Ferner können Sie Methoden aufrufen, um in der Skriptkomponente bestimmte Aufgaben auszuführen. Die folgende Tabelle führt die verfügbaren XML-Elemente und -Methoden auf.

Anmerkung Bestimmte Behandlungsroutinen (z. B. die Verhaltens-Behandlungsroutine) legen zusätzliche XML-Elemente, -Methoden und weitere Mitglieder offen. Weitere Informationen finden Sie in der Dokumentation der entsprechenden Behandlungsroutinen.

XML-Elemente

  • <?component?>
  • <?XML ?>
  • <comment>
  • <component>
  • <event>
  • <implements>
  • <method>
  • <object>
  • <package>
  • <property>
  • <public>
  • <reference>
  • <registration>
  • <resource>
  • <script>

Methoden und Funktionen

  • createComponent
  • fireEvent
  • getResource


<?component?>

Gibt Attribute für die Fehlerbehandlung an.

<?component error="Flag" debug="Flag" ?>

Werte

Flag
Ein boolescher Wert: "true" oder "false," 1 oder 0 bzw. "yes" oder "no". Die Voreinstellung für alle Attribute ist "false".

Hinweise

Da Skriptkomponenten als COM-Komponenten verwendet werden, werden sie in der Regel automatisch ausgeführt. Beim Entwickeln einer Skriptkomponentendatei ist es gegebenfalls jedoch sinnvoll, über Fehler in der Datei informiert zu werden. Sie können die folgenden Typen von Fehlerbenachrichtigungen angeben:

  • error Setzen Sie dieses Attribut auf "true", um Fehlermeldungen zu Syntax- oder Laufzeitfehlern in der Skriptkomponentendatei anzuzeigen.
  • debug Setzen Sie dieses Attribut auf "true", um das Debuggen zu aktivieren. Ist dieser Debugvorgang nicht aktiviert, kann der Skript-Debugger nicht für eine Skriptkomponente gestartet werden.

Beispiel

<?component error="true" debug="true"?>

Siehe auch

Inhalt von Skriptkomponentendateien | Suchen nach Fehlern in Skriptkomponentendateien


<?XML ?>

Gibt an, dass die Datei als XML analysiert werden soll.

<?XML version="Version" standalone="DTD-Flag" encoding="Kodierungsname" ?>

Werte

Version
Eine Zeichenfolge im Format n.n, die die XML-Stufe der Datei angibt. Verwenden Sie den Wert 1.0.
DTD-Flag
(Optional) Ein boolescher Wert, der angibt, ob die XML-Datei einen Verweis auf eine externe Dokumenttypdefinition (DTD) enthält. Skriptkomponenten-XML-Dateien enthalten diese Referenz nicht, sodass der Wert für dieses Attribut stets "yes" ist.
Kodierungsname
(Optional) Eine Zeichenfolge, die die vom XML-Dokument verwendete Zeichensatzkodierung beschreibt. Die Zeichenfolge kann einen beliebigen von Microsoft® Internet Explorer unterstützten Zeichensatz enthalten.

Hinweise

Diese Deklaration muss das erste Element (einschließlich Leerzeichen) in der Datei sein.

Durch das Vorhandensein dieser Deklaration wird der Skriptkomponenten-Compiler in einen strikten XML-Modus gesetzt, in dem Elementtypen sowie Attributnamen groß- und kleinschreibungsrelevant sind, Attributwerte in einfache oder doppelte Anführungszeichen gesetzt werden müssen und die Syntax aller Elemente analysiert wird. Wird die Deklaration nicht eingefügt, erlaubt der Compiler eine weniger strikte Syntax.

Für gewöhnlich sollten Sie diese Deklaration einbinden und die XML-Richtlinien befolgen, wenn die Skriptkomponentendatei in einem XML-fähigen Editor bearbeitet werden soll.

Beispiel

<?XML version="1.0" standalone="yes" encoding="UTF-16" ?>

Skriptkomponentendateien und XML-Übereinstimmung


<comment>-Element

Markiert Text in einer Skriptkomponentendatei, der ignoriert werden soll.

<comment>
      Text
</comment>

Hinweise

Verwenden Sie das <comment>-Element innerhalb anderer XML-Elemente, um Text einzuschließen, der keine Marken oder Daten darstellt, sondern z. B. aus Dokumentationsgründen hinzugefügt wird.

Beispiel

Der folgende Skriptkomponentenauszug zeigt ein <comment>-Element innerhalb eines <public>-Elements.

<public>
   <comment>
      Implementiert eine Automatisierungskomponente mit der
      Methode "zufall" und der Eigenschaft "nameGrossBuchst"
   </comment>
   <method name="zufall" internalName="erzeugeZufallszahl"/>
   <property name="nameGrossBuchst">
      <get internalName="get_gsname"/>
      <put internalName="put_gsname"/>
   </property>
</public>

Inhalt von Skriptkomponentendateien


createComponent-Funktion

Gibt einen Verweis auf eine andere Skriptkomponente in demselben Paket (WSC-Datei) zurück.

Wert = createComponent(KomponentenID)

Werte

KomponentenID
Der eindeutige Bezeichner der Skriptkomponente, von der eine Instanz erstellt werden soll.

Hinweise

Durch Aufrufen der createComponent-Methode können Sie die Funktionalität einer anderen Skriptkomponente in dieselbe Datei einfügen. Weitere Informationen finden Sie in Verweisen auf eine andere Skriptkomponente im selben Paket.

Beispiel

Das folgende Beispiel zeigt zwei Skriptkomponenten im selben Paket. Die erste Skriptkomponente ruft die zweite Skriptkomponente auf, wenn deren mathe-Methode aufgerufen wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<package>
<component id="komponente1">
<registration progid="Component.EingabeFenster"/>
<public>
   <method name="mathe"/>
</public>
<script language="JScript">
<![CDATA[
function mathe(){
   return createComponent("komponente2")
}
]]>
</script>
</component>

<component id="komponente2">
<registration progid="Component.Mathe"/>
<public>
   <method name="addiere"/>
</public>
<script language="JScript">
<![CDATA[
function addiere(n1, n2){
   return n1+n2;
}
]]>
</script>
</component>
</package>

Nach der Registrierung dieses Pakets können Sie es beispielsweise in den folgenden Befehlen verwenden:

set o1 = CreateObject("Component.EingabeFenster")
Set o2 = o1.mathe()
msgbox(o2.addiere(4,5))

Siehe auch

Verweisen auf eine andere Skriptkomponente in demselben Paket


<event>-Element

Deklariert den Namen eines benutzerdefinierten Ereignisses, das innerhalb der Skriptkomponente ausgelöst werden kann.

<event name="Name" dispid="Disp-ID"/>

Werte

Name
Der Name eines offen gelegten Ereignisses.
Disp-ID
(Optional) Ein numerischer Wert, der die Dispatch-ID für das Ereignis angibt, die in die Typbibliothek der Komponente kompiliert und anschließend von der Hostanwendung verwendet wird, um Ereignisse einzubinden. Wenn Sie keine Dispatch-ID angeben, wird diese beim Erstellen der Typbibliothek automatisch dem Ereignis zugewiesen. Durch das Angeben einer eigenen Dispatch-ID können Sie dafür sorgen, dass die Dispatch-ID für ein Ereignis stets dieselbe ist, selbst wenn Sie die Typbibliothek neu erstellen. Darüber hinaus können Sie Ereignisse bestimmten Dispatch-IDs zuordnen, die beispielsweise von den Richtlinien in COM verwendet werden. Weitere Informationen finden Sie in Offenlegen von Ereignissen.

Hinweise

Um ein Ereignis auszulösen, verwenden Sie die fireEvent-Methode.

Beispiel

Der folgende Skriptkomponentenauszug definiert zwei Ereignisse (namegeaendert und abfragebeendet) und zeigt, wie eines davon (namegeaendert) ausgelöst wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <property name="name">
      <get/>
      <put/>
   </property>
   <event name="namegeaendert"/>
   <event name="abfragebeendet" dispid="22"/>
<public>

<script language="VBScript">
<![CDATA[
var gName
Sub get_nameKleinBuchst()
   get_nameKleinBuchst = name
End Sub

Sub put_nameKleinBuchst(neuerNameKlB)
   gName = neuerNameKlB
   fireEvent("namegeaendert")
End Sub
   ]]>
</script>

Siehe auch

<method>-Element | <property>-Element | fireEvent-Methode | Offenlegen von Eigenschaften | Offenlegen von Ereignissen | Offenlegen von Methoden


fireEvent-Methode (Windows Script Components)

Windows Script Components

fireEvent-Methode

Sendet eine Benachrichtigung über ein benutzerdefiniertes Ereignis von der Skriptkomponente zur Hostanwendung.

fireEvent(Ereignisname[,...])

Werte

Ereignisname
Der Name des Ereignisses, wie er im <event>-Element definiert wurde.

Hinweise

Sie können nur solche Ereignisse auslösen, die im <public>-Element deklariert wurden.

Anmerkung Die Verhaltens-Behandlungsroutine legt eine fireEvent-Methode offen, die der Version der Automatisierungs-Behandlungsroutine ähnelt, jedoch auch über eine Unterstützung für Ereignisobjekte verfügt. Weitere Informationen hierzu finden Sie unter Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten.

Beispiel

Das folgende Beispiel zeigt einen Skriptkomponentenauszug, der das Ereignis namechanged definiert und zeigt, wie dieses ausgelöst wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <property name="name">
      <get/>
      <put/>
   </property>
   <event name="namechanged">
</public>

<script language="VBScript">
<![CDATA[
var name
Sub get_lowercaseName()
   get_lowercaseName = name
End Sub

Sub put_lowercaseName(newLCName)
   name = newLCName
   fireEvent("namechanged")
End Sub
]]>
</script>

Siehe auch

<event>-Element | fireEvent (Verhalten) | Offenlegen von Ereignissen


getResource-Funktion

Ermittelt den Wert einer mit dem <resource>-Element definierten Ressource.

Wert = getResource(RessourceID)

Werte

RessourceID
Ein eindeutiger Bezeichner für die Ressource in der Skriptkomponente.

Hinweise

Mithilfe des <resource>-Elements können Sie Zeichenfolgen oder Zahlen in einer Skriptkomponente isolieren, die Sie mit Skript in der Skriptkomponente zusammenwirken lassen möchten. In der Regel werden resource-Elemente für die Verwaltung von Zeichenfolgen verwendet, die möglicherweise in eine andere Sprache lokalisiert werden. Sie können die getResource-Funktion im Skript der Skriptkomponente einsetzen, um den Inhalt eines <resource>-Elements abzurufen.

Beispiel

Der folgende Skriptkomponentenauszug definiert die Ressource errNichtNumerisch und zeigt, wie diese im Skript verwendet wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <method name="zufall" internalName="erzeugeZufallszahl"/>
</public>
<resource id="errNichtNumerisch">Nicht-numerischer Wert übergeben</resource>

<script language="VBScript">
<![CDATA[
Function erzeugeZufallszahl(obereGrenze)
   If IsNumeric(obereGrenze) Then
      erzeugeZufallszahl = Cint(obereGrenze * Rnd + 1)
   Else
      erzeugeZufallszahl = getResource("errNichtNumerisch")
   End If
End Function
]]>
</script>

Verweisen auf andere Komponenten


<implements>-Element

Gibt weitere Behandlungsroutinen für COM-Schnittstellen für eine Skriptkomponente an.

<implements type="COMBehRoutine" [id="internerName"] [default=fAngenommen]>
      spezifische Informationen zur Behandlungsroutine hier eingeben
</implements>

Werte

COMBehRoutine
Der Name der Schnittstellenbehandlungsroutine, auf die verwiesen wird. Schnittstellenbehandlungsroutinen werden im Allgemeinen als DLLs implementiert, die verfügbar und in der Produktionsumgebung der Skriptkomponente registriert sein müssen. Einige Behandlungsroutinen, wie z. B. Automatisierungs- und ASP-Behandlungsroutinen, sind in die Skriptkomponentenlaufzeitbibliothek (Scrobj.dll) integriert. Beispiele für verfügbare Schnittstellenbehandlungsroutinen sind:
Schnittstellenbehandlungsroutine | Beschreibung | Implementierung
ASP | Ermöglicht einer Skriptkomponente den Zugriff auf das Active Server Pages (ASP)-Objektmodell von Microsoft Internet-Informationsdienste (IIS). | In Scrobj.dll integriert
DHTML-Verhaltens-Skript | Erlaubt einer Verhaltens-Skriptkomponente die Kommunikation mit der enthaltenden Seite, um Ereignisse auszulösen und auf das DHTML-Objektmodell zuzugreifen. | In Scrobj.dll integriert
internerName
(Optional) Ein Name, mit dem auf die Behandlungsroutine im Skript verwiesen werden kann. Standardmäßig sind Eigenschaften, Methoden, Ereignisse und andere Elemente einer Skriptkomponente im globalen Namensraum verfügbar. Im Fall eines Benennungskonflikts von <implements>-Elementen können die Namen durch Voranstellen der ID des entsprechenden <implements>-Elements eindeutig gekennzeichnet werden, wie im folgenden Beispiel aufgeführt:
<implements type="Behavior" id="sctBehavior">
   [...]
</implements>

[...]

<script language="JScript">
   // [...]
   sctBehavior.fireEvent("beiAenderung ", oEreignis);
</script>
fAngenommen
(Optional) Ein boolesches Flag, das anzeigt, dass internerName in Skripten angenommen wird. Die Voreinstellung für dieses Attribut ist "true". Die Elemente des von der Behandlungsroutine offen gelegten Objektmodells werden dem globalen Skriptnamensraum hinzugefügt, sodass auf diese unqualifiziert zugegriffen werden kann. Sie müssen dieses Attribut nur dann hinzufügen, wenn Sie es auf "false" setzen möchten, um Mitglieder eines bestimmten <implements>-Elements auszublenden.

Hinweise

Schnittstellenbehandlungsroutinen verlängern die Skriptkomponentenlaufzeitbibliothek. Eine Schnittstellenbehandlungsroutine ist eine kompilierte Komponente (im Allgemeinen in C++ geschrieben), die bestimmte COM-Schnittstellen implementiert.

Skriptkomponenten implementieren standardmäßig die COM-Automatisierungsschnittstelle (insbesondere die COM-Schnittstelle IDispatchEx). Die Eigenschaften, Methoden und Ereignisse des Automatisierungsobjekts werden im <public>-Element der Skriptkomponente definiert. Da die Automatisierungsbehandlungsroutine standardmäßig implementiert wird, müssen Sie diese nicht mit dem <implements>-Element implementieren.

Durch Hinzufügen eines <implements>-Elements können Skriptkomponenten weitere COM-Schnittstellen implementieren. Innerhalb des <implements>-Elements geben Sie spezielle, die implementierten Schnittstellen betreffende Informationen an. Für jede Schnittstellenbehandlungsroutine sind unterschiedliche Informationen erforderlich. Eine Verhaltens-Skriptkomponente kann z. B. <attach>- und <layout>-Elemente enthalten, die für die DHTML-Verhaltensschnittstelle gelten.

Beispiel

<implements type="Behavior">
   <event name="beiAenderung" />
</implements>

Siehe auch

Funktionsweise von Skriptkomponenten | Inhalt von Skriptkomponentendateien


<method>-Element

Deklariert eine Methode.

<method name="Methodenname" internalName="Funktionsname" dispid=Disp-ID>
      [<parameter name="ParameterID"/>]
</method>

Werte

Methodenname
Der Name der Methode, die offen zu legen ist.
Funktionsname
(Optional) Der Name der Prozedur (Funktion oder Unterroutine) in der Skriptkomponentendatei, die die Methode implementiert. Wenn Sie keinen internen Namen angeben, wird Methodenname verwendet.
Tipp In XML können Sie Elemente implementieren, die keinen Inhalt haben (wie z. B. das <method>-Element), indem Sie das Element mit /> schließen.
Disp-ID
(Optional) Die COM-Dispatch-ID für die Methode. Bei fehlender Angabe wird Disp-ID automatisch erzeugt. Durch Setzen von dispid auf 0 (Null) wird die Methode zur Standardmethode der Skriptkomponente. Weitere Informationen zu Dispatch-IDs finden Sie unter Offenlegen von Ereignissen.
ParameterID
Gibt bei einer expliziten Deklarierung eines Parameters für die Methode den Namen des Parameters an.

Hinweise

Eine Methode wird in einem getrennten <script>-Element als Prozedur (Funktion oder Unterroutine) implementiert. Das <method>-Element ordnet den Namen der Methode der Prozedur zu, die zu deren Implementierung verwendet wurde.

Die Parameter für die Methode können optional deklariert werden. Dies ist nicht erforderlich, doch werden dadurch Parameterinformationen offen gelegt, wenn Sie eine Typbibliothek für eine Skriptkomponente erstellen (siehe Erstellen einer Skriptkomponenten-Typbibliothek).

Beispiel

Der folgende Skriptkomponentenauszug definiert zwei Methoden (fakultaet und zufall). Die Methode zufall umfasst Definitionen für ihre Parameter und wird in die Funktion erzeugeZufallszahl eingebunden.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <method name="fakultaet"/>
   <method name="zufall" internalName="erzeugeZufallszahl">
      <parameter name="obereGrenze">
      <parameter name="startwert">
   </method>
</public>

<script language="VBScript">
<![CDATA[
   Function fakultaet(n)
      If isNumeric(n) Then
         If n <= 1 Then
            fakultaet = 1
         Else
             fakultaet = n*fakultaet(n-1)
         End If
      Else
          fakultaet = -2    ' Fehlercode.
      End If
   End Function

   Function erzeugeZufallszahl(obereGrenze, startwert)
       obereGrenze = CInt(obereGrenze)
       Randomize
       erzeugeZufallszahl = Cint(obereGrenze * Rnd(startwert) + 1)
   End Function
]]>
</script>

Siehe auch

<event>-Element | <property>-Element | Offenlegen von Eigenschaften | Offenlegen von Ereignissen | Offenlegen von Methoden


<object>-Element (Windows Script Components)

Windows Script Components

<object>-Element

Definiert Objekte, die von Skript referenziert werden können.

<object id="objID" [classid="clsid:GUID" | progid="progID"] Ereignisse="true|false"/>

Werte

objID
Ein Name, unter dem im Skript auf das Objekt verwiesen werden kann. Objekt-ID-Werte müssen mit einem Buchstaben beginnen und können Buchstaben, Ziffern und Unterstreichungzeichen ( _ ) enthalten. Die Objekt-ID muss im gesamten Gültigkeitsbereich der Skriptkomponente eindeutig sein. Wenn Sie z. B. den Namen CObj angeben, können Sie im Skript auf folgende Weise auf das Objekt verweisen:

x = CObj.Prop1

GUID
(Optional) Ein Verweis auf die Klassen-ID (GUID), mit der das Objekt registriert wurde. Verwenden Sie "clsid:", gefolgt von der Klassen-ID (ohne geschweifte Klammern). Es muss entweder das Attribut classid oder das Attribut progid angegeben werden. Beispiele:

classid="clsid:2154c700-9253-11d1-a3ac-0aa0044eb5f"

progID
(Optional) Die Programm-ID des Objekts, die alternativ zu der Klassen-ID angegeben werden kann. Es muss entweder das Attribut classid oder das Attribut progid angegeben werden.
Ereignisse
(Optional) Ein Attribut, mit dem Sie Hooks vom Objekt zu Ereignissen erstellen können. Standardmäßig hat Ereignisse den Wert false. Wenn das Attribut den Wert true hat, können Sie eine Verbindung zu jedem Ereignis herstellen, das vom Objekt möglicherweise ausgelöst wird. Für jedes zu behandelnde Ereignis muss ein Ereignishandler hinzugefügt werden.

Hinweise

Das <object>-Element bietet eine Möglichkeit, Objekte global für den Einsatz im Skript innerhalb der Skriptkomponente offen zu legen, ohne dazu eine Funktion wie CreateObject() verwenden zu müssen. Durch Verwenden des <object>-Elements steht das Objekt im globalen Gültigkeitsbereich zur Verfügung und ermöglicht Skripterstellungstools das Bereitstellen der Anweisungsvervollständigung für die Mitglieder des Objekts.

Beispiel

Der folgende Skriptkomponentenauszug enthält ein <object>-Element, mit dem ein Objektverweis auf das Objekt ADODB.Connection erstellt wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<registration progid="ADOScriptlet"/>
<object id="cnn" progid="ADODB.Connection"/>
<public>
   <property name="cnnState"/>
   <method name="openconnection"/>
</public>

<script language="VBScript">
<![CDATA[
Dim cnnState
Function openconnection()
   cnn.ConnectionString =
      "driver={SQL Server};server=myserver;uid=sa;database=pubs"
   cnn.Open
   If cnn.State = 1 Then
      cnnState = "open"
      cnn.Close
   Else
      cnnState = "geschlossen"
   End If
End Function
]]>
</script>

Inhalt von Skriptkomponentendateien


<package>-Element (Windows Script Components)

Windows Script Components

<package>-Element

Umfasst mehrere Skriptkomponentendefinitionen.

<package>
      mindestens eine Skriptkomponente
</package>

Hinweise

Das <package>-Element ist optional, wenn eine WSC-Datei nur eine Skriptkomponentendefinition enthält.

Beispiel

<package>
<component id="MeineSkriptkomponente">
   (Skriptkomponenteninformationen)
</component>
<component id="WeitereSkriptkomponente">
   (Skriptkomponenteninformationen)
</component>
</package>

Inhalt von Skriptkomponentendateien


<property>-Element

Deklariert eine Eigenschaft.

<property name="Eigenschaftsname" [internalname="Eigenschaftsvariable"] />

- oder -

<property name="Eigenschaftsname">
   <get [internalName="getFunktionsname"] />
   <put [internalName="putFunktionsname"] />
</property>

Werte

Eigenschaftsname
Der Name der Eigenschaft, die offen zu legen ist. Dieser Name muss mit dem Namen einer globalen Variablen übereinstimmen, die zur Aufnahme des Eigenschaftswertes verwendet wird, es sei denn, Sie geben ein internalName-Attribut an.
Eigenschaftsvariable
(Optional) Der Name der globalen Variable im <script>-Element der Skriptkomponentendatei, die den Wert von Eigenschaftsname enthält. Wenn Sie das Attribut internalName nicht hinzufügen, wird der Eigenschaftswert in eine Variable eingefügt, die denselben Namen hat wie Eigenschaftsname. Durch die Verwendung des Attributs internalName können Sie verschiedene Namen für die Eigenschaft und ihre entsprechende globale Variable angeben.
getFunktionsname
(Optional) Der Name einer Prozedur, die zum Lesen des Wertes der Eigenschaft verwendet wird. Wenn Sie nur das <get>- und nicht das <put>-Element einfügen, ist die Eigenschaft schreibgeschützt. Wenn Sie das <get>-Element ohne Angabe eines internalName-Attributs hinzufügen, muss die Methode, die zum Lesen des Eigenschaftswertes verwendet wird, den Namen der Eigenschaft und das Präfix get_ enthalten (z. B. get_lastname).
putFunktionsname
(Optional) Der Name einer Prozedur, die zum Schreiben des Wertes der Eigenschaft verwendet wird. Wenn Sie das <put>-Element ohne das <get>-Element einfügen, stellt die Eigenschaft nur Schreibzugriff bereit. Wenn Sie das <put>-Element hinzufügen, ohne das internalName-Attribut anzugeben, muss die Methode, die zum Lesen des Eigenschaftswertes verwendet wird, den Namen der Eigenschaft und das Präfix put_ enthalten (z. B. put_lastname).
Tipp In XML können Sie Elemente implementieren, die keinen Inhalt haben (wie z. B. das <property>-Element), indem Sie das Element mit /> schließen.

Hinweise

Eigenschaften können als einfache Werte offen gelegt werden. In diesem Fall wird die betreffende Eigenschaft als globale Variable innerhalb der Skriptkomponentendatei behandelt.

Sie können Eigenschaften auch als Prozeduren (Funktionen oder Unterroutinen) implementieren. Dies ermöglicht das Berechnen von Eigenschaftswerten und das Festlegen von Eigenschaftsattributen, wie z. B. das Aktivieren des Schreibschutzes, des Lese- und Schreibzugriffs oder nur des Schreibzugriffs. Bei dieser Vorgehensweise werden Eigenschaften in einem getrennten <script>-Element als Prozedur (Funktion oder Unterroutine) implementiert. Das <property>-Element ordnet den Namen der Eigenschaft den Prozeduren zu, die zu deren Implementierung verwendet wurden. Die Namen der Prozeduren müssen mit den internen Namen übereinstimmen, die Sie im <property>-Element angegeben haben.

Beim Aufruf von putFunktionsname wird dieser Funktion ein Argument übergeben, das den Wert enthält, auf den die Eigenschaft eingestellt ist.

Außerdem können zusätzlich zur Verwendung der oben aufgezeigten Standardsyntax Informationen über eine Kurznotation angegeben werden, für die ansonsten untergeordnete Tags verwendet werden. Um beispielsweise eine gleichnamige Eigenschaft mit einem "get"- und "put"-Zugriff zu deklarieren, können Sie die folgende Syntax verwenden:

<property name="Meine Eigenschaft" get put/>

die Funktionalität entspricht der folgenden Syntax:

<property name="Meine Eigenschaft">
   <get/>
   <put/>
</property>

Mit der folgenden Syntax können diese nicht standardmäßig verwendeten Zugriffe explizit angegeben werden:

<property name="MeineEigenschaft" get="testget" put="testput"/>

Um eine Standardeigenschaft anzugeben, fügen Sie in das <property>-Element das Attribut dispid="0" ein. Weitere Informationen finden Sie in Offenlegen von Eigenschaften.

Beispiel

Der folgende Skriptkomponentenauszug zeigt die Definition von vier Eigenschaften (sname, age, dateOfBirth und mstatus). Die sname-Eigenschaft gibt einen einfachen Wert an. Die age-Eigenschaft ist schreibgeschützt und wird mit der Funktion readAge implementiert. Die dateOfBirth -Eigenschaft stellt Lese- und Schreibzugriff bereit und wird mit den Funktionen readDOB und writeDOB implementiert. Anschließend wird die mstatus-Eigenschaft mit den Standardfunktionen get_mstatus und mstatus implementiert.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <property name="sname"/>
   <property name="age">
      <get internalName="readAge"/>
   </property>
   <property name="dateOfBirth">
      <get internalName="readDOB"/>
      <put internalName="writeDOB"/>
   </property>
   <property name="mstatus">
      <get/>
      <put/>
   </property>
</public>

<script language="VBScript">
<![CDATA[
Dim sname   ' sname-Eigenschaft mit Lese- und Schreibzugriff (keine Funktionen).
Dim gDOB   ' Globale Variable zum Speichern des Geburtsdatums.
Dim gMStatus   ' Globale Variable zum Speichern des Familienstands.

Function readDOB()
   ' Ruft den Wert der dateOfBirth-Eigenschaft ab.
   readDOB = gDOB
End Function

Function writeDOB(newDOB)
   ' Setzt den Wert der dateOfBirth-Eigenschaft.
   If isDate(gDOB) Then
      ' Fehlerüberprüfung.
      gDOB = newDOB
   End If
End Function

Function readAge()
   ' Berechnet die schreibgeschützte "age"-Eigenschaft.
   If isDate(gDOB) Then
      dobM = DatePart("m", gDOB)
      dobD = DatePart("d", gDOB)
      dobY = DatePart("yyyy", gDOB)
      todayY = DatePart("yyyy", Date)
      age = todayY – dobY

      ' Einstellen, wenn der Geburtstag in diesem Jahr noch nicht war.
      bday = DateValue(dobM & "/" & dobD & "/" & todayY)
      If DateDiff("d", bday, DateValue(Date)) < 0 Then
         age = age - 1
      End If
      readAge = age
   End If
End Function

Function get_mstatus()
   ' Liest den Wert der "mstatus"-Eigenschaft.
   get_mstatus = gMStatus
End Function

Function put_mstatus(s)
   ' Schreibt den Wert der mstatus-Eigenschaft.
   If s = "M" Or s = "S" Then
      gMStatus = s
   Else
      gMStatus = "?"
   End If
End Function
]]>
</script>

Siehe auch

<event>-Element | <method>-Element | Offenlegen von Eigenschaften | Offenlegen von Ereignissen | Offenlegen von Methoden


<public>-Element

Umfasst die Deklarationen von Eigenschaften, Methoden und Ereignissen der Skriptkomponente.

<public>
   <property name="pname"/>
   <method name="mname"/>
   <event name="ename"/>
</public>

Siehe auch

<event>-Element | <method>-Element | <property>-Element | Offenlegen von Eigenschaften | Offenlegen von Ereignissen | Offenlegen von Methoden


<reference>-Element (Windows Script Components)

Windows Script Components

<reference>-Element

Enthält einen Verweis auf eine externe Typbibliothek.

<reference [object="ProgID" |guid="TypbiblGUID"] [version="version"]>

Werte

ProgID
Die Programm-ID, von der die Typbibliothek abgeleitet werden kann. Diese kann eine Versionsnummer umfassen (z. B. ADO.Recordset.2.0). Dabei kann es sich um die explizite Programm-ID einer Typbibliothek oder die Programm-ID der ausführbaren Datei (z. B. einer DLL-Datei) handeln, die die Typbibliothek integriert. Wenn Sie das object-Attribut verwenden, müssen Sie kein version-Attribut verwenden, da die Version von der Programm-ID abgeleitet werden kann.

Wenn das object-Attribut angegeben wird, können Sie nicht auch ein guid-Attribut angeben.

TypbiblGUID
Die GUID der Typbibliothek, auf die verwiesen wird. Wenn das guid-Attribut angegeben wird, können Sie nicht auch ein object-Attribut angeben.
version
(Optional) Die Versionsnummer der zu verwendenden Typbibliothek. Diese muss das Format <major version>[.<minor version>] aufweisen. Wurde keine Version angegeben, ist 1.0 die Standardversion. Wird mit dem object-Attribut die Typbibliothek nicht jedoch die Version angegeben, wird die Version aus dem Registrierungsschlüssel für die angegebene Programm-ID abgeleitet. Wird keine Programm-ID gefunden, ist die Voreinstellung 1.0.

Hinweise

Durch das Verweisen auf eine Typbibliothek in einer Skriptkomponente können Sie Konstanten verwenden, die in Skripten in der Typbibliothek definiert sind. Das <reference>-Element sucht die Typbibliothek, die mit einer bestimmten Programm-ID oder einem Typbibliotheksnamen verknüpft ist, und macht diese verfügbar. Typbibliotheksinformationen können in TLB-, OLB- oder DLL-Dateien enthalten sein.

Das <reference>-Element muss in dem <component>-Element enthalten sein. Wenn in dem Paket mehr als eine Skriptkomponente vorhanden ist, gilt die Typbibliothek nur für die Skriptkomponente, in deren <component>-Element diese deklariert ist.

Beispiel

Im folgenden Skriptkomponentenauszug ermöglicht das Verweisen auf die Typbibliothek für ADO (enthalten in der Datei MSAD015.DLL) das Verwenden von ADO-Konstanten wie adStateOpen in Ihren Skripten.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<reference object="ADODB.Connection.2.0"/>
<registration progid="ADOScriptlet"/>
<public>
   <property name="cnnstate"/>
   <method name="openConnection"/>
   <method name="closeConnection"/>
</public>

<script language="VBScript">
<![CDATA[
Dim cnn
Dim cnnState
Function openConnection()
   Set cnn = CreateObject("ADODB.Connection")
   cnn.ConnectionString =
      "driver={SQL Server};server=myserver;uid=sa;database=pubs"
   cnn.Open
   If cnn.State = adStateOpen Then
      cnnState = "open"
   Else
      cnnState = "closed"
   End If
End Function

Function closeConnection()
   cnn.Close
   cnnState = "closed"
End Function
]]>
</script>

Verweisen auf andere Komponenten


<registration>-Element

Legt die Informationen fest, mit denen die Skriptkomponente als COM-Komponente registriert wird.

<registration progid="ProgID" classid="GUID" description="Beschreibung"
   version="Version" [remotable=remoteFlag]/>

- oder -

<registration progid="ProgID" classid="GUID" description="Beschreibung"
      version="Version" [remotable=remoteFlag]>
   <script>
      (Registrierungs- und Deregistrierungsskript)
   </script>
</registration>

Werte

ProgID
(Optional) Ein Textname, mit dem Programmierer auf eine Skriptkomponente verweisen, wenn sie von dieser eine Instanz erstellen. Wenn die Programm-ID der Skriptkomponente z. B. "Component.MeineKomponente" lautet, können Sie in Microsoft® Visual Basic eine Instanz von dieser unter Verwendung einer Anweisung wie der Folgenden erstellen:

Set Component = CreateObject("Component.MeineKomponente")

Anmerkung Auch wenn ein progid-Attribut optional ist, müssen Sie entweder ein progid- oder ein classid-Attribut (oder beides) einfügen. Wenn nur das progid-Attribut angegeben wird, wird die Klassen-ID automatisch erstellt. Wird nur die Klassen-ID erstellt, wird keine progid registriert, und das Objekt kann nur durch einen direkten Verweis auf die Klassen-ID erstellt werden.
GUID
(Optional) Eine GUID, die Sie mit einem speziellen Programm für Klassen-IDs generiert haben (z. B. Uuidgen.exe). Wenn Sie keine Klassen-ID angeben, weist das Registrierungsprogramm der Skriptkomponente eine Klassen-ID zu.
Beschreibung
(Optional) Eine Textbeschreibung der Skriptkomponente, die in der Registrierung gespeichert und von verschiedenen Tools verwendet wird, wie z. B. dem Visual Basic-Objektkatalog.
Version
(Optional) Eine numerische Versionsnummer, die Sie zuweisen. Die Version wird der Programm-ID getrennt durch einen Punkt (z. B. MeineKomponente.1) angefügt, wenn Anwendungen einen versionsspezifischen Namen benötigen. Verwenden Sie nur Zahlen (Dezimalkommata sind nicht erlaubt).
Anmerkung Die Registrierungsattribute können im <registration>-Element in beliebiger Reihenfolge angezeigt werden.
remoteFlag
(Optional) Ein boolescher Wert, der angibt, ob die Skriptkomponente mithilfe von DCOM remote instanziiert werden kann. Weitere Informationen finden Sie unter Erstellen von Remoteinstanzen von Skriptkomponenten unter dem Thema "Verwenden von Skriptkomponenten in Anwendungen".

Hinweise

Nach dem Erstellen einer Skriptkomponente kann diese mit einem Programm wie Regsvr32.exe registriert werden, das die Informationen in dem <registration>-Element liest und in die Windows-Registrierung des Computers schreibt. Eine Skriptkomponente kann z. B. folgendermaßen registriert werden:

regsvr32 file:\\MeinServer\MeineKomponente.wsc
Anmerkung Ein <registration>-Element ist nicht immer erforderlich. Eine Skriptkomponente, die z. B die Schnittstellenbehandlungsroutine von DHTML-Verhalten in Microsoft® Internet Explorer 5.0 implementiert, muss nicht registriert werden, da Internet Explorer die Verhalten nach deren Ermittlung in der Seite registriert. Weitere Informationen zu den Registrierungsanforderungen finden Sie in der Dokumentation der Schnittstellenbehandlungsroutine, die Sie implementieren. Beachten Sie darüber hinaus, auf welchem Host die Skriptkomponente verwendet wird.

Wenn Sie keine Klassen-ID-Informationen angeben, weist das Registrierungsprogramm zum Zeitpunkt der Registrierung der Skriptkomponente eine Klassen-ID zu. Die Skriptkomponente weist jedoch an verschiedenen Registrierungsorten unterschiedliche Klassen-IDs auf. Es wird jedoch ausdrücklich empfohlen, dass Sie selbst eine Klassen-ID für die Skriptkomponente angeben, um sicherzustellen, dass die Skriptkomponente auf allen Computern, auf denen sie registriert wird, über dieselbe Klassen-ID verfügt.

Lassen Sie über das Registrierungsprogramm eine Klassen-ID erstellen, können Fehler auftreten, wenn Sie die Skriptkomponente zusammen mit Entwicklungstools einsetzen, die Klassen-IDs speichern. Wird bei der Registrierung jedes Mal eine neue Klassen-ID erstellt, stimmt diese nicht mit der ID überein, die von der Anwendung gespeichert wurde.

Wenn eine Skriptkomponente registriert und deregistriert wird, können Sie optional Skriptkomponenten ausführen. Fügen Sie in diesem Fall ein <script>-Element in das <registration>-Element ein. Um Skript während der Registrierung auszuführen, schreiben Sie eine register( )-Funktion. Um Skript während der Deregistrierung der Skriptkomponente auszuführen, fügen Sie die Funktion unregister( ) ein.

Beispiel

Das folgende Beispiel zeigt ein typisches <registration>-Element, das sowohl eine progID als auch eine classID enthält.

<registration
   progid="Component.TestSkript"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
   description="Meine Testkomponente"
   version="1"/>

Durch das folgende registration-Element kann die Skriptkomponente über DCOM instanziiert werden.

<registration
   progid="Component.TestSkript"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
   version="1"
   description="Meine Testkomponente"
   remotable=true/>

Das folgende Beispiel zeigt ein Skript enthaltendes <registration>-Element, das ausgeführt wird, wenn die Skriptkomponente registriert und deregistriert wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<registration
   progid="Component.TestSkript"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}">
   version="1"
   description="Meine Testkomponente">

   <script language="VBScript">
      Function register()
         MsgBox "Komponente 'Meine Testkomponente' registriert."
      End Function
      Function unregister()
         MsgBox "Komponente 'Meine Testkomponente' deregistriert."
      End Function
   </script>
   ]]>
</registration>

Siehe auch

Erstellen von Registrierungsinformationen | Registrieren von Skriptkomponenten


<resource>-Element (Windows Script Components)

Windows Script Components

<resource>-Element

Isoliert Text- oder numerische Daten, die in den Skripten der Skriptkomponente nicht explizit codiert werden sollen.

<resource id="RessourceID">
   Text oder Zahlen
</resource>

Werte

RessourceID
Ein eindeutiger Bezeichner für die Ressource in der Skriptkomponente.

Hinweise

Mithilfe des <resource>-Elements können Sie Zeichenfolgen oder Zahlen in einer Skriptkomponente isolieren, die Sie mit Skript in der Skriptkomponente zusammenwirken lassen möchten. In der Regel werden resource-Elemente für die Verwaltung von Zeichenfolgen verwendet, die möglicherweise in eine andere Sprache lokalisiert werden.

Um den Wert einer Ressource zu erhalten, rufen Sie die getResource-Funktion auf und übergeben diese an die ID der zu verwendenden Ressource.

Beispiel

Der folgende Skriptkomponentenauszug definiert die Ressource errNichtNumerisch und zeigt, wie diese im Skript verwendet wird.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
   <method name="zufall" internalName="erzeugeZufallszahl"/>
</public>
<resource id="errNichtNumerisch">
   Nicht-numerischer Wert übergeben
</resource>

<script language="VBScript">
<![CDATA[
Function erzeugeZufallszahl(obereGrenze)
   If IsNumeric(obereGrenze) Then
      erzeugeZufallszahl = CInt(obereGrenze * Rnd + 1)
   Else
      erzeugeZufallszahl=getResource("errNichtNumerisch")
   End If
End Function
]]>
</script>

Verweisen auf andere Komponenten


<script>-Element (Windows Script Components)

Windows Script Components

<script>-Element

Definiert das Verhalten der Skriptkomponente.

<script language="Sprache">
   Skriptinformationen
</script>

Werte

Sprache
Der Name der Skripterstellungssprache, die in der Skriptkomponentendatei verwendet wird, z. B. Microsoft® Visual Basic® Scripting Edition (VBScript) oder JScript.

Hinweise

Ist die XML-Überprüfung nicht aktiviert, ignoriert die XML-Syntaxanalyse alle Zeilen innerhalb des <script>-Elements. Wenn die XML-Überprüfung jedoch aktiviert wurde, indem die <?XML ?>-Deklaration oben in die Skriptkomponentendatei eingefügt wurde, kann die XML-Syntaxanalyse Zeichen wie "Größer als" (<), "Kleiner als" (>) und andere Symbole falsch interpretieren, die im Skript als XML-Trennzeichen verwendet werden.

Wenn Sie eine Datei erstellen, die nahezu der XML-Syntax entspricht, müssen Sie sicherstellen, dass die Zeichen im script-Element nicht als reservierte XML-Zeichen behandelt werden. Fügen Sie dazu das tatsächliche Skript in einen <![CDATA[ ... ]]>-Abschnitt ein. Weitere Informationen zur XML-Gültigkeitsüberprüfung finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.

Anmerkung Fügen Sie nur dann einen CDATA-Abschnitt ein, wenn Sie auch eine <?XML ?>-Deklaration einfügen.

Beispiel

<?XML version="1.0"?>
<component id="ScriptletFakultaet">
<registration progid="Component.Fakultaet"/>
<public>
   <method name="fakultaet"/>
</public>

<script language="VBScript">
<![CDATA[
Function fakultaet(n)
   If isNumeric(n) Then
      If n <= 1 Then
         fakultaet = 1
   Else
         fakultaet = n * fakultaet(n-1)
      End If
   Else
      fakultaet = -2   ' Fehlercode.
   End If
End Function
]]>
</script>
</component>

Inhalt von Skriptkomponentendateien


<component>-Element

Umfasst eine gesamte Windows-Skriptkomponentendefinition.

<component id=KomponentenID>
   Skriptkomponenteninformationen
</component>

Werte

KomponentenID
Eine Zeichenfolge, die die Skriptkomponente eindeutig bezeichnet. Dieser Wert eignet sich besonders bei einem Dokument mit mehreren Skriptkomponenten oder beim Erstellen einer Typbibliothek für mehrere Skriptkomponenten. Bezeichner müssen mit einem Buchstaben beginnen und dürfen keine Leerzeichen enthalten. Der Bezeichner muss innerhalb eines Skriptkomponentenpakets eindeutig sein.

Ist dieser angegeben, fungiert der Wert als Klassenname für die Skriptkomponente in der Hostanwendung. Wenn Sie z. B. die Komponenten-ID "MeineKomponente" im <component>-Element angeben, wird die Skriptkomponente als MeineKomponente-Klasse im Visual Basic-Objektkatalog bezeichnet. Wurde keine Komponenten-ID angegeben, ist die Voreinstellung ComponentCoClass.

Hinweise

In Skriptkomponentendateien muss eine gesamte Skriptkomponentendefinition samt der Elemente <registration>, <public> und <implements> in einem <component>-Element enthalten sein. Enthält die Datei mehrere Skriptkomponenten, müssen diese wiederum in einem <package>-Element enthalten sein.

Beispiel

Das folgende Beispiel zeigt eine einfache, dennoch vollständige Skriptkomponente, die eine fakultaet-Methode und eine name-Eigenschaft enthält.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<?XML version="1.0"?>
<component>
<registration>
   description="Meine Testkomponente"
   progid="Component.TestSkript"
   version="1"
   classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
</registration>

<public>
   <property name="name"/>
   <method name="fakultaet"/>
</public>

<script language="VBScript">
   <![CDATA[
   Function fakultaet(n)
      If isNumeric(n) Then
         If n <= 1 Then
            fakultaet = 1
         Else
             fakultaet = n*fakultaet(n-1)
         End If
      Else
         fakultaet = -2   ' Fehlercode.
      End If
   End Function
   ]]>
</script>
</component>

Inhalt von Skriptkomponentendateien


Referenz zur Verhaltens-Behandlungsroutine

Mit der Verhaltens-Behandlungsroutine stellt Microsoft® Internet Explorer einer Verhaltens-Skriptkomponente eine Möglichkeit zur Verfügung, mithilfe benutzerdefinierter Ereignisse mit der Seite zu kommunizieren, die es enthält, und auf das Objektmodell des enthaltenden Dokuments zuzugreifen.

Die Verhaltens-Behandlungsroutine weist die folgenden spezifischen Elemente, Eigenschaften und Methoden auf.

  • <attach>-Element
  • <layout>-Element
  • attachNotification-Methode
  • createEventObject-Methode
  • element-Eigenschaft
  • fireEvent-Methode


<attach>-Element

Bindet ein Ereignis im enthaltenden Dokument in eine Funktion in der Skriptkomponente ein.

<attach event="Ereignisname" handler="Funktionsname" [for="Elementname"]/>

Werte

Ereignisname
Das eingebundene Ereignis, wie z. B. onmouseclick.
Funktionsname
Der Name der Prozedur (Funktion oder Unterroutine) in der Skriptkomponentendatei, die als Reaktion auf das Ereignis ausgeführt wird. Bei fehlender Angabe wird dieses Attribut generiert.

Wenn das Attribut for nicht angegeben wird, ist der Standardwert des Behandlungsroutinenattributs der Wert des Ereignisattributs. Wenn das Attribut for angegeben wird, ist der Standardwert des Behandlungsroutinenattributs die Zeichenfolge, die durch das Verketten des Attributwertes for, "_", mit dem Ereignisattributwert erstellt wird.

Elementname
Das mit dem Ereignis verknüpfte Element, das für enthaltene Elemente verwendet wird, an die DHTML-Verhalten nicht explizit angefügt sind. Die einzigen möglichen Werte für das Attribut for sind "document", "window" und "element". Wenn kein Attribut for enthalten ist, wird standardmäßig "element" angegeben. Für das Ereignis wird angenommen, dass es für das Element ausgelöst wird, an das das Verhalten angefügt ist.

Beispiel

Im folgenden Beispiel bindet das <attach>-Element drei Ereignisse an Funktionen. Das DHTML-Element onmouseover wird an die Skriptkomponentenfunktion arbeite_onmouseover gebunden. Die an die DHTML-Ereignisse onmouseover und onmouseout gebundenen Funktionen werden nur dann ausgeführt, wenn sie für das Element in dem enthaltenden Dokument ausgelöst werden, an das das Verhalten angefügt ist. Die docinit-Funktion ist explizit in das onload-Ereignis des DHTML-Objekts document eingebunden.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<?XML version="1.0"?>
<component id="verhscript komponente1">
<registration progID="Verhaltenskriptkomponente"/>
<implements type="Behavior">
   <attach event="onmouseover" handler="arbeite_onmouseover"/>
   <attach event="onmouseout "handler="arbeite_onmouseout"/>
   <attach for="window" event="onload" handler="docinit"/>
</implements>
<script language="JScript">
<![CDATA[
var normalColor, normalerAbstand;
function arbeite_onmouseover(){
   // Ursprüngliche Werte speichern.
   normaleFarbe  = style.color;
   normalerAbstand= style.letterSpacing;
   style.color  = "red";
   style.letterSpacing = 2;
}
function arbeite_onmouseout(){
   // Auf ursprüngliche Werte zurücksetzen.
   style.color  = normaleFarbe;
   style.letterSpacing = normalerAbstand;
}
function docinit(){
   document.linkColor = "red";
}
]]>
</script>
</component>

Erstellen einer Verhaltens-Skriptkomponente


attachNotification-Methode

Bindet eine Funktion in der Skriptkomponente an eine vom Host gesendete Benachrichtigungsmeldung.

Verhalten.attachNotification (fzBenachrichtigen)

Werte

Verhalten
Die ID des <implements>-Elements, mit dem die Verhaltensschnittstelle implementiert wird.
Anmerkung Standardmäßig werden die von der Behandlungsroutine offen gelegten Eigenschaften und Methoden automatisch dem Namensraum des globalen Skriptes hinzugefügt, sodass auf diese ohne Verweis auf die ID der Verhaltens-Behandlungsroutine zugegriffen werden kann. In diesem Fall ist anstelle der in der Syntax angezeigten Verwendung von Verhalten.attachNotification die Verwendung der attachNotification-Methode im Skript möglich. Weitere Informationen finden Sie in den Erläuterungen zum <implements>-Element.
fzBenachrichtigen
Der Name der Funktion, die mit der Benachrichtigung verbunden werden soll.

Hinweise

Gegenwärtig kann der Host die angegebene Funktion mit den folgenden Benachrichtigungen aufrufen:

  • "contentReady" Es erfolgte eine Änderung des Inhalts des Elements, an das das Verhalten angefügt wurde. Diese Benachrichtigung wird ausgelöst, sobald die Syntax des schließenden Tags des Elements analysiert wurde und wenn ein Skript die DHTML-Eigenschaft innerHTML festlegt. Ein Verhalten kann diese Benachrichtigung verwenden, um den Inhalt des Elements abzurufen, auf das es angewendet wird.
  • "documentReady" Der Browser hat die Analyse der Dokumentsyntax beendet. Sämtliche Änderungen oder Inizialisierungen, die am Inhalt vorgenommen werden müssen, können an diesem Punkt stattfinden.
    Anmerkung Die attachNotification-Methode benachrichtigt die Skriptkomponente nicht über Standardereignisse, die im Dokument, im Fenster oder in einem beliebigen Element in der Seite erfolgen. Zum Empfangen von Benachrichtigungen dieses Ereignistyps wird die Verwendung der DHTML-Methode achEvent empfohlen.

Bei Änderungen an einer der DHTML-Style-Eigenschaften, wie z. B. Einstellen der Darstellungseigenschaften oder Ändern der Farben oder Schriftarten, wird empfohlen, die Änderungen inline im <script>-Element der Skriptkomponente vorzunehmen, wie im folgenden Skriptkomponentenauszug gezeigt. Das Ändern der Benachrichtigungsklausel documentReady kann ein schwaches Blinksignal auslösen.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<implements type="Behavior"/>
<script language="JScript">
<![CDATA[
   style.color = "green";
   style.letterSpacing = 5;
]]>
</script>

Beispiel

Das folgende Beispiel zeigt, wie eine Funktion eingerichtet werden kann, um Benachrichtigungen zu erfassen und diese entsprechend zu verarbeiten.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<?XML version="1.0"?>
<component>
<implements type="Behavior">
   <event name="beiAenderung" />
</implements>

<script language="JScript">
<![CDATA[
   attachNotification(beiBenachrichtigung);
   function beiBenachrichtigung(sBenachrichtigung){
      if (sBenachrichtigung == "contentReady"){
         // Inhalt des Elements hat sich geändert.
      }
      else if (sBenachrichtigung == "documentReady"){
         // Host hat die Syntaxanalyse des Elements beendet.
      }
      window.status = sBenachrichtigung;
   }
]]>
</script>
</component>

<event>-Element


createEventObject-Methode

Erstellt ein DHTML-Ereignisobjekt, mit dem Ereigniskontextinformationen an das enthaltende Dokument übergeben werden, wenn die fireEvent-Methode aufgerufen wird.

oEreignis = Verhalten.createEventObject()

Werte

Verhalten
Die ID des <implements>-Elements, mit dem die Verhaltensschnittstelle implementiert wird.
Anmerkung Die createEventObject-Methode hat einen globalen Gültigkeitsbereich, weshalb auf diese ohne Verweis auf die Verhaltensbehandlungsroutine-ID zugegriffen werden kann. Anstatt, wie in der Syntax gezeigt, Verhalten.createEventObject zu verwenden, können Sie einfach die Funktion als createEventObject aufrufen. Weitere Informationen finden Sie in den Erläuterungen zum <implements>-Element.
oEreignis
Ein durch die Methode erstelltes Ereignisobjekt.

Hinweise

Dasselbe Ereignisobjekt kann nicht in mehreren fireEvents-Aufrufen wiederverwendet werden.

Beispiel

Der folgende Skriptkomponentenauszug wurde von einem Beispiel einer Rechner-Skriptkomponente abgeleitet. Immer wenn sich das Ergebnis ändert, löst die Skriptkomponente ein benutzerdefiniertes beiAenderung-Ereignis in der Seite aus und übergibt das Ergebnis als expando-Eigenschaft des Ereignisobjekts.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element dunkel anzuzeigen. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<component>
<implements type="Behavior">
   <event name="beiAenderung" />
</implements>

<script language="JScript">
<![CDATA[
attachEvent("onclick", berechnen);

function berechnen()
{
   // Code zur Berechnung einfügen. Die Ergebnisse werden in
   // der Variablen sErgebnis abgelegt.
   oEreignis =createEventObject();
   oEreignis.ergebnis = sErgebnis;
   fireEvent("beiAenderung",oEreignis);
}
]]>
</script>
</component>

Der folgende Abschnitt zeigt, wie die enthaltende DHTML-Seite aussehen kann. Wenn das beiAenderung-Ereignis ausgelöst wird, werden die Ergebnisse der Berechnung aus der expando-Eigenschaft ergebnis des DHTML-Objekts window.event extrahiert und im ergebnisFenster-<DIV>-Element angezeigt.

<HTML>
<HEAD>
<xml:namespace prefix="LK" />
<style>
   LK\:RECHNER {behavior:url(rechner.wsc)}
</style>
<script language="JScript">
function ergebnisAnzeigen(){
   ergebnisFenster.innerText=window.event.ergebnis;
}
</script>
</HEAD>

<LK:RECHNER id="MeinRechner" beiAenderung="ergebnisAnzeigen()">
<TABLE>
<TR>
   <DIV ID=ergebnisFenster
      STYLE="border: '.025cm solid gray'"
      ALIGN=RIGHT>0,</DIV>
</TR>
<TR>
   <TD><INPUT TYPE=BUTTON VALUE=" 0 "></TD>
   <TD><INPUT TYPE=BUTTON VALUE="+/-"></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" , "></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" + "></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" = "></TD>
<TR>
</TABLE>
</LK:RECHNER>
</HTML>

Siehe auch

Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten


element-Eigenschaft

Gibt das Element zurück, auf das das Verhalten angewendet wird.

[oElement = ] Behavior.element

Werte

oElement
Element, auf das das Verhalten angewendet wird.
Behavior
Die Kennung (ID) des <implements>-Elements, das für die Implementierung der Verhaltensschnittstelle eingesetzt wurde.
Anmerkung Standardmäßig werden die von der Verhaltens-Behandlungsroutine offengelegten Eigenschaften und Methoden automatisch dem Namensraum des globalen Skriptes hinzugefügt, sodass auf diese ohne Verweis auf die ID (Kennung) der Verhaltens-Behandlungsroutine zugegriffen werden kann. In diesem Fall kann die Eigenschaft im Skript einfach als element aufgerufen werden (der in der Syntax dargestellte Aufruf Behavior.element ist nicht erforderlich). Weitere Einzelheiten finden Sie in den Erläuterungen zum <implements>-Element.

Hinweise

Die Eigenschaft ist schreibgeschützt.

Mithilfe dieser Eigenschaft kann ein Verhalten mit dem enthaltenden Dokument kommunizieren. Ferner kann über die Eigenschaft auf alle vom DHTML-Objektmodell offengelegten Eigenschaften, Methoden und Ereignisse zugegriffen werden.

Beispiel

Der folgende Skriptkomponentenauszug implementiert mittels einer Skriptkomponente ein ein- und ausblendbares Inhaltsverzeichnis. Die Skriptkomponente wird mit dem DHTML-Ereignis onmouseover des Elements verknüpft. Es setzt die DHTML-Eigenschaft cursor des Elements auf "hand", um dem Benutzer zu signalisieren, dass auf das Element geklickt werden kann, um die untergeordneten Elemente ein- oder auszublenden.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<public>
    <attach event="onmouseover" handler="event_onmouseover");
</public>

<implements type="Behavior"/>
<script language="JScript">
<![CDATA[
    function event_onmouseover()
    {
      oElement = window.event.srcElement;
      if (oElement ==
element)
         oElement.style.cursor = "hand";
    }
]]>
</script>

Siehe auch

Allgemeine Informationen zum Anwenden von Verhalten auf DHTML-Elemente finden Sie unter "Using DHTML Behaviors" im Site Builder Network (SBN).


<layout>-Element

Bestimmt HTML-Text, der in das enthaltende Dokument eingefügt wird.

<layout>
   <HTMLtag>eingefügter Text</HTMLtag>
</layout>

Werte

HTMLtag
Der Name des HTML-Tags, der den Text des Elements ersetzt.

Hinweise

Wenn das Verhalten ausgerufen wird, wird der Text im <layout>-Element in das entsprechende Element im enthaltenden Dokument eingelesen. Dieses Verhalten entspricht dem Setzen der DHTML-Eigenschaft innerHTML des Elements.

Wenn die Skriptkomponente als nicht XML-konform definiert ist, wird der Inhalt des <layout>-Elements dunkel angezeigt. Ist die Skriptkomponente jedoch XML-konform, muss der Inhalt des <layout>-Elements explizit dunkel angezeigt werden, indem dieser in einen CDATA-Abschnitt eingefügt wird. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.

Beispiel

Es folgt das Beispiel einer Skriptkomponente mit einem <layout>-Element. Da sich die <?XML ?>-Deklaration am Anfang der Skriptkomponente befindet, ist im <layout>-Element ein CDATA-Abschnitt enthalten, damit der Inhalt des <layout>-Elements der XML-Syntaxanalyse dunkel angezeigt wird.

<?XML version="1.0" ?>
<component id="bvrScriptlet1">
<registration progID="BehaviorScriptlet"/>
<implements type="Verhalten">
   <layout>
   <![CDATA[
      <h1>Dies ist der im Element angezeigte HTML-Text</h1>
   ]]>
   </layout>
</implements>
</component>

Siehe auch

Allgemeine Informationen zum Anwenden von Verhalten auf DHTML-Elemente finden Sie unter "Using DHTML Behaviors" im Site Builder Network (SBN).


fireEvent-Methode (Windows Script Components Behavior)

Windows Script Components

fireEvent-Methode

Löst ein benutzerdefiniertes Ereignis aus.

Behavior.fireEvent(sEreignis[, oEreignis])

Werte

Behavior
Die Kennung (ID) des <implements>-Elements, das für die Implementierung der Verhaltensschnittstelle eingesetzt wurde.
Anmerkung Standardmäßig werden die von der Verhaltens-Behandlungsroutine offengelegten Eigenschaften und Methoden automatisch dem Namensraum des globalen Skriptes hinzugefügt, sodass auf diese ohne Verweis auf die Kennung (ID) der Verhaltens-Behandlungsroutine zugegriffen werden kann. In diesem Fall kann die Eigenschaft im Skript einfach als fireEvent aufgerufen werden (der in der Syntax dargestellte Aufruf Behavior.fireEvent ist nicht erforderlich). Weitere Einzelheiten finden Sie in den Erläuterungen zum <implements>-Element.
sEreignis
Der Name des benutzerdefinierten Ereignisses gemäß der Deklaration im <implements>-Element.
oEreignis
(Optional) Spezifiziert ein Ereignisobjekt mit Kontextinformationen. Das Ereignisobjekt wird mithilfe der createEventObject-Methode erstellt.

Hinweise

Wird die fireEvent-Methode mehrmals aufgerufen, so muss jedes Mal ein anderes Ereignisobjekt verwendet werden.

Beispiel

Der folgende Skriptkomponentenauszug wurde von einem Beispiel einer Rechner-Skriptkomponente abgeleitet. Immer wenn sich das Ergebnis ändert, löst die Skriptkomponente ein benutzerdefiniertes beiAenderung-Ereignis in der Seite aus und übergibt das Ergebnis als expando-Eigenschaft des Ereignisobjekts.

Anmerkung Es wird ein CDATA-Abschnitt benötigt, um das Skript im <script>-Element gegenüber dem Parser zu verschleiern. Weitere Informationen finden Sie unter Skriptkomponentendateien und XML-Übereinstimmung.
<component>
<public>
   <event name="beiAenderung" />
</public>

<implements type="Behavior">
   <attach event="onclick" handler="berechnen");
</implements>

<script language="JScript">
<![CDATA[
function berechnen(){
   // Code zur Berechnung einfügen. Das Ergebnis wird in
   // der Variablen sErgebnis abgelegt.
   oEreignis = createObjectEvent();
   oEreignis.ergebnis = sErgebnis;
   fireEvent("beiAenderung",oEreignis);
}
]]>
</script>
</component>

Der folgende Abschnitt zeigt, wie die diesen Code enthaltende DHTML-Seite aussehen könnte. Wird das beiAenderung-Ereignis ausgelöst, so wird das Ergebnis der Berechnung aus der expando-Eigenschaft ergebnis des window.event-Objekts extrahiert und im ergebnisFenster-<DIV>-Element angezeigt.

<HTML>
<HEAD>
<xml:namespace prefix="LK" />
<style>
   LK\:RECHNER {behavior:url(rechner.wsc)}
</style>
<script language="JScript">
function ergebnisAnzeigen(){
   ergebnisFenster.innerText=window.event.ergebnis;
}
</script>
</HEAD>

<LK:RECHNER id="MeinRechner" beiAenderung="ergebnisAnzeigen()">
<TABLE>
<TR>
   <DIV ID=ergebnisFenster
      STYLE="border: '.025cm solid gray'"
      ALIGN=RIGHT>0,</DIV>
</TR>
<TR>
   <TD><INPUT TYPE=BUTTON VALUE=" 0 "></TD>
   <TD><INPUT TYPE=BUTTON VALUE="+/-"></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" , "></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" + "></TD>
   <TD><INPUT TYPE=BUTTON VALUE=" = "></TD>
<TR>
</TABLE>
</LK: RECHNER>
</HTML>

Siehe auch

Offenlegen von benutzerdefinierten Ereignissen in Verhaltens-Skriptkomponenten | fireEvent-Methode


Microsoft Windows Script Interfaces-Introduction

Microsoft® Windows® Script Interfaces
Microsoft Windows Script Interfaces-Introduction 		Language Reference
Next

Microsoft® Windows® Script Interfaces introduce a new way for an application to add scripting and OLE Automation capabilities. With the advent of the interfaces, hosts can call upon disparate scripting engines from multiple sources and vendors to perform scripting between components. The implementation of the script itself—language, syntax, persistent format, execution model, and so on—is left to the script vendor. The designers have taken care to allow hosts that rely on Windows Script to use arbitrary language back ends.

  • Windows Script Hosts
  • Windows Script Engines
  • IDispatchEx
  • IProvideMultipleClassInfo
  • Active Script Debugging Interfaces
Windows Script Terms

This list contains definitions of the scripting-related terms used in this document.

Term | Definition
Code object | An instance created by the scripting engine that is associated with a named item, such as the module behind a form in Visual Basic®, or a C++ class associated with a named item. Preferably, this is an OLE Component Object Model (COM) object that supports OLE Automation so the host or other nonscript entity can manipulate the code object.
Named item | An OLE COM object (preferably one that supports OLE Automation) that the host deems interesting to the script. Examples include the HTML Page and Browser in a Web browser, and the Document and Dialogs in Microsoft Word.
Script | The data that makes up the program that the scripting engine runs. A script can be any contiguous executable data, including pieces of text, blocks of pcode, or even machine-specific executable byte codes. A host loads a script into the scripting engine through one of the IPersist* interfaces or through the IActiveScriptParse interface.
Scripting engine | The OLE object that processes scripts. A scripting engine implements the IActiveScript and, optionally, IActiveScriptParse interfaces.
Scripting host | The application or program that owns the Windows Script engine. The host implements the IActiveScriptSite and, optionally, IActiveScriptSiteWindow interfaces.
Scriptlet | A portion of a script that gets attached to an object through the IActiveScriptParse interface. The aggregate collection of scriptlets is the script.
Script language | The language in which a script is written (VBScript, for example) and the semantics of that language.

Windows Script Background

Windows Script components fall into two categories: Windows Script hosts and Windows Script engines. A host creates a scripting engine and calls on the engine to run the scripts. Examples of Windows Script hosts include:

  • Microsoft Internet Explorer
  • Internet authoring tools
  • Shell

Windows Script engines can be developed for any language or run-time environment, including:

  • Microsoft Visual Basic Scripting Edition (VBScript)
  • Perl
  • Lisp

To make implementation of the host as flexible as possible, an OLE Automation wrapper for Windows Script is provided. However, a host that uses this wrapper object to instantiate the scripting engine does not have the degree of control over the run-time name space, the persistence model, and so on, that it would if it used Windows Script directly.

The Windows Script design isolates the interface elements required only in an authoring environment so that nonauthoring hosts (such as browsers and viewers) and script engines (for example, VBScript) can be kept lightweight.

Windows Script Basic Architecture

The following illustration shows the interaction between an Windows Script host and an Windows Script engine.

Following is a description of the steps involved in the interaction between the host and engine. The actual nesting of the function calls is omitted for clarity.

  1. Create a Project. The host loads a project or document. (This step is not particular to Windows Script, but is included here for completeness.)
  2. Create the Windows Script Engine. The host calls CoCreateInstance to create a new Windows Script engine, specifying the class identifier (CLSID) of the specific scripting engine to use. For example, the HTML browsing component of Internet Explorer receives the scripting engine's class identifier through the CLSID= attribute of the HTML <OBJECT> tag.
  3. Load the Script. If the script contents have been persisted, the host calls the script engine's IPersist*::Load method to feed it the script storage, stream, or property bag. Otherwise, the host uses either the IPersist*::InitNew or IActiveScriptParse::InitNew method to create a null script. A host that maintains a script as text can use IActiveScriptParse::ParseScriptText to feed the scripting engine the text of the script, after calling IActiveScriptParse::InitNew.
  4. Add Named Items. For each top-level named item (such as pages and forms) imported into the scripting engine's name space, the host calls the IActiveScript::AddNamedItem method to create an entry in the engine's name space. This step is not necessary if top-level named items are already part of the persistent state of the script loaded in step 3. A host does not use IActiveScript::AddNamedItem to add sublevel named items (such as controls on an HTML page); rather, the engine indirectly obtains sublevel items from top-level items by using the host's ITypeInfo and IDispatch interfaces.
  5. Run the Script. The host causes the engine to start running the script by setting the SCRIPTSTATE_CONNECTED flag in the IActiveScript::SetScriptState method. This call would likely perform any scripting engine construction work, including static binding, hooking up to events (see below), and executing code, in a way similar to a scripted main() function.
  6. Get Item Information. Each time the script engine needs to associate a symbol with a top-level item, it calls the IActiveScriptSite::GetItemInfo method, which returns information about the given item.
  7. Hook Up Event Advise. Before starting the actual script, the scripting engine connects to the events of all the relevant objects through the IConnectionPoint interface.
  8. Invoke Properties and Methods. As the script runs, the scripting engine realizes references to methods and properties on named objects through IDispatch::Invoke or other standard OLE binding mechanisms.


Windows Script Hosts

Microsoft® Windows® Script Interfaces
Windows Script Hosts 		Language Reference
Previous
Next

When implementing Microsoft® Windows® Script host, you can safely assume that a scripting engine will only call the IActiveScriptSite interface in the context of the base thread as long as the host does the following:

  • Chooses a base thread (generally the thread that contains the message loop).
  • Instantiates the scripting engine in the base thread.
  • Calls scripting engine methods only from the base thread, except where specifically allowed, as in the cases of IActiveScript::InterruptScriptThread and IActiveScript::Clone.
  • Calls the scripting engine's dispatch object only from the base thread.
  • Ensures that the message loop runs in the base thread if a window handle is provided.
  • Ensures that objects in the host's object model only source events in the base thread.

These rules are automatically followed by all single-threaded hosts. The restricted model described above is intentionally loose enough to allow a host to abort a stuck script by calling IActiveScript::InterruptScriptThread from another thread (initiated by a CTRL+BREAK handler or the like), or to duplicate a script in a new thread using IActiveScript::Clone.

Also, none of these restrictions apply to a host that chooses to implement a free-threaded IActiveScriptSite interface and a free-threaded object model. Such a host can use the IActiveScript interface from any thread, without restriction.


Windows Script Engines

Microsoft® Windows® Script Interfaces
Windows Script Engines 		Language Reference
Previous
Next

To implement an Microsoft® Windows® Script engine, create an OLE COM object that supports the following interfaces.

Interface | Description
IActiveScript | Provides the basic scripting ability. Implementation of this interface is required.
IActiveScriptParse | Provides the ability to add script text, evaluate expressions, and so on. Implementation of this interface is optional; however, if it is not implemented, the script engine must implement one of the IPersist* interfaces in order to load a script.
IPersist* Provides persistence support. Implementation of at least one of the following interfaces is required if IActiveScriptParse is not implemented.
Interface | Description
IPersistStorage | Provides support for the DATA={url} attribute in the OBJECT tag.
IPersistStreamInit | Provides support for the same as IPersistStorage as well as the DATA="string-encoded byte stream" attribute in the OBJECT tag.
IPersistPropertyBag | Provides support for the PARAM= attribute in the OBJECT tag.

Note: It is possible that the scripting engine will never be called upon to save or restore a script state through IPersist*. Instead, IActiveScriptParse is used by calling IActiveScriptParse::InitNew to create a blank script, then scriptlets are added and connected to events with IActiveScriptParse::AddScriptlet and general code is added with IActiveScriptParse::ParseScriptText. Nonetheless, a scripting engine should fully implement at least one IPersist* interface (preferably IPersistStreamInit), because other host applications may try to make use of them.

The following sections describe implementing a Windows Scripting engine in more detail.

  • Registry Standard
  • Script Engine States
  • Scripting Engine Threading

See the Script Interface Reference for more information.

Registry Standard

An Windows Script engine can identify itself using component categories. Windows Script currently defines two component categories.

Category | Decription
CATID_ActiveScript | Indicates that the class identifiers (CLSIDs) are Windows Script engines that support, at a minimum, the IActiveScript interface and a persistence mechanism (the IPersistStorage, IPersistStreamInit, or IPersistPropertyBag interface).
CATID_ActiveScriptParse | Indicates that the CLSIDs are Windows Script engines that support, at a minimum, the IActiveScript and IActiveScriptParse interfaces.

Although IActiveScriptParse is not a true persistence mechanism, it does support the IActiveScriptParse::InitNew method that is functionally equivalent to IPersist*::InitNew.

Script Engine States

At any given time, an Windows Script engine can be in one of several states.

State | Descriptioon
uninitialized | The script has not been initialized or loaded using an IPersist* interface, or does not have an IActiveScriptSite interface set. The scripting engine is generally not usable from this state until the script is loaded.
initialized The script has been initialized with an IPersist* interface and has an IActiveScriptSite interface set, but is not connected to host objects and sinking events. Note that this state simply means that the IPersist*::Load, IPersist*::InitNew, or IActiveScriptParse::InitNew method has been completed, and that the IActiveScript::SetScriptSite method has been called. The engine cannot run code in this mode. The engine queues code that the host passes to it through the IActiveScriptParse::ParseScriptText method, and executes the code after transitioning to the started state.

Because languages can vary widely in semantics, scripting engines are not required to support this state transition. Engines that support the IActiveScript::Clone method must, however, support this state transition. Hosts must prepare for this transition and take the appropriate action: release the current scripting engine, create a new scripting engine, and call IPersist*::Load, IPersist*::InitNew, or IActiveScriptParse::InitNew (and possibly also call IActiveScriptParse::ParseScriptText). Use of this transition should be considered an optimization of the above steps. Note that any information the scripting engine has obtained about the names of Named Items and the type information describing Named Items remains valid.

Because languages vary widely, defining the exact semantics of this transition is difficult. At a minimum, the scripting engine must disconnect from all events, and release all of the SCRIPTINFO_IUNKNOWN pointers obtained by calling the IActiveScriptSite::GetItemInfo method. The engine must re-obtain these pointers after the script is run again. The scripting engine should also reset the script back to an initial state that is appropriate for the language. VBScript, for example, resets all variables and retains any code added dynamically by calling IActiveScriptParse::ParseScriptText with the SCRIPTTEXT_ISPERSISTENT flag set. Other languages may need to retain current values (such as Lisp because there is no code/data separation) or reset to a well-known state (this includes languages with statically initialized variables).

Note that the transition to the started state should have the same semantics (that is, it should leave the scripting engine in the same state) as calling IPersist*::Save to save the scripting engine, and then calling IPersist*::Load to load a new scripting engine; these actions should have the same semantics as IActiveScript::Clone. Scripting engines that do not yet support IActiveScript::Clone or IPersist* should carefully consider how the transition to the started state should behave, so that such a transition would not violate the above conditions if IActiveScript::Clone or IPersist* support was later added.

During this transition to the started state, the scripting engine will disconnect from event sinks after the appropriate destructors, and so on, are executed in the script. To avoid having these destructors executed, the host can first move the script into the disconnected state before moving into the started state.

Use IActiveScript::InterruptScriptThread to cancel a running script thread without waiting for current events, and so on, to finish running.

started | The transition from the initialized state to the started state causes the engine to execute any code that was queued in the initialized state. The engine can execute code while in the started state, but it is not connected to any events added through the IActiveScript::AddNamedItem method. The engine can execute code by calling the IDispatch interface obtained from the IActiveScript::GetScriptDispatch method, or by calling IActiveScriptParse::ParseScriptText. It is possible that further background initialization (progressive loading) is still ongoing, and that calling the IActiveScript::SetScriptState method with the SCRIPTSTATE_CONNECTED flag set may cause the script to block until initialization is complete.
connected | The script is loaded and connected for sinking events from host objects. If this is a transition from the initialized state, the scripting engine should transition through the started state, performing the necessary actions, before entering the connected state and connecting to events.
disconnected | The script is loaded and has a run-time state, but is temporarily disconnected from sinking events from host objects. This can be done either logically (ignoring events received) or physically (calling IConnectionPoint::Unadvise on the appropriate connection points). If this is a transition from the initialized state, the scripting engine should transition through the started state, performing the necessary actions, before entering the disconnected state. Event sinks that are in progress are completed before the state changes (use IActiveScript::InterruptScriptThread to cancel a running script thread). This state is distinguished from the initialized state in that the transition to this state does not cause the script to reset, the run-time state of the script is not reset, and a script initialization procedure is not executed.
closed | The script has been closed. The scripting engine no longer works and returns errors for most methods.

The following illustration shows the relationships between the various scripting engine states, and shows the methods that cause transitions from one state to another.

The following illustration shows the actions that the scripting engine performs during the various state transitions.

Scripting Engine Threading

Because an Windows Script engine can be used in many environments, it is important to keep its execution model as flexible as possible. For example, a server-based host may need to preserve a multithreaded design while using Windows Script in an efficient manner. At the same time, a host that does not use threading, such as a typical application, should not be burdened with threading management. Windows Script achieves this balance by restricting the ways a free-threaded scripting engine can call back to the host, freeing hosts from this burden.

Scripting engines used on servers are typically implemented as free-threading COM objects. This means that methods on the IActiveScript interface and its associated interfaces can be called from any thread in the process, without marshaling. (Unfortunately, this also means that the scripting engine must be implemented as an in-process server, because OLE does not currently support interprocess marshaling of free-threaded objects.) Synchronization is the responsibility of the scripting engine. For scripting engines that are not internally reentrant, or for language models that are not multithreaded, synchronization could be as simple as serializing access to the scripting engine with a mutex. Of course certain methods, such as IActiveScript::InterruptScriptThread, should not be serialized in this way so that a stuck script can be terminated from another thread.

The fact that IActiveScript is typically free-threaded generally implies that the IActiveScriptSite interface and the host's object model should be free-threaded as well. This would make implementation of the host quite difficult, particularly in the common case where the host is a single-threaded Microsoft Windows®-based application with single-threaded or apartment-model ActiveX Controls in its object model. For this reason, the following constraints are placed on the scripting engine's use of IActiveScriptSite:

  • The script site is always called in the context of a host thread. That is, the scripting engine never calls the script site in the context of a thread that the scripting engine created, but only from within a scripting engine method that was called from the host through IActiveScript and its derivatives, through the exposed scripting engine's dispatch object, through a Windows message, or from an event source in the host's object model.
  • The script site is never called from within the context of a simple thread state control method (for example, the IActiveScript::InterruptScriptThread method) or from the IActiveScript::Clone method.


Windows Script Interface Reference

Microsoft® Windows® Script Interfaces
Windows Script Interface Reference 		Language Reference
Previous
Next

The following interfaces are specific to Microsoft® Windows® Script hosts:

  • IActiveScriptSite
  • IActiveScriptSiteWindow

The following interfaces are specific to Windows Script Engines.

  • IActiveScript
  • IActiveScriptError
  • IActiveScriptParse

The following enumerations are specific to Windows Script Engines.

  • SCRIPTSTATE
  • SCRIPTTHREADSTATE


IActiveScript

Microsoft® Windows® Script Interfaces
IActiveScript 		Language Reference
Previous
Next

The IActiveScript interface provides the methods necessary to initialize the scripting engine. The scripting engine must implement the IActiveScript interface.

Methods in Vtable Order

Method | Description
SetScriptSite | Informs the scripting engine of the IActiveScriptSite site provided by the host.
GetScriptSite | Retrieves the site object associated with the Windows Script engine.
SetScriptState | Places the scripting engine into the specified state.
GetScriptState | Retrieves the current state of the scripting engine.
Close | Causes the scripting engine to abandon any currently loaded script, lose its state, and release any interface pointers it has to other objects, thus entering a closed state.
AddNamedItem | Adds the name of a root-level item to the scripting engine's name space.
AddTypeLib | Adds a type library to the name space for the script.
GetScriptDispatch | Retrieves the IDispatch interface for the running script.
GetCurrentScriptThreadID | Retrieves a scripting-engine-defined identifier for the currently executing thread.
GetScriptThreadID | Retrieves a scripting-engine-defined identifier for the thread associated with the given Microsoft Win32® thread.
GetScriptThreadState | Retrieves the current state of a script thread.
InterruptScriptThread | Interrupts the execution of a running script thread.
Clone | Clones the current scripting engine (minus any current execution state), returning a loaded scripting engine that has no site in the current thread.


IActiveScript::AddNamedItem

Microsoft® Windows® Script Interfaces
IActiveScript::AddNamedItem 		Language Reference
Previous
Next

HRESULT AddNamedItem(
    LPCOLESTR pstrName,  // address of item name
    DWORD dwFlags        // item flags
);

Adds the name of a root-level item to the scripting engine's name space. A root-level item is an object with properties and methods, an event source, or all three.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_INVALIDARG | An argument was invalid.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized).

pstrName
[in] Address of a buffer that contains the name of the item as viewed from the script. The name must be unique and persistable.
dwFlags
[in] Flags associated with an item. Can be a combination of these values:

Value | Meaning
SCRIPTITEM_CODEONLY | Indicates that the named item represents a code-only object, and that the host has no IUnknown to be associated with this code-only object. The host only has a name for this object. In object-oriented languages such as C++, this flag would create a class. Not all languages support this flag.
SCRIPTITEM_GLOBALMEMBERS | Indicates that the item is a collection of global properties and methods associated with the script. Normally, a scripting engine would ignore the object name (other than for the purpose of using it as a cookie for the IActiveScriptSite::GetItemInfo method, or for resolving explicit scoping) and expose its members as global variables and methods. This allows the host to extend the library (run-time functions and so on) available to the script. It is left to the scripting engine to deal with name conflicts (for example, when two SCRIPTITEM_GLOBALMEMBERS items have methods of the same name), although an error should not be returned because of this situation.
SCRIPTITEM_ISPERSISTENT | Indicates that the item should be saved if the scripting engine is saved. Similarly, setting this flag indicates that a transition back to the initialized state should retain the item's name and type information (the scripting engine must, however, release all pointers to interfaces on the actual object).
SCRIPTITEM_ISSOURCE | Indicates that the item sources events that the script can sink. Child objects (properties of the object that are in themselves objects) can also source events to the script. This is not recursive, but it provides a convenient mechanism for the common case, for example, of creating a container and all of its member controls.
SCRIPTITEM_ISVISIBLE | Indicates that the item's name is available in the name space of the script, allowing access to the properties, methods, and events of the item. By convention the properties of the item include the item's children; therefore, all child object properties and methods (and their children, recursively) will be accessible.
SCRIPTITEM_NOCODE | Indicates that the item is simply a name being added to the script's name space, and should not be treated as an item for which code should be associated. For example, without this flag being set, VBScript will create a separate module for the named item, and C++ might create a separate wrapper class for the named item.


IActiveScript::AddTypeLib

Microsoft® Windows® Script Interfaces
IActiveScript::AddTypeLib 		Language Reference
Previous
Next

HRESULT AddTypeLib(
    REFGUID guidTypeLib,  // CLSID of type library
    DWORD dwMaj,          // major version number
    DWORD dwMin,          // minor version number
    DWORD dwFlags         // option flags
);

Adds a type library to the name space for the script. This is similar to the #include directive in C/C++. It allows a set of predefined items such as class definitions, typedefs, and named constants to be added to the run-time environment available to the script.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_INVALIDARG | An argument was invalid.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized).
    TYPE_E_CANTLOADLIBRARY | The specified type library could not be loaded.

guidTypeLib
[in] CLSID of the type library to add.
dwMaj
[in] Major version number.
dwMin
[in] Minor version number.
dwFlags
[in] Option flags. Can be the following:

Value | Meaning
SCRIPTTYPELIB_ISCONTROL | The type library describes an ActiveX control used by the host.


IActiveScript::Clone

Microsoft® Windows® Script Interfaces
IActiveScript::Clone 		Language Reference
Previous
Next

HRESULT Clone(
    IActiveScript **ppscript  // receives pointer to IActiveScript
);

Clones the current scripting engine (minus any current execution state), returning a loaded scripting engine that has no site in the current thread. The properties of this new scripting engine will be identical to the properties the original scripting engine would be in if it were transitioned back to the initialized state.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_NOTIMPL | This method is not supported.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized).

ppscript
[out] Address of a variable that receives a pointer to the IActiveScript interface of the cloned scripting engine. The host must create a site and call the IActiveScript::SetScriptSite method on the new scripting engine before it will be in the initialized state and, therefore, usable.

The IActiveScript::Clone method is an optimization of IPersist*::Save, CoCreateInstance, and IPersist*::Load, so the state of the new scripting engine should be the same as if the state of the original scripting engine were saved and loaded into a new scripting engine. Named items are duplicated in the cloned scripting engine, but specific object pointers for each item are forgotten and are obtained with the IActiveScriptSite::GetItemInfo method. This allows an identical object model with per-thread entry points (an apartment model) to be used.

This method is used for multithreaded server hosts that can run multiple instances of the same script. The scripting engine may return E_NOTIMPL, in which case the host can achieve the same result by duplicating the persistent state and creating a new instance of the scripting engine with an IPersist* interface.

This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.


IActiveScript::Close

Microsoft® Windows® Script Interfaces
IActiveScript::Close 		Language Reference
Previous
Next

HRESULT Close(void);

Causes the scripting engine to abandon any currently loaded script, lose its state, and release any interface pointers it has to other objects, thus entering a closed state. Event sinks, immediately executed script text, and macro invocations that are already in progress are completed before the state changes (use IActiveScript::InterruptScriptThread to cancel a running script thread). This method must be called by the creating host before the interface is released to prevent circular reference problems.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine was already in the closed state).
    OLESCRIPT_S_PENDING | The method was queued successfully, but the state hasn't changed yet. When the state changes, the site will be called back on the IActiveScriptSite::OnStateChange method.
    S_FALSE | The method succeeded, but the script was already closed.


IActiveScript::GetCurrentScriptThreadID

Microsoft® Windows® Script Interfaces
IActiveScript::GetCurrentScriptThreadID 		Language Reference
Previous
Next

HRESULT GetCurrentScriptThreadID(
    SCRIPTTHREADID *pstidThread  // receives scripting thread identifier
);

Retrieves a scripting-engine-defined identifier for the currently executing thread. The identifier can be used in subsequent calls to script thread execution-control methods such as the IActiveScript::InterruptScriptThread method.

  • Returns S_OK if successful, or E_POINTER if an invalid pointer was specified.
pstidThread
[out] Address of a variable that receives the script thread identifier associated with the current thread. The interpretation of this identifier is left to the scripting engine, but it can be just a copy of the Windows thread identifier. If the Win32 thread terminates, this identifier becomes unassigned and can subsequently be assigned to another thread.

This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.


IActiveScript::GetScriptDispatch

Microsoft® Windows® Script Interfaces
IActiveScript::GetScriptDispatch 		Language Reference
Previous
Next

HRESULT GetScriptDispatch(
    LPCOLESTR pstrItemName  // address of item name
    IDispatch **ppdisp      // receives IDispatch pointer
);

Retrieves the IDispatch interface for the methods and properties associated with the currently running script.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_INVALIDARG | An argument was invalid.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized).
    S_FALSE | The scripting engine does not support a dispatch object; the ppdisp parameter is set to NULL.

pstrItemName
[in] Address of a buffer that contains the name of the item for which the caller needs the associated dispatch object. If this parameter is NULL, the dispatch object contains as its members all of the global methods and properties defined by the script. Through the IDispatch interface and the associated ITypeInfo interface, the host can invoke script methods or view and modify script variables.
ppdisp
[out] Address of a variable that receives a pointer to the object associated with the script's global methods and properties. If the scripting engine does not support such an object, NULL is returned.

Because methods and properties can be added by calling the IActiveScriptParse interface, the IDispatch interface returned by this method can dynamically support new methods and properties. Similarly, the IDispatch::GetTypeInfo method should return a new, unique ITypeInfo interface when methods and properties are added. Note, however, that language engines must not change the IDispatch interface in a way that is incompatible with any previous ITypeInfo interface returned. That implies, for example, that DISPIDs will never be reused.


IActiveScript::GetScriptSite

Microsoft® Windows® Script Interfaces
IActiveScript::GetScriptSite 		Language Reference
Previous
Next

HRESULT GetScriptSite(
    REFIID iid,           // interface identifier
    void **ppvSiteObject  // address of host site interface
);

Retrieves the site object associated with the Windows Script engine.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_INVALIDARG | An argument was invalid.
    E_NOINTERFACE | The specified interface is not supported.
    E_POINTER | An invalid pointer was specified.
    S_FALSE | No site has been set; the ppvSiteObject parameter is set to NULL.

iid
[in] Identifier of the requested interface.
ppvSiteObject
[out] Address of the location that receives the interface pointer to the host's site object.


IActiveScript::GetScriptState

Microsoft® Windows® Script Interfaces
IActiveScript::GetScriptState 		Language Reference
Previous
Next

HRESULT GetScriptState(
    SCRIPTSTATE *pss  // address of structure for state information
);

Retrieves the current state of the scripting engine. This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.

  • Returns S_OK if successful, or E_POINTER if an invalid pointer was specified.
pss
[out] Address of a variable that receives a value defined in the SCRIPTSTATE enumeration. The value indicates the current state of the scripting engine associated with the calling thread.


IActiveScript::GetScriptThreadID

Microsoft® Windows® Script Interfaces
IActiveScript::GetScriptThreadID 		Language Reference
Previous
Next

HRESULT GetScriptThreadID(
    DWORD dwWin32ThreadID,       // Win32 thread identifier
    SCRIPTTHREADID *pstidThread  // receives scripting thread identifier
);

Retrieves a scripting-engine-defined identifier for the thread associated with the given Win32 thread.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized) and therefore failed.

dwWin32ThreadID
[in] Thread identifier of a running Win32 thread in the current process. Use the GetCurrentScriptThreadID function to retrieve the thread identifier of the currently executing thread.
pstidThread
[out] Address of a variable that receives the script thread identifier associated with the given Win32 thread. The interpretation of this identifier is left to the scripting engine, but it can be just a copy of the Windows thread identifier. Note that if the Win32 thread terminates, this identifier becomes unassigned and may subsequently be assigned to another thread.

The retrieved identifier can be used in subsequent calls to script thread execution control methods such as the IActiveScript::InterruptScriptThread method.

This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.


IActiveScript::GetScriptThreadState

Microsoft® Windows® Script Interfaces
IActiveScript::GetScriptThreadState 		Language Reference
Previous
Next

HRESULT GetScriptThreadState(
    SCRIPTTHREADID stidThread,    // identifier of script thread
    SCRIPTTHREADSTATE *pstsState  // receives state flag
);

Retrieves the current state of a script thread.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized).

stidThread
[in] Identifier of the thread for which the state is desired, or one of the following special thread identifiers:

Value | Meaning
SCRIPTTHREADID_BASE | The base thread; that is, the thread in which the scripting engine was instantiated.
SCRIPTTHREADID_CURRENT | The currently executing thread.

pstsState
[out] Address of a variable that receives the state of the indicated thread. The state is indicated by one of the named constant values defined by the SCRIPTTHREADSTATE enumeration. If this parameter does not identify the current thread, the state may change at any time.

This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.


IActiveScript::InterruptScriptThread

Microsoft® Windows® Script Interfaces
IActiveScript::InterruptScriptThread 		Language Reference
Previous
Next

HRESULT InterruptScriptThread(
    SCRIPTTHREADID   stidThread,  // identifier of thread
    const EXCEPINFO *pexcepinfo,  // receives error information
    DWORD dwFlags
);

Interrupts the execution of a running script thread (an event sink, an immediate execution, or a macro invocation). This method can be used to terminate a script that is stuck (in an infinite loop, for example). It can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite method.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_INVALIDARG | An argument was invalid.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized).

stidThread
[in] Identifier of the thread to interrupt, or one of the following special thread identifier values:

Value | Meaning
SCRIPTTHREADID_ALL | All threads. The interrupt is applied to all script methods currently in progress. Note that unless the caller has requested that the script be disconnected, by calling the IActiveScript::SetScriptState method with the SCRIPTSTATE_DISCONNECTED or SCRIPTSTATE_INITIALIZED flag set, the next scripted event causes script code to run again.
SCRIPTTHREADID_BASE | The base thread; that is, the thread in which the scripting engine was instantiated.
SCRIPTTHREADID_CURRENT | The currently executing thread.

pexcepinfo
[in] Address of an EXCEPINFO structure that receives error information associated with the error condition.
dwFlags
[in] Option flags associated with the interruption. Can be one of these values:

Value | Meaning
SCRIPTINTERRUPT_DEBUG | If supported, enter the scripting engine's debugger at the current script execution point.
SCRIPTINTERRUPT_RAISEEXCEPTION | If supported by the scripting engine's language, let the script handle the exception. Otherwise, the script method is aborted and the error code is returned to the caller; that is, the event source or macro invoker.


IActiveScript::SetScriptSite

Microsoft® Windows® Script Interfaces
IActiveScript::SetScriptSite 		Language Reference
Previous
Next

HRESULT SetScriptSite(
    IActiveScriptSite *pScriptSite  // address of host script site
);

Informs the scripting engine of the IActiveScriptSite interface site provided by the host. This method must be called before any other IActiveScript interface methods can be used.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_FAIL | An unspecified error occurred; the scripting engine was unable to finish initializing the site.
    E_INVALIDARG | An argument was invalid.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, a site was already set).

pScriptSite
[in] Address of the host-supplied script site to be associated with this instance of the scripting engine. The site must be uniquely assigned to this scripting engine instance; it cannot be shared with other scripting engines.


IActiveScript::SetScriptState

Microsoft® Windows® Script Interfaces
IActiveScript::SetScriptState 		Language Reference
Previous
Next

HRESULT SetScriptState(
    SCRIPTSTATE ss  // identifier of new state
);

Puts the scripting engine into the given state. This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.

  • Returns one of the following values:
    Return Value | Meaning
    S_OK | Success.
    E_FAIL | The scripting engine does not support the transition back to the initialized state. The host must discard this scripting engine and create, initialize, and load a new scripting engine to achieve the same effect.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized) and therefore failed.
    OLESCRIPT_S_PENDING | The method was queued successfully, but the state has not changed yet. When the state changes, the site will be called back through the IActiveScriptSite::OnStateChange method.
    S_FALSE | The method succeeded, but the script was already in the given state.
ss
[in] Sets the scripting engine to the given state. Can be one of the values defined in the SCRIPTSTATE enumeration.

For more information about scripting engine states, see Script Engine States.

See also IActiveScript::Clone, IActiveScript::GetScriptDispatch, IActiveScript::InterruptScriptThread, IActiveScriptParse::ParseScriptText, IActiveScriptSite::GetItemInfo


IActiveScriptError

Microsoft® Windows® Script Interfaces
IActiveScriptError 		Language Reference
Previous
Next

An object implementing this interface is passed to the IActiveScriptSite::OnScriptError method whenever the scripting engine encounters an unhandled error. The host then calls methods on this object to obtain information about the error that occurred.

Methods in Vtable Order

Method | Description
GetExceptionInfo | Retrieves information about an error.
GetSourcePosition | Retrieves the location in the source code where an error occurred.
GetSourceLineText | Retrieves the line in the source file where an error occurred.


IActiveScriptError::GetExceptionInfo

Microsoft® Windows® Script Interfaces
IActiveScriptError::GetExceptionInfo 		Language Reference
Previous
Next

HRESULT GetExceptionInfo(
    EXCEPINFO *pexcepinfo  // structure for exception information
);

Retrieves information about an error that occurred while the scripting engine was running a script.

  • Returns S_OK if successful, or E_FAIL if an error occurred.
pexcepinfo
[out] Address of an EXCEPINFO structure that receives error information.


IActiveScriptError::GetSourceLineText

Microsoft® Windows® Script Interfaces
IActiveScriptError::GetSourceLineText 		Language Reference
Previous
Next

HRESULT GetSourceLineText(
    BSTR *pbstrSourceLine  // address of buffer for source line
);

Retrieves the line in the source file where an error occurred while a scripting engine was running a script.

  • Returns S_OK if successful, or E_FAIL if the line in the source file was not retrieved.
pbstrSourceLine
[out] Address of a buffer that receives the line of source code in which the error occurred.


IActiveScriptError::GetSourcePosition

Microsoft® Windows® Script Interfaces
IActiveScriptError::GetSourcePosition 		Language Reference
Previous
Next

HRESULT GetSourcePosition(
    DWORD *pdwSourceContext,  // context cookie
    ULONG *pulLineNumber,     // line number of error
    LONG *pichCharPosition    // character position of error
);

Retrieves the location in the source code where an error occurred while the scripting engine was running a script.

  • Returns S_OK if successful, or E_FAIL if the location was not retrieved.
pdwSourceContext
[out] Address of a variable that receives a cookie that identifies the context. The interpretation of this parameter depends on the host application.
pulLineNumber
[out] Address of a variable that receives the line number in the source file where the error occurred.
pichCharPosition
[out] Address of a variable that receives the character position in the line where the error occurred.


IActiveScriptParse

Microsoft® Windows® Script Interfaces
IActiveScriptParse 		Language Reference
Previous
Next

If the Windows Script engine allows raw text code scriptlets to be added to the script or allows expression text to be evaluated at run time, it implements the IActiveScriptParse interface. For interpreted scripting languages that have no independent authoring environment, such as VBScript, this provides an alternate mechanism (other than IPersist*) to get script code into the scripting engine, and to attach script fragments to various object events.

Methods in Vtable Order

Method | Description
InitNew | Initializes the scripting engine.
AddScriptlet | Adds a code scriptlet to the script.
ParseScriptText | Parses the given code scriptlet, adding declarations into the name space and evaluating code as appropriate.


IActiveScriptParse::AddScriptlet

Microsoft® Windows® Script Interfaces
IActiveScriptParse::AddScriptlet 		Language Reference
Previous
Next

HRESULT AddScriptlet(
    LPCOLESTR pstrDefaultName,   // address of default name of scriptlet
    LPCOLESTR pstrCode,          // address of scriptlet text
    LPCOLESTR pstrItemName,      // address of item name
    LPCOLESTR pstrSubItemName,   // address of subitem name
    LPCOLESTR pstrEventName,     // address of event name
    LPCOLESTR pstrDelimiter,     // address of end-of-scriptlet delimiter
    DWORD dwSourceContextCookie, // application-defined value for debugging
    ULONG ulStartingLineNumber,  // starting line of the script
    DWORD dwFlags,               // scriptlet flags
    BSTR *pbstrName,             // address of actual name of scriptlet
    EXCEPINFO *pexcepinfo        // address of exception information
);

Adds a code scriptlet to the script. This method is used in environments where the persistent state of the script is intertwined with the host document and the host is responsible for restoring the script, rather than through an IPersist* interface. The primary examples are HTML scripting languages that allow scriptlets of code embedded in the HTML document to be attached to intrinsic events (for instance, ONCLICK="button1.text='Exit'").

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    DISP_E_EXCEPTION | An exception occurred in the parsing of the scriptlet; the pexcepinfo parameter contains information about the exception.
    E_INVALIDARG | An argument was invalid.
    E_NOTIMPL | This method is not supported; the scripting engine does not support adding event-sinking scriptlets.
    E_POINTER | An invalid pointer was specified.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine has not yet been loaded or initialized) and therefore failed.
    OLESCRIPT_E_INVALIDNAME | The default name supplied is invalid in this scripting language.
    OLESCRIPT_E_SYNTAX | An unspecified syntax error occurred in the scriptlet.

pstrDefaultName
[in] Address of a default name to associate with the scriptlet. If the scriptlet does not contain naming information (as in the ONCLICK example above), this name will be used to identify the scriptlet. If this parameter is NULL, the scripting engine manufactures a unique name, if necessary.
pstrCode
[in] Address of the scriptlet text to add. The interpretation of this string depends on the scripting language.
pstrItemName
[in] Address of a buffer that contains the item name associated with this scriptlet. This parameter, in addition to pstrSubItemName, identifies the object for which the scriptlet is an event handler.
pstrSubItemName
[in] Address of a buffer that contains the name of a subobject of the named item with which this scriptlet is associated; this name must be found in the named item's type information. This parameter is NULL if the scriptlet is to be associated with the named item instead of a subitem. This parameter, in addition to pstrItemName, identifies the specific object for which the scriptlet is an event handler.
pstrEventName
[in] Address of a buffer that contains the name of the event for which the scriptlet is an event handler.
pstrDelimiter
[in] Address of the end-of-scriptlet delimiter. When the pstrCode parameter is parsed from a stream of text, the host typically uses a delimiter, such as two single quotation marks ("), to detect the end of the scriptlet. This parameter specifies the delimiter that the host used, allowing the scripting engine to provide some conditional primitive preprocessing (for example, replacing a single quotation mark ['] with two single quotation marks for use as a delimiter). Exactly how (and if) the scripting engine makes use of this information depends on the scripting engine. Set this parameter to NULL if the host did not use a delimiter to mark the end of the scriptlet.
dwSourceContextCookie
[in] Application-defined value that is used for debugging purposes.
ulStartingLineNumber
[in] Zero-based value that specifies which line the parsing will begin at.
dwFlags
[in] Flags associated with the scriptlet. Can be a combination of the following values:

Return Value | Meaning
SCRIPTTEXT_ISVISIBLE | Indicates that the script text should be visible (and, therefore, callable by name) as a global method in the name space of the script.
SCRIPTTEXT_ISPERSISTENT | Indicates that the code added during this call should be saved if the scripting engine is saved (for example, through a call to IPersist*::Save), or if the scripting engine is reset by way of a transition back to the initialized state. For more information about this state, see Script Engine States.

pbstrName
[out] Actual name used to identify the scriptlet. This will be, in order of preference: a name explicitly specified in the scriptlet text, the default name provided in pstrDefaultName, or a unique name synthesized by the scripting engine.
pexcepinfo
[out] Address of a structure containing exception information. This structure should be filled in if DISP_E_EXCEPTION is returned.


IActiveScriptParse::InitNew

Microsoft® Windows® Script Interfaces
IActiveScriptParse::InitNew 		Language Reference
Previous
Next

HRESULT InitNew(void);

Initializes the scripting engine.

  • Returns S_OK if successful, or E_FAIL if an error occurred during initialization.

Before the scripting engine can be used, one of the following methods must be called: IPersist*::Load, IPersist*::InitNew, or IActiveScriptParse::InitNew. The semantics of this method are identical to IPersistStreamInit::InitNew, in that this method tells the scripting engine to initialize itself. Note that it is not valid to call both IPersist*::InitNew or IActiveScriptParse::InitNew and IPersist*::Load, nor is it valid to call IPersist*::InitNew, IActiveScriptParse::InitNew, or IPersist*::Load more than once.


IActiveScriptParse::ParseScriptText

Microsoft® Windows® Script Interfaces
IActiveScriptParse::ParseScriptText 		Language Reference
Previous
Next

HRESULT ParseScriptText(
    LPCOLESTR pstrCode,          // address of scriptlet text
    LPCOLESTR pstrItemName,      // address of item name
    IUnknown *punkContext,       // address of debugging context
    LPCOLESTR pstrDelimiter,     // address of end-of-scriptlet delimiter
    DWORD dwSourceContextCookie, // application-defined value for debugging
    ULONG ulStartingLineNumber,  // starting line of the script
    DWORD dwFlags,               // scriptlet flags
    VARIANT *pvarResult,         // address of buffer for results
    EXCEPINFO *pexcepinfo        // address of buffer for error data
);

Parses the given code scriptlet, adding declarations into the name space and evaluating code as appropriate.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    DISP_E_EXCEPTION | An exception occurred in the processing of the scriptlet. The pexcepinfo parameter contains information about the exception.
    E_INVALIDARG | An argument was invalid.
    E_POINTER | An invalid pointer was specified.
    E_NOTIMPL | This method is not supported. The scripting engine does not support run-time evaluation of expressions or statements.
    E_UNEXPECTED | The call was not expected (for example, the scripting engine is in the uninitialized or closed state, or the SCRIPTTEXT_ISEXPRESSION flag was set and the scripting engine is in the initialized state).
    OLESCRIPT_E_SYNTAX | An unspecified syntax error occurred in the scriptlet.

pstrCode
[in] Address of the scriptlet text to evaluate. The interpretation of this string depends on the scripting language.
pstrItemName
[in] Address of the item name that gives the context in which the scriptlet is to be evaluated. If this parameter is NULL, the code is evaluated in the scripting engine's global context.
punkContext
[in] Address of the context object. This object is reserved for use in a debugging environment, where such a context may be provided by the debugger to represent an active run-time context. If this parameter is NULL, the engine uses pstrItemName to identify the context.
pstrDelimiter
[in] Address of the end-of-scriptlet delimiter. When pstrCode is parsed from a stream of text, the host typically uses a delimiter, such as two single quotation marks ("), to detect the end of the scriptlet. This parameter specifies the delimiter that the host used, allowing the scripting engine to provide some conditional primitive preprocessing (for example, replacing a single quotation mark ['] with two single quotation marks for use as a delimiter). Exactly how (and if) the scripting engine makes use of this information depends on the scripting engine. Set this parameter to NULL if the host did not use a delimiter to mark the end of the scriptlet.
dwSourceContextCookie
[in] Application-defined value that is used for debugging purposes.
ulStartingLineNumber
[in] Zero-based value that specifies which line the parsing will begin at.
dwFlags
[in] Flags associated with the scriptlet. Can be a combination of these values:

Value | Meaning
SCRIPTTEXT_ISEXPRESSION | If the distinction between a computational expression and a statement is important but syntactically ambiguous in the script language, this flag specifies that the scriptlet is to be interpreted as an expression, rather than as a statement or list of statements. By default, statements are assumed unless the correct choice can be determined from the syntax of the scriptlet text.
SCRIPTTEXT_ISPERSISTENT | Indicates that the code added during this call should be saved if the scripting engine is saved (for example, through a call to IPersist*::Save), or if the scripting engine is reset by way of a transition back to the initialized state.
SCRIPTTEXT_ISVISIBLE | Indicates that the script text should be visible (and, therefore, callable by name) as a global method in the name space of the script.

pvarResult
[out] Address of a buffer that receives the results of scriptlet processing, or NULL if the caller expects no result (that is, the SCRIPTTEXT_ISEXPRESSION value is not set).
pexcepinfo
[out] Address of a structure that receives exception information. This structure is filled if IActiveScriptParse::ParseScriptText returns DISP_E_EXCEPTION.

If the scripting engine is in the initialized state, no code will actually be evaluated during this call; rather, such code is queued and executed when the scripting engine is transitioned into (or through) the started state. Because execution is not allowed in the initialized state, it is an error to call this method with the SCRIPTTEXT_ISEXPRESSION flag when in the initialized state.

The scriptlet can be an expression, a list of statements, or anything allowed by the script language. For example, this method is used in the evaluation of the HTML <SCRIPT> tag, which allows statements to be executed as the HTML page is being constructed, rather than just compiling them into the script state.

The code passed to this method must be a valid, complete portion of code. For example, in VBScript it is illegal to call this method once with Sub Function(x) and then a second time with End Sub. The parser must not wait for the second call to complete the subroutine, but rather must generate a parse error because a subroutine declaration was started but not completed.

For more information about script states, see Script Engine States.


IActiveScriptSite

Microsoft® Windows® Script Interfaces
IActiveScriptSite 		Language Reference
Previous
Next

The host must create a site for the Windows Script engine by implementing the IActiveScriptSite interface. Usually, this site will be associated with the container of all the objects that are visible to the script (for example, the ActiveX Controls). Typically, this container will correspond to the document or page being viewed. Microsoft Internet Explorer, for example, would create such a container for each HTML page being displayed. Each ActiveX control (or other automation object) on the page, and the scripting engine itself, would be enumerable within this container.

Methods in Vtable Order

Method | Description
GetLCID | Retrieves the locale identifier that the host uses for displaying user-interface elements.
GetItemInfo | Obtains information about an item that was added to an engine through a call to the IActiveScript::AddNamedItem method.
GetDocVersionString | Retrieves a host-defined string that uniquely identifies the current document version from the host's point of view.
OnScriptTerminate | Called when the script has completed execution.
OnStateChange | Informs the host that the scripting engine has changed states.
OnScriptError | Informs the host that an execution error occurred while the engine was running the script.
OnEnterScript | Informs the host that the scripting engine has begun executing the script code.
OnLeaveScript | Informs the host that the scripting engine has returned from executing script code.


IActiveScriptSite::GetDocVersionString

Microsoft® Windows® Script Interfaces
IActiveScriptSite::GetDocVersionString 		Language Reference
Previous
Next

HRESULT GetDocVersionString(
    BSTR *pbstrVersionString  // address of document version string
);

Retrieves a host-defined string that uniquely identifies the current document version. If the related document has changed outside the scope of Windows Script (as in the case of an HTML page being edited with NotePad), the scripting engine can save this along with its persisted state, forcing a recompile the next time the script is loaded.

  • Returns S_OK if successful, or E_NOTIMPL if this method is not supported.
pstrVersionString
[out] Address of the host-defined document version string.

If E_NOTIMPL is returned, the scripting engine should assume that the script is in sync with the document.


IActiveScriptSite::GetItemInfo

Microsoft® Windows® Script Interfaces
IActiveScriptSite::GetItemInfo 		Language Reference
Previous
Next

HRESULT IActiveScriptSite::GetItemInfo(
    LPCOLESTR pstrName,     // address of item name
    DWORD dwReturnMask,     // bit mask for information retrieval
    IUnknown **ppunkItem,   // address of pointer to item's IUnknown
    ITypeInfo **ppTypeInfo  // address of pointer to item's ITypeInfo
);

Allows the scripting engine to obtain information about an item added with the IActiveScript::AddNamedItem method.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_INVALIDARG | An argument was invalid.
    E_POINTER | An invalid pointer was specified.
    TYPE_E_ELEMENTNOTFOUND | An item of the specified name was not found.

pstrName
[in] The name associated with the item, as specified in the IActiveScript::AddNamedItem method.
dwReturnMask
[in] A bit mask specifying what information about the item should be returned. The scripting engine should request the minimum amount of information possible because some of the return parameters (for example, ITypeInfo) can take considerable time to load or generate. Can be a combination of the following values:

Value | Meaning
SCRIPTINFO_IUNKNOWN | Return the IUnknown interface for this item.
SCRIPTINFO_ITYPEINFO | Return the ITypeInfo interface for this item.

ppunkItem
[out] Address of a variable that receives a pointer to the IUnknown interface associated with the given item. The scripting engine can use the IUnknown::QueryInterface method to obtain the IDispatch interface for the item. This parameter receives NULL if dwReturnMask does not include the SCRIPTINFO_IUNKNOWN value. Also, it receives NULL if there is no object associated with the item name; this mechanism is used to create a simple class when the named item was added with the SCRIPTITEM_CODEONLY flag set in the IActiveScript::AddNamedItem method.
ppTypeInfo
[out] Address of a variable that receives a pointer to the ITypeInfo interface associated with the item. This parameter receives NULL if dwReturnMask does not include the SCRIPTINFO_ITYPEINFO value, or if type information is not available for this item. If type information is not available, the object cannot source events, and name binding must be realized with the IDispatch::GetIDsOfNames method. Note that the ITypeInfo interface retrieved describes the item's coclass (TKIND_COCLASS) because the object may support multiple interfaces and event interfaces. If the item supports the IProvideMultipleTypeInfo interface, the ITypeInfo interface retrieved is the same as the index zero ITypeInfo that would be obtained using the IProvideMultipleTypeInfo::GetInfoOfIndex method.

This method retrieves only the information indicated by the dwReturnMask parameter; this improves performance. For example, if an ITypeInfo interface is not needed for an item, it is simply not specified in dwReturnMask.


IActiveScriptSite::GetLCID

Microsoft® Windows® Script Interfaces
IActiveScriptSite::GetLCID 		Language Reference
Previous
Next

HRESULT GetLCID(
    LCID *plcid  // address of variable for language identifier
);

Retrieves the locale identifier associated with the host's user interface. The scripting engine uses the identifier to ensure that error strings and other user-interface elements generated by the engine appear in the appropriate language.

  • Returns one of the following values:

    Return Value | Meaning
    S_OK | Success.
    E_NOTIMPL | This method is not implemented. Use the system-defined locale.
    E_POINTER | An invalid pointer was specified.

plcid
[out] Address of a variable that receives the locale identifier for user-interface elements displayed by the scripting engine.

If this method returns E_NOTIMPL, the system-defined locale identifier should be used.


IActiveScriptSite::OnEnterScript

Microsoft® Windows® Script Interfaces
IActiveScriptSite::OnEnterScript 		Language Reference
Previous
Next

HRESULT OnEnterScript(void);

Informs the host that the scripting engine has begun executing the script code.

  • Returns S_OK if successful.

The scripting engine must call this method on every entry or reentry into the scripting engine. For example, if the script calls an object that then fires an event handled by the scripting engine, the scripting engine must call IActiveScriptSite::OnEnterScript before executing the event, and must call the IActiveScriptSite::OnLeaveScript method after executing the event but before returning to the object that fired the event. Calls to this method can be nested. Every call to this method requires a corresponding call to IActiveScriptSite::OnLeaveScript.


IActiveScriptSite::OnLeaveScript

Microsoft® Windows® Script Interfaces
IActiveScriptSite::OnLeaveScript 		Language Reference
Previous
Next

HRESULT IActiveScriptSite::OnLeaveScript(void);

Informs the host that the scripting engine has returned from executing script code.

  • Returns S_OK if successful.

The scripting engine must call this method before returning control to a calling application that entered the scripting engine. For example, if the script calls an object that then fires an event handled by the scripting engine, the scripting engine must call the IActiveScriptSite::OnEnterScript method before executing the event, and must call IActiveScriptSite::OnLeaveScript after executing the event before returning to the object that fired the event. Calls to this method can be nested. Every call to IActiveScriptSite::OnEnterScript requires a corresponding call to this method.


IActiveScriptSite::OnScriptError

Microsoft® Windows® Script Interfaces
IActiveScriptSite::OnScriptError 		Language Reference
Previous
Next

HRESULT IActiveScriptSite::OnScriptError(
    IActiveScriptError *pase  // address of error interface
);

Informs the host that an execution error occurred while the engine was running the script.

  • Returns S_OK if the error was correctly handled, or an OLE defined error code otherwise.
pase
[in] Address of the error object's IActiveScriptError interface. A host can use this interface to obtain information about the execution error.


IActiveScriptSite::OnScriptTerminate

Microsoft® Windows® Script Interfaces
IActiveScriptSite::OnScriptTerminate 		Language Reference
Previous
Next

HRESULT OnScriptTerminate(
    VARIANT *pvarResult,   // address of script results
    EXCEPINFO *pexcepinfo  // address of structure with exception information
);

Informs the host that the script has completed execution.

  • Returns S_OK if successful.
pvarResult
[in] Address of a variable that contains the script result, or NULL if the script produced no result.
pexcepinfo
[in] Address of an EXCEPINFO structure that contains exception information generated when the script terminated, or NULL if no exception was generated.

The scripting engine calls this method before the call to the IActiveScriptSite::OnStateChange method, with the SCRIPTSTATE_INITIALIZED flag set, is completed. This method can be used to return completion status and results to the host. Note that many script languages, which are based on sinking events from the host, have life spans that are defined by the host. In this case, this method may never be called.


IActiveScriptSite::OnStateChange

Microsoft® Windows® Script Interfaces
IActiveScriptSite::OnStateChange 		Language Reference
Previous
Next

HRESULT IActiveScriptSite::OnStateChange(
    SCRIPTSTATE ssScriptState  // new state of engine
);

Informs the host that the scripting engine has changed states.

  • Returns S_OK if successful.
ssScriptState
[in] Value that indicates the new script state. See the IActiveScript::GetScriptState method for a description of the states.


IActiveScriptSiteWindow

Microsoft® Windows® Script Interfaces
IActiveScriptSiteWindow 		Language Reference
Previous
Next

This interface is implemented by hosts that support a user interface on the same object as IActiveScriptSite. Hosts that do not support a user interface, such as servers, would not implement the IActiveScriptSiteWindow interface. The scripting engine accesses this interface by calling QueryInterface from IActiveScriptSite.

Methods in Vtable Order

Method | Description
GetWindow | Retrieves the window handle that can act as the owner of a pop-up window that the scripting engine must display.
EnableModeless | Causes the host to enable or disable its main window as well as any modeless dialog boxes.


IActiveScriptSiteWindow::EnableModeless

Microsoft® Windows® Script Interfaces
IActiveScriptSiteWindow::EnableModeless 		Language Reference
Previous
Next

HRESULT IActiveScriptSite::EnableModeless(
    BOOL fEnable  // enable flag
);

Causes the host to enable or disable its main window as well as any modeless dialog boxes.

  • Returns S_OK if successful, or E_FAIL if an error occurred.
fEnable
[in] Flag that, if TRUE, enables the main window and modeless dialogs or, if FALSE, disables them.

This method is identical to the IOleInPlaceFrame::EnableModeless method.

Calls to this method can be nested.


IActiveScriptSiteWindow::GetWindow

Microsoft® Windows® Script Interfaces
IActiveScriptSiteWindow::GetWindow 		Language Reference
Previous
Next

HRESULT GetWindow(
    HWND *phwnd  // address of variable for window handle
);

Retrieves the handle to a window that can act as the owner of a pop-up window that the scripting engine must display.

  • Returns S_OK if successful, or E_FAIL if an error occurred.
phwnd
[out] Address of a variable that receives the window handle.

This method is similar to the IOleWindow::GetWindow method.


Enumerations

Microsoft® Windows® Script Interfaces
Enumerations 		Language Reference
Previous
Next

This section describes the enumerations used by Windows Script engines.

  • SCRIPTSTATE
  • SCRIPTTHREADSTATE


SCRIPTSTATE

Microsoft® Windows® Script Interfaces
SCRIPTSTATE 		Language Reference
Previous
Next

typedef enum tagSCRIPTSTATE {
    SCRIPTSTATE_UNINITIALIZED = 0,
    SCRIPTSTATE_INITIALIZED   = 5,
    SCRIPTSTATE_STARTED       = 1,
    SCRIPTSTATE_CONNECTED     = 2,
    SCRIPTSTATE_DISCONNECTED  = 3,
    SCRIPTSTATE_CLOSED        = 4
} SCRIPTSTATE;

Contains named constant values that specify the state of a scripting engine. This enumeration is used by the IActiveScript::GetScriptState, IActiveScript::SetScriptState, and IActiveScriptSite::OnStateChange methods.

SCRIPTSTATE_UNINITIALIZED
Script has just been created, but has not yet been initialized using an IPersist* interface and IActiveScript::SetScriptSite.
SCRIPTSTATE_INITIALIZED
Script has been initialized, but is not running (connecting to other objects or sinking events) or executing any code. Code can be queried for execution by calling the IActiveScriptParse::ParseScriptText method.
SCRIPTSTATE_STARTED
Script can execute code, but is not yet sinking the events of objects added by the IActiveScript::AddNamedItem method.
SCRIPTSTATE_CONNECTED
Script is loaded and connected for sinking events.
SCRIPTSTATE_DISCONNECTED
Script is loaded and has a run-time execution state, but is temporarily disconnected from sinking events.
SCRIPTSTATE_CLOSED
Script has been closed. The scripting engine no longer works and returns errors for most methods.


SCRIPTTHREADSTATE

Microsoft® Windows® Script Interfaces
SCRIPTTHREADSTATE 		Language Reference
Previous

typedef enum tagSCRIPTTHREADSTATE {
    SCRIPTTHREADSTATE_NOTINSCRIPT  = 0,
    SCRIPTTHREADSTATE_RUNNING      = 1
} SCRIPTTHREADSTATE;

Contains named constant values that specify the state of a thread in a scripting engine. This enumeration is used by the IActiveScript::GetScriptThreadState method.

SCRIPTTHREADSTATE_NOTINSCRIPT
Specified thread is not currently servicing a scripted event, processing immediately executed script text, or running a script macro.
SCRIPTTHREADSTATE_RUNNING
Specified thread is actively servicing a scripted event, processing immediately executed script text, or running a script macro.


IDispatchEx Interface

IDispatchEx, an extension of the IDispatch interface, supports features appropriate for dynamic languages such as scripting languages. This section describes the IDispatchEx interface itself, the differences between IDispatch and IDispatchEx, and the rationale for the extensions. It is expected that readers are familiar with IDispatch and have access to the IDispatch documentation.

Remarks

IDispatch was developed essentially for Microsoft® Visual Basic®. The primary limitation of IDispatch is that it assumes that objects are static. In other words, since objects do not change during run time, type information can fully describe them at compile time. Dynamic run-time models that are found in scripting languages such as Visual Basic Scripting Edition (VBScript) and JScript and object models such as Dynamic HTML require a more flexible interface.

IDispatchEx was developed to provide all the services of IDispatch as well as some extensions that are appropriate for more dynamic late-bound languages such as scripting languages. The additional features of IDispatchEx beyond those provided by IDispatch are:

  • Add new members to an object ("expando") — use GetDispID with the fdexNameEnsure flag.
  • Delete members of an object — use DeleteMemberByName or DeleteMemberByDispID.
  • Case-sensitive dispatch operations — use fdexNameCaseSensitive or fdexNameCaseInsensitive.
  • Search for member with implicit name — use fdexNameImplicit.
  • Enumerate DISPIDs of an object — use GetNextDispID.
  • Map from DISPID to element name — use GetMemberName.
  • Obtain properties of object members — use GetMemberProperties.
  • Method invocation with this pointer — use InvokeEx with DISPATCH_METHOD.
  • Allow browsers that support the concept of name spaces to obtain the name space parent of an object — use GetNameSpaceParent.

Objects that support IDispatchEx might also support IDispatch for backward compatibility. The dynamic nature of objects that support IDispatchEx has a few implications for the IDispatch interface of those objects. For example, IDispatch makes the following assumption:

The member and parameter DISPIDs must remain constant for the lifetime of the object. This allows a client to obtain DISPIDs once and cache them for later use.

Since IDispatchEx allows the addition and deletion of members, the set of valid DISPIDs does not remain constant. However, IDispatchEx requires that the mapping between DISPID and member name remain constant. This means that if a member is deleted:

  • The DISPID cannot be reused until a member with the same name is created.
  • The DISPID must remain valid for GetNextDispID.
  • The DISPID must be accepted gracefully by any of the IDispatch/IDispatchEx methods — they must recognize the member as deleted and return an appropriate error code (usually DISP_E_MEMBERNOTFOUND or S_FALSE).

Examples

This JScript code in the function test() does the following:

  • Creates a new object by calling the Object constructor and assigns a pointer to the new object to the variable Obj.
  • Creates a new element named Elem in the object and assigns to this element a pointer to the function cat.
  • Calls this function. Since it is being called as a method, the this pointer refers to the object Obj. The function adds a new element, Bar, to the object.

The full HTML code is:

   <HTML>
   <BODY>
   <SCRIPT LANGUAGE="JScript">
   function cat()
   {
      // Create new element and assign the value 10
      this.Bar = 10;
   }

   function test()
   {
      // Construct new object
      Obj = new Object();

      // Create new element and assign function pointer
      Obj.Elem = cat;

      // Call Elem method ("this" == Obj)
      Obj.Elem();

      // Obj.Bar now exists
   }
   test();
   </SCRIPT>
   </BODY>
   </HTML>

A control placed on this same Web page could obtain a dispatch pointer to the script engines from the browser. The control could then implement the function test():

   <HTML>
   <BODY>
   <SCRIPT LANGUAGE="JScript">
   function cat()
   {
      // Create new element and assign the value 10
      this.Bar = 10;
   }
   </SCRIPT>
   <OBJECT ID="test" <CLASSID="CLSID:9417DB5D-FA2A-11D0-8CB3-00C04FC2B085">>
   </OBJECT>
   </BODY>
   </HTML>

Code from the control, test, does the same thing as the JScript function test(). Note that these dispatch calls are made into the running JScript engine and change the state of the engine:

  • Obtains the dispatch pointer to the cat function using GetDispID().
  • Obtains the dispatch pointer to the Object function using GetDispID().
  • Constructs an object by calling the Object function with InvokeEx() and obtains a dispatch pointer to the newly constructed object.
  • Creates a new element, Elem, in the object using GetDispID() with the fdexNameEnsure flag.
  • Puts the dispatch pointer to cat in the element using InvokeEx().
  • Calls the dispatch pointer to cat as a method by calling InvokeEx() and passing in the dispatch pointer to the constructed object as the this pointer.
  • The cat method creates a new element, Bar, on the current this object.
  • Verifies that the new element, Bar, was created in the constructed object by enumerating through the elements using GetNextDispID().

The code for the test control:

   BOOL test(IDispatchEx *pdexScript)
   {
      HRESULT hr;
      VARIANT var;
      BSTR bstrName;
      DISPID dispid, putid;
      IDispatchEx *pdexObj;
      IDispatch   *pdispObj, *pdispCat;
      DISPPARAMS dispparams, dispparamsNoArgs = {NULL, NULL, 0, 0};

      // Get dispatch pointer for "cat"
      bstrName = SysAllocString(OLESTR("cat"));
      pdexScript->GetDispID(bstrName, 0, &dispid);
      SysFreeString(bstrName);
      pdexScript->InvokeEx(dispid, LOCALE_USER_DEFAULT,
         DISPATCH_PROPERTYGET, &dispparamsNoArgs,
         &var, NULL, NULL);
      pdispCat = var.pdispVal;

      // Create object by calling "Object" constructor
      bstrName = SysAllocString(OLESTR("Object"));
      pdexScript->GetDispID(bstrName, 0, &dispid);
      SysFreeString(bstrName);
      pdexScript->InvokeEx(dispid, LOCALE_USER_DEFAULT,
         DISPATCH_CONSTRUCT, &dispparamsNoArgs,
         &var, NULL, NULL);
      pdispObj = var.pdispVal;
      pdispObj->QueryInterface(IID_IDispatchEx, (void **)&pdexObj);

      // Create new element in object
      bstrName = SysAllocString(OLESTR("Elem"));
      pdexObj->GetDispID(bstrName, fdexNameEnsure, &dispid);
      SysFreeString(bstrName);

      // Assign "cat" dispatch pointer to element
      putid = DISPID_PROPERTYPUT;
      var.vt = VT_DISPATCH;
      var.pdispVal = pdispCat;
      dispparams.rgvarg = &var;
      dispparams.rgdispidNamedArgs = &putid;
      dispparams.cArgs = 1;
      dispparams.cNamedArgs = 1;
      pdexObj->InvokeEx(dispid, LOCALE_USER_DEFAULT,
         DISPATCH_PROPERTYPUTREF, &dispparams,
         NULL, NULL, NULL);

      // Invoke method with "this" pointer
      putid = DISPID_THIS;
      var.vt = VT_DISPATCH;
      var.pdispVal = pdispObj;
      dispparams.rgvarg = &var;
      dispparams.rgdispidNamedArgs = &putid;
      dispparams.cArgs = 1;
      dispparams.cNamedArgs = 1;
      pdexObj->InvokeEx(dispid, LOCALE_USER_DEFAULT,
         DISPATCH_METHOD, &dispparams,
      NULL, NULL, NULL);

      // Confirm that new element "Bar" is in object
      hr = pdexObj->GetNextDispID(fdexEnumAll, DISPID_STARTENUM, &dispid);
      while (hr != S_FALSE)
      {
         pdexObj->GetMemberName(dispid, &bstrName);
         if (!wcscmp(bstrName, OLESTR("Bar")))
            return TRUE;
         SysFreeString(bstrName);
         hr = pdexObj->GetNextDispID(fdexEnumAll, dispid, &dispid);
      }
      return FALSE;
   }

Methods

IDispatchEx Methods

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx Methods

In This Section

IDispatchEx::DeleteMemberByDispID
Deletes a member by DISPID.
IDispatchEx::DeleteMemberByName
Deletes a member by name.
IDispatchEx::GetDispID
Maps a single member name to its corresponding DISPID, which can then be used on subsequent calls to IDispatchEx::InvokeEx.
IDispatchEx::GetMemberName
Retrieves the name of a member.
IDispatchEx::GetMemberProperties
Retrieves a member's properties.
IDispatchEx::GetNameSpaceParent
Retrieves the interface for the namespace parent of an object.
IDispatchEx::GetNextDispID
Enumerates the members of the object.
IDispatchEx::InvokeEx
Provides access to properties and methods exposed by an IDispatchEx object.

Related Section

IDispatchEx Interface

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::DeleteMemberByDispID

Deletes a member by DISPID.

HRESULT DeleteMemberByDispID(
    DISPID id
);

Returns one of the following values:

S_OK | Success.
S_FALSE | Member exists but cannot be deleted.

Parameters

id
Member identifier. Uses GetDispID or GetNextDispID to obtain the dispatch identifier.

Remarks

If the member is deleted, the DISPID needs to remain valid for GetNextDispID.

If a member with a given name is deleted and later a member with the same name is recreated, the DISPID should be the same. (Whether member names that differ only by case are the "same" is object-dependent.)

Example

BSTR bstrName;
DISPID dispid;
IDispatch *pdex;

// Assign to pdex and bstrName
pdex->GetDispID(bstrName, fdexNameCaseSensitive, &dispid);
pdex->DeleteMemberByDispID(dispid);

See Also

IDispatchEx Interface | IDispatchEx::GetDispID | IDispatchEx::GetNextDispID

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::DeleteMemberByName

Deletes a member by name.

HRESULT DeleteMemberByName(
   BSTR bstrName,
   DWORD grfdex
);

Returns one of the following values:

S_OK | Success.
S_FALSE | Member exists but cannot be deleted.

Parameters

bstrName
Name of member to be deleted.
grfdex
Determines if the member name is case sensitive. This can be one of the following values:
Value | Meaning
fdexNameCaseSensitive | Requests that the name lookup be done in a case-sensitive manner. Can be ignored by object that does not support case-sensitive lookup.
fdexNameCaseInsensitive | Requests that the name lookup be done in a case-insensitive manner. Can be ignored by object that does not support case-insensitive lookup.

Remarks

If the member is deleted, the DISPID needs to remain valid for GetNextDispID.

If a member with a given name is deleted and later a member with the same name is recreated, the DISPID should be the same. (Whether members that differ only by case are the "same" is object-dependent.)

Example

BSTR bstrName;
IDispatch *pdex;

// Assign to pdex and bstrName
pdex->DeleteMemberByName(bstrName, fdexNameCaseSensitive);

See Also

IDispatchEx Interface

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::GetDispID

Maps a single member name to its corresponding DISPID, which can then be used on subsequent calls to IDispatchEx::InvokeEx.

 HRESULT GetDispID(
   BSTR bstrName,
   DWORD grfdex,
   DISPID *pid
);

Returns one of the following values:

S_OK | Success.
E_OUTOFMEMORY | Out of Memory.
DISP_E_UNKNOWNNAME | The name was not known.

Parameters

bstrName
Passed in name to be mapped.
grfdex
Determines the options for obtaining the member identifier. This can be a combination of the following values:
Value | Meaning
fdexNameCaseSensitive | Requests that the name lookup be done in a case-sensitive manner. May be ignored by object that does not support case-sensitive lookup.
fdexNameEnsure | Requests that the member be created if it does not already exist. The new member should be created with the value VT_EMPTY.
fdexNameImplicit | Indicates that the caller is searching object(s) for a member of a particular name when the base object is not explicitly specified.
fdexNameCaseInsensitive | Requests that the name lookup be done in a case-insensitive manner. May be ignored by object that does not support case-insensitive lookup.
pid
Pointer to caller-allocated location to receive DISPID result. If an error occurs, pid contains DISPID_UNKNOWN.

Remarks

GetDispID can be used instead of GetIDsOfNames to obtain the DISPID for a given member.

Because IDispatchEx allows the addition and deletion of members, the set of DISPIDs does not remain constant for the lifetime of an object.

The unused riid parameter in IDispatch::GetIDsOfNames has been removed.

Example

BSTR bstrName;
   DISPID dispid;
   IDispatch *pdex;

   // Assign to pdex and bstrName
   pdex->GetDispID(bstrName, fdexNameCaseSensitive, &dispid);
   // Use dispid

See Also

IDispatchEx Interface

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::GetMemberName

Retrieves the name of a member.

HRESULT GetMemberName(
   DISPID id,
   BSTR *pbstrName
);

Returns one of the following values:

S_OK | Success.
DISP_E_UNKNOWNNAME | The name was not known.

Parameters

id
Identifies the member. Uses GetDispID or GetNextDispID to obtain the dispatch identifier.
pbstrName
Address of a BSTR that receives the name of the member. The calling application is responsible for freeing this value.

Example

HRESULT hr;
   BSTR bstrName;
   DISPID dispid;
   IDispatch *pdex;

   // Assign to pdex
   hr = pdex->GetNextDispID(fdexEnumAll, DISPID_STARTENUM, &dispid);
   while (hr != S_FALSE)
   {
   pdex->GetMemberName(dispid, &bstrName);
   if (!wcscmp(bstrName, OLESTR("Bar")))
      return TRUE;
   SysFreeString(bstrName);
   hr = pdexObj->GetNextDispID(fdexEnumAll, dispid, &dispid);
}

See Also

IDispatchEx Interface | IDispatchEx::GetDispID | IDispatchEx::GetNextDispID

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::GetMemberProperties

Retrieves a member's properties.

HRESULT GetMemberProperties(
   DISPID id,
   DWORD grfdexFetch,
   DWORD *pgrfdex
);

Returns one of the following values:

S_OK | Success.
DISP_E_UNKNOWNNAME | The name was not known.

Parameters

id
Identifies the member. Uses GetDispID or GetNextDispID to obtain the dispatch identifier.
grfdexFetch
Determines which properties to retrieve. This can be a combination of the values listed under pgrfdex and/or a combination of the following values:
Value | Meaning
grfdexPropCanAll | Combines fdexPropCanGet, fdexPropCanPut, fdexPropCanPutRef, fdexPropCanCall, fdexPropCanConstruct and fdexPropCanSourceEvents.
grfdexPropCannotAll | Combines fdexPropCannotGet, fdexPropCannotPut, fdexPropCannotPutRef, fdexPropCannotCall, fdexPropCannotConstruct and fdexPropCannotSourceEvents.
grfdexPropExtraAll | Combines fdexPropNoSideEffects and fdexPropDynamicType.
grfdexPropAll | Combines grfdexPropCanAll, grfdexPropCannotAll and grfdexPropExtraAll.
pgrfdex
Address of a DWORD that receives the requested properties. This can be a combination of the following values:
Value | Meaning
fdexPropCanGet | The member can be obtained using DISPATCH_PROPERTYGET.
fdexPropCannotGet | The member cannot be obtained using DISPATCH_PROPERTYGET.
fdexPropCanPut | The member can be set using DISPATCH_PROPERTYPUT.
fdexPropCannotPut | The member cannot be set using DISPATCH_PROPERTYPUT.
fdexPropCanPutRef | The member can be set using DISPATCH_PROPERTYPUTREF.
fdexPropCannotPutRef | The member cannot be set using DISPATCH_PROPERTYPUTREF.
fdexPropNoSideEffects | The member does not have any side effects. For example, a debugger could safely get/set/call this member without changing the state of the script being debugged.
fdexPropDynamicType | The member is dynamic and can change during the lifetime of the object.
fdexPropCanCall | The member can be called as a method using DISPATCH_METHOD.
fdexPropCannotCall | The member cannot be called as a method using DISPATCH_METHOD.
fdexPropCanConstruct | The member can be called as a constructor using DISPATCH_CONSTRUCT.
fdexPropCannotConstruct | The member cannot be called as a constructor using DISPATCH_CONSTRUCT.
fdexPropCanSourceEvents | The member can fire events.
fdexPropCannotSourceEvents | The member cannot fire events.

Example

BSTR bstrName;
   DISPID dispid;
   IDispatch *pdex;
   DWORD dwProps;

   // Assign to pdex and bstrName
   pdex->GetDispID(bstrName, fdexNameCaseSensitive, &dispid);
   pdex->GetMemberProperties(dispid, grfdexPropAll, &dwProps);
   if (dwProps & fdexPropCanPut)
      // Assign to member

See Also

IDispatchEx Interface | IDispatchEx::GetDispID | IDispatchEx::GetNextDispID

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::GetNameSpaceParent

Retrieves the interface for the namespace parent of an object.

HRESULT GetNameSpaceParent(
   IUnknown **ppunk
);

Returns S_OK if successful or an OLE-defined error code otherwise.

Parameters

ppunk
Address of an IUnknown interface pointer that receives the namespace parent's interface.

See Also

IDispatchEx Interface

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::GetNextDispID

Enumerates the members of the object.

HRESULT GetNextDispID(
   DWORD grfdex,
   DISPID id,
   DISPID *pid
);

Returns one of the following values:

S_OK | Success.
S_FALSE | Enumeration is done.

Parameters

grfdex
Determines which set of items will be enumerated. This can be a combination of the following values:
Value | Meaning
fdexEnumDefault | Requests that the object enumerates the default elements. The object is allowed to enumerate any set of elements.
fdexEnumAll | Requests that the object enumerates all of the elements. The object is allowed to enumerate any set of elements.
id
Identifies the current member. GetNextDispID will retrieve the item in the enumeration after this one. Uses GetDispID or a previous call to GetNextDispID to obtain this identifier. Uses the DISPID_STARTENUM value to obtain the first identifier of the first item.
pid
Address of a DISPID variable that receives the identifier of the next item in the enumeration.

If a member is deleted by DeleteMemberByName or DeleteMemberByDispID, the DISPID needs to remain valid for GetNextDispID.

Example

HRESULT hr;
   BSTR bstrName;
   DISPID dispid;
   IDispatch *pdex;

   // Assign to pdex
   hr = pdex->GetNextDispID(fdexEnumAll, DISPID_STARTENUM, &dispid);
   while (hr != S_FALSE)
   {
      pdex->GetMemberName(dispid, &bstrName);
      if (!wcscmp(bstrName, OLESTR("Bar")))
      return TRUE;
      SysFreeString(bstrName);

      hr = pdexObj->GetNextDispID(fdexEnumAll, dispid, &dispid);
   }

See Also

IDispatchEx Interface | IDispatchEx::GetDispID | IDispatchEx::GetNextDispID | IDispatchEx::DeleteMemberByName | IDispatchEx::DeleteMemberByDispID

© 2001 Microsoft Corporation. All rights reserved.


IDispatchEx::InvokeEx

Provides access to properties and methods exposed by an IDispatchEx object.

HRESULT InvokeEx(
   DISPID id,
   LCID lcid,
   WORD wFlags,
   DISPARAMS *pdp,
   VARIANT *pVarRes,
   EXCEPINFO *pei,
   IServiceProvider *pspCaller
);

Returns one of the following values:

S_OK | Success.
DISP_E_BADPARAMCOUNT | The number of elements provided to DISPPARAMS is different from the number of arguments accepted by the method or property.
DISP_E_BADVARTYPE | One of the arguments in rgvarg is not a valid variant type.
DISP_E_EXCEPTION | The application needs to raise an exception. In this case, the structure passed in pei should be filled in.
DISP_E_MEMBERNOTFOUND | The requested member does not exist, or the call to InvokeEx tried to set the value of a read-only property.
DISP_E_NONAMEDARGS | This implementation of IDispatch does not support named arguments.
DISP_E_OVERFLOW | One of the arguments in rgvarg could not be coerced to the specified type.
DISP_E_PARAMNOTFOUND | One of the parameter DISPIDs does not correspond to a parameter on the method.
DISP_E_TYPEMISMATCH | One or more of the arguments could not be coerced.
DISP_E_UNKNOWNLCID | The member being invoked interprets string arguments according to the LCID, and the LCID is not recognized. If the LCID is not needed to interpret arguments, this error should not be returned.
DISP_E_PARAMNOTOPTIONAL | A required parameter was omitted.

Parameters

id
Identifies the member. Uses GetDispID or GetNextDispID to obtain the dispatch identifier.
lcid
The locale context in which to interpret arguments. The lcid is passed to InvokeEx to allow the object to interpret its arguments specific to a locale.
wFlags
Flags describing the context of the InvokeEx call:
Value | Meaning
DISPATCH_METHOD | The member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set (defined by IDispatch).
DISPATCH_PROPERTYGET | The member is retrieved as a property or data member (defined by IDispatch).
DISPATCH_PROPERTYPUT | The member is changed as a property or data member (defined by IDispatch).
DISPATCH_PROPERTYPUTREF | The member is changed by a reference assignment rather than a value assignment. This flag is valid only when the property accepts a reference to an object (defined by IDispatch).
DISPATCH_CONSTRUCT The member is being used as a constructor. (This is a new value defined by IDispatchEx). The legal values for wFlags are:
DISPATCH_PROPERTYGET
DISPATCH_METHOD
DISPATCH_PROPERTYGET
DISPATCH_METHOD
DISPATCH_PROPERTYPUT
DISPATCH_PROPERTYPUTREF
DISPATCH_PROPERTYPUT
DISPATCH_PROPERTYPUTREF
DISPATCH_CONSTRUCT
pdp
Pointer to a structure containing an array of arguments, an array of argument DISPIDs for named arguments, and counts for the number of elements in the arrays. See the IDispatch documentation for a full description of the DISPPARAMS structure.
pVarRes
Pointer to the location where the result is to be stored or Null if the caller expects no result. This argument is ignored if DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF is specified.
pei
Pointer to a structure that contains exception information. This structure should be filled in if DISP_E_EXCEPTION is returned. Can be Null. See the IDispatch documentation for a full description of the EXCEPINFO structure.
pspCaller
Pointer to a service provider object supplied by the caller, which allows the object to obtain services from the caller. Can be Null.

IDispatchEx::InvokeEx provides all of the same features as IDispatch::Invoke and adds a few extensions:

DISPATCH_CONSTRUCT | Indicates that the item is being used as a constructor.
pspCaller | The pspCaller allows the object access to services provided by the caller. Specific services may be handled by the caller itself or delegated to callers further up the call chain. For example, if a script engine inside a browser makes an InvokeEx call to an external object, the object can follow the pspCaller chain to obtain services from the script engine or browser. (Note that the call chain is not the same as the creation chain — also known as container chain or site chain. The creation chain may be available through some other mechanism such as IObjectWithSite.)
"this" pointer | When DISPATCH_METHOD is set in wFlags, there may be a "named parameter" for the "this" value. The DISPID will be DISPID_THIS and it must be the first named parameter. The unused riid parameter in IDispatch::Invoke has been removed. The puArgArr parameter in IDispatch::Invoke has been removed.

See the IDispatch::Invoke documentation for the following examples:

"Calling a method with no arguments"

"Getting and setting properties"

"Passing parameters"

"Indexed Properties"

"Raising exceptions during Invoke"

"Returning errors"

Example

VARIANT var;
   BSTR bstrName;
   DISPID dispid;
   IDispatch *pdex;
   DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};

   // Assign to pdex and bstrName
   pdex->GetDispID(bstrName, fdexNameCaseSensitive, &dispid);
   pdex->InvokeEx(dispid, LOCALE_USER_DEFAULT,
   DISPATCH_PROPERTYGET, &dispparamsNoArgs,
   &var, NULL, NULL);

See Also

IDispatchEx Interface | IDispatchEx::GetDispID | IDispatchEx::GetNextDispID

© 2001 Microsoft Corporation. All rights reserved.


getFileVersion-Methode

Gibt die Versionsnummer einer angegebenen Datei zurück.

Objekt.GetFileVersion(Pfadangabe)

Argumente

Objekt
Erforderlich. Stets der Name eines FileSystemObject-Objekts.
Pfadangabe
Erforderlich. Der Pfad (absolut oder relativ) zu einer bestimmten Datei.

Hinweise

Die GetFileVersion-Methode gibt eine Nulllängenzeichenfolge ("") zurück, wenn Pfadangabe nicht mit einer benannten Datei endet oder wenn die Datei keine Versionsinformationen enthält.

Anmerkung Die GetFileVersion-Methode analysiert nur die als Argument übergebene Pfadzeichenfolge. Sie versucht weder, den Pfad aufzulösen, noch prüft sie das Vorhandensein des angegebenen Pfades.

Das folgende Beispiel veranschaulicht die Verwendung der GetFileVersion-Methode.

function ZeigeGetFileVersion(pfadAngabe)
{
  var fso, s = "";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  s += fso.GetFileVersion(pfadAngabe);
  if (s == "")
    s = "Keine Versionsinformationen verfügbar.";
  return(s);
}

Anforderungen

Version 1


SerialNumber-Eigenschaft (JScript)

JScript

SerialNumber-Eigenschaft

Gibt die dezimale Seriennummer zurück, mit der ein Datenträger eindeutig gekennzeichnet wird.

Objekt.SerialNumber

Das Argument Objekt ist stets ein Drive-Objekt.

Hinweise

Mithilfe der SerialNumber-Eigenschaft können Sie sicherzustellen, dass das richtige Datenträger in ein Laufwerk mit austauschbaren Datenträgern eingelegt ist.

Der folgende Code veranschaulicht die Verwendung der SerialNumber-Eigenschaft:

function ShowDriveInfo(drvpath){
  var fso, d, s, t;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
  switch (d.DriveType)
  {
    case 0: t = "Unbekannt"; break;
    case 1: t = "Austauschbar"; break;
    case 2: t = "Fest"; break;
    case 3: t = "Netzwerk"; break;
    case 4: t = "CD-ROM"; break;
    case 5: t = "RAM-Laufwerk"; break;
  }
  s = "Laufwerk " + d.DriveLetter + ": - " + t;
  s += "<br>" + "SN: " + d.SerialNumber;
  return(s);
}

Anforderungen

Version 1


Thema nicht gefunden

Über den Link, auf den Sie geklickt haben, konnte keine Verbindung zur Zielseite hergestellt werden. Nachfolgend sind einige mögliche Ursachen und Problemlösungen aufgeführt:

Ursache | Problemlösung
Der URL des Zielthemas ist falsch oder hat sich geändert. | Verwenden Sie stattdessen den Index oder die Suchfunktion.
Probleme bei der Installation der Hilfe. | Deinstallieren Sie die Hilfe, und führen Sie Setup erneut aus.


Verwenden von Meldungsfeldern

Verwenden von Alert-, Confirm- und Prompt-Meldungsfeldern

Verwenden Sie Alert-, Confirm- und Prompt-Meldungsfelder, um von dem Benutzer eine Eingabe zu erhalten. Diese Felder sind Methoden des Benutzeroberflächenobjekts window. Da sich das window-Objekt auf der obersten Ebene der Objekthierarchie befindet, müssen Sie eigentlich nicht den vollständigen Namen (z. B. "window.alert()") dieser Meldungsfelder verwenden. Dies ist dennoch sinnvoll, da Sie so daran erinnert werden, zu welchem Objekt diese gehören.

Alert-Meldungsfeld

Die alert-Methode hat ein Argument, nämlich die Textzeichenfolge, die Sie dem Benutzer anzeigen möchten. Die Zeichenfolge entspricht nicht den HTML-Konventionen. Das Meldungsfeld enthält die Schaltfläche OK, damit der Benutzer es schließen kann. Es ist gebunden, d. h., der Benutzer muss das Meldungsfeld vor dem Fortfahren schließen.

window.alert("Willkommen! Klicken Sie auf OK, um fortzufahren.");

Confirm-Meldungsfeld

Mithilfe des Confirm-Meldungsfeldes können Sie dem Benutzer eine Frage stellen, die mit Ja oder Nein beantwortet werden muss. Es gibt dem Benutzer außerdem die Möglichkeit, auf OK oder auf Abbrechen zu klicken. Die confirm-Methode gibt true oder false zurück. Auch dieses Meldungsfeld ist gebunden: Der Benutzer muss entsprechend reagieren (auf eine Schaltfläche klicken) und damit das Feld schließen, bevor er fortfahren kann.

var wahrheitGesagt = window.confirm("Klicken Sie auf OK, um fortzufahren. Klicken Sie auf Abbrechen, um abzubrechen.");
if (wahrheitGesagt) {
window.alert("Willkommen auf unserer Webseite!");
}  else  window.alert("Auf Wiedersehen!");

Prompt-Meldungsfeld

Das Prompt-Meldungsfeld enthält ein Textfeld, in das der Benutzer eine Antwort auf Ihre Eingabeaufforderung eingeben kann. Dieses Feld verfügt über die Schaltflächen OK und Abbrechen. Wenn Sie ein zweites Zeichenfolgenargument angeben, zeigt das Prompt-Meldungsfeld diese zweite Zeichenfolge in einem Textfeld als Standardantwort. Andernfalls ist der Standardtext "<undefined>".

Wie die Methoden alert( ) und confirm( ) zeigt auch prompt ein gebundenes Meldungsfeld an, das der Benutzer vor dem Fortfahren schließen muss.

var dieAntwort = window.prompt("Willkommen","Geben Sie hier Ihren Namen ein.");


Anzeigen von Informationen im Browser

Microsoft JScript bietet zwei Möglichkeiten, um Daten direkt in Ihrem Browser anzuzeigen. Sie können die write( )- und writeln( )-Methoden verwenden, die Methoden des document-Objekts sind. Sie können Informationen auch in Formularen innerhalb des Browsers und in Alert-, Prompt- und Confirm-Meldungsfeldern anzeigen.

Verwenden von document.write( ) und document.writeln( )

Die gängige Technik zum Anzeigen von Informationen ist die write( )-Methode des document-Objekts. Sie übernimmt als Argument eine Zeichenfolge, die sie im Browser anzeigt. Die Zeichenfolge kann reiner Text oder HTML sein.

Zeichenfolgen können in einfache oder doppelte Anführungszeichen eingeschlossen sein. So können Sie etwas in Anführungszeichen setzen, das selbst Anführungszeichen oder Apostrophe enthält.

document.write("Pi ist ca. " + Math.PI);
document.write( );
Anmerkung Die folgende einfache Funktion erspart es Ihnen, jedes Mal "document.write" schreiben zu müssen, wenn Sie etwas im Browserfenster anzeigen möchten. Diese Funktion informiert Sie nicht darüber, ob die anzuzeigende Zeichenfolge nicht definiert ist, ermöglicht jedoch die Ausgabe des Befehls "w()", der eine Leerzeile anzeigt.
function w(m) { // Anzeigefunktion.
m = "" + m + ""; // Sicherstellen, dass die Variable m eine Zeichenfolge ist.
if ("undefined" != m) { // Auf leere Zeichenfolge oder anderes nicht definiertes Element prüfen.
   document.write(m);
   }
document.write("<br>");
}

w('<IMG SRC="pferd.gif">');
w();
w("Dies ist das Relief eines Pferdes.");
w();

Die writeln( )-Methode ist mit der write( )-Methode nahezu identisch, fügt jedoch jeder übergebenen Zeichenfolge ein Zeilenumbruchzeichen hinzu. In HTML führt dies normalerweise nur zu einem Leerzeichen hinter Ihrem Element. Wenn Sie jedoch die <PRE>- und <XMP>-Tags verwenden, wird das Zeilenumbruchzeichen wörtlich interpretiert und vom Browser angezeigt.

Wenn Sie die write( )-Methode aufrufen, öffnet und leert sie das Dokument, falls dieses beim Aufrufen der write( )-Methode nicht gerade geöffnet und analysiert wird. Diese Methode kann daher gefährlich sein. Das Beispiel zeigt ein Skript, das jede Minute die Uhrzeit anzeigen soll. Nach dem ersten Mal misslingt das jedoch, weil es sich dabei selbst löscht.

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JScript">
function auszeit()  {
var derMoment = new Date();
var dieStunde = derMoment.getHours();
var dieMinute = derMoment.getMinutes();
var derVersatz = (derMoment.getTimezoneOffset() / 60);
dieStunde -= derVersatz;
if (dieStunde > 23)  {
dieStunde -= 24
}
document.write(dieStunde + " Stunden, " + dieMinute + " Minuten, Coordinated Universal Time.");
window.setTimeout("auszeit();", 60000);
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
auszeit();
</SCRIPT>
</BODY>
</HTML>

Wenn Sie die alert( )-Methode des window-Objekts anstelle von document.write( ) verwenden, funktioniert das Skript.

window.alert(dieStunde + " Stunden, " + dieMinute + " Minuten, Coordinated Universal Time.");
window.setTimeout("auszeit();", 60000);
}

Leeren des aktuellen Dokuments

Die clear( )-Methode des document-Objekts leert das aktuelle Dokument. Diese Methode löscht auch Ihr Skript (zusammen mit dem Rest des Dokuments). Planen Sie daher ihre Verwendung gut.

document.clear();


Copyright

Microsoft® JScript®

Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URL und anderer Internet-Websiteverweise, können ohne vorherige Ankündigung geändert werden. Die hierin genannten Namen von Firmen, Organisationen, Produkten, Personen, Charakteren und/oder Daten sind fiktiv und sollen in keiner Weise reale Individuen, Firmen, Produkte oder Ereignisse darstellen, falls dies nicht ausdrücklich angemerkt ist. Die Benutzerinnen und Benutzer sind verpflichtet, sich an alle anwendbaren Urheberrechtsgesetze zu halten. Ohne ausdrückliche schriftliche Erlaubnis von Microsoft Corporation darf kein Teil dieser Unterlagen für irgendwelche Zwecke vervielfältigt oder übertragen werden, unabhängig davon, auf welche Weise oder mit welchen Mitteln, elektronisch oder mechanisch, dies geschieht.

Microsoft kann Besitzer von Patenten, Patentanträgen, Marken, Urheberrechten oder anderen Rechten über geistiges Eigentum sein, die den Inhalt dieser Unterlagen betreffen. Durch die Bereitstellung dieser Unterlagen erhalten Sie keinerlei Lizenzrechte an diesen Patenten, Marken, Urheberrechten oder anderen Rechten geistigen Eigentums, es sei denn, dies wurde explizit durch einen schriftlichen Lizenzvertrag mit Microsoft vereinbart.

© 1991-2000 Microsoft Corporation. Alle Rechte vorbehalten.

Build: Thema-Version 5.6.9309.1546

Microsoft, MS, MS-DOS, ActiveX, JScript, Microsoft Press, MSDN, Visual Basic, Windows, Windows NT, Win32 und Win32s sind Marken oder eingetragene Marken der Microsoft Corporation in den Vereinigten Staaten und/oder anderen Ländern.

Weitere in diesem Dokument aufgeführte Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.


Der Arraylänge muss eine finite positive Zahl zugewiesen sein

Beim Festlegen der length-Eigenschaft eines vorhandenen Array-Objekts wurde eine Arraylänge angegeben, die keine positive Zahl oder Null ist. Dieser Fehler tritt auf, wenn Sie der length-Eigenschaft eines Array-Objekts einen Wert zuweisen, der negativ oder keine Zahl (NaN, Not a Number) ist. Beachten Sie, dass JScript Bruchzahlen automatisch in Ganzzahlen konvertiert.

So korrigieren Sie diesen Fehler

  • Weisen Sie der length-Eigenschaft eine ganze Zahl zu. Die Größe eines Arrays wird nach oben nur durch den Maximalwert für Ganzzahlen (ca. 4 Milliarden) begrenzt. Das folgende Beispiel veranschaulicht, wie die length-Eigenschaft eines Array-Objekts auf korrekte Weise festgelegt wird.
    var mein_Array = new Array();
mein_Array.length = 99;

Verwenden von Arrays


Die Arraylänge muss eine finite positive Ganzzahl sein

Der Array-Konstruktor wurde mit einem Argument aufgerufen, das keine ganze Zahl ist (die Menge der ganzen Zahlen besteht aus der Null und der Menge der positiven Ganzzahlen).

So korrigieren Sie diesen Fehler

  • Verwenden Sie beim Erstellen eines neuen Array-Objekts nur positive Ganzzahlen. Wenn Sie ein Array mit einem Element erstellen möchten, das keine Ganzzahl ist, führen Sie dies in zwei Schritten durch. Erstellen Sie zuerst ein Array mit einem Element, und speichern Sie anschließend den Wert im ersten Element (array[0]). Das folgende Beispiel erzeugt diesen Fehler.
    var piArray = new Array(3,14159);

    Das folgende Beispiel veranschaulicht, wie ein Array mit einem numerischen Element auf korrekte Weise angegeben wird.

    var piArray = new Array(1);
piArray [0] = 3,14159;

    Die Größe eines Arrays wird nach oben nur durch den Maximalwert für Ganzzahlen (ca. 4 Milliarden) begrenzt.

Verwenden von Arrays


Array- oder Arguments-Objekt erwartet

Es wurde kein Array als Argument angegeben. Dieser Fehler betrifft nur die Function.prototype.apply()-Funktion. Das zweite Argument dieser Funktion muss, wenn es angegeben wird, entweder ein Array-Objekt oder ein Arguments-Objekt sein.

So korrigieren Sie diesen Fehler

  • Geben Sie als zweites Argument entweder ein Array- oder ein Arguments-Objekt an.

Verwenden von Arrays | apply-Methode | JScript-Funktionen


Boolean erwartet

Es wurde versucht, die Methoden Boolean.prototype.toString oder Boolean.prototype.valueof für ein Objekt aufzurufen, das nicht vom Typ Boolean ist. Das Objekt dieser Art des Aufrufs muss vom Typ Boolean sein. Beispiel:

var o = new Object;
o.f = Boolean.prototype.toString;
o.f();

So korrigieren Sie diesen Fehler

  • Rufen Sie die Methoden Boolean.prototype.toString und Boolean.prototype.valueof nur für Objekte vom Typ Boolean auf.

Siehe auch

Boolean-Objekt | JScript-Datentypen | Steuern des Programmablaufs | Kopieren, Übergeben und Vergleichen von Daten


Kann dem Ergebnis einer Funktion nicht zugewiesen werden

Es wurde versucht, dem Ergebnis einer Funktion einen Wert zuzuweisen. Das Ergebnis einer Funktion kann einer Variablen zugewiesen werden, aber es kann nicht als Variable verwendet werden. Wenn Sie der Funktion selbst einen neuen Wert zuweisen möchten, lassen Sie die Klammern (den Funktionsaufrufsoperator) weg. Das folgende Beispiel zeigt eine Situation, in der dieser Fehler erzeugt wird.

meineFunktion() = 42;  // Versuch, dem Ergebnis des Funktionsaufrufs den Wert 42 zuzuweisen.

So korrigieren Sie diesen Fehler

  • Verwenden Sie den Wert des Ergebnisses eines Funktionsaufrufs nicht als Element, das Sie zuweisen können. Sie können jedoch das Ergebnis des Funktionsaufrufs einer Variablen zuweisen.
    meineVar = meineFunktion(42);
  • Alternativ können Sie die Funktion selbst (und nicht ihren Rückgabewert) einer Variablen zuweisen.
    meineFunktion = new Function("return 42;");

Siehe auch

Function-Objekt | Schreiben von JScript-Code | JScript-Funktionen


Zuweisung an 'this' nicht möglich

Es wurde versucht, this einen Wert zuzuweisen. this ist ein JScript-Schlüsselwort, das auf eines der folgenden Elemente verweist:

  • Das Objekt, das derzeit eine Methode ausführt.
  • Das Global-Objekt, falls keine aktuelle Methode vorhanden ist (oder die Methode zu keinem anderen Objekt gehört).

Eine Methode ist eine JScript-Funktion, die über ein Objekt aufgerufen wird. Innerhalb einer Methode stellt das this-Schlüsselwort einen Verweis auf das Objekt dar, über das die Methode aufgerufen wurde (dieses entspricht dem Objekt, das durch Aufrufen des Klassenkonstruktors mit dem new-Operator erstellt wurde).

Innerhalb einer Methode können Sie this verwenden, um auf das aktuelle Objekt zu verweisen. Sie können this jedoch keinen neuen Wert zuweisen.

So korrigieren Sie diesen Fehler

Nehmen Sie keine Zuweisung an this vor. Verwenden Sie den Punktoperator (z. B. circle.radius), um auf eine Eigenschaft oder Methode eines instanziierten Objekts zuzugreifen.

Anmerkung Sie können einer vom Benutzer erstellten Variable nicht den Namen this geben; dies ist ein für JScript reserviertes Wort.

This | Beseitigen von Fehlern aus Skripten


'break' außerhalb einer Schleife nicht möglich

Es wurde versucht, die break-Anweisung außerhalb einer Schleife zu verwenden. Die break-Anweisung dient dazu, eine Schleife oder switch-Anweisung abzubrechen. Sie muss in den Hauptteil einer Schleife oder switch-Anweisung eingebettet sein.

Ausnahme

Hinter der break-Markierung kann eine Marke stehen.

break Markenname;

Die Form der break-Anweisung mit Marke wird nur benötigt, wenn Sie geschachtelte Schleifen oder switch-Anweisungen verwenden und eine Schleife verlassen möchten, die nicht die innerste Ebene bildet.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die break-Anweisung innerhalb einer einschließenden Schleife oder switch-Anweisung enthalten ist.

Siehe auch

Break | Steuern des Programmablaufs | Beseitigen von Fehlern aus Skripten


'continue' außerhalb einer Schleife nicht möglich

Es wurde versucht, die continue-Anweisung außerhalb einer Schleife zu verwenden. Die continue-Anweisung darf nur innerhalb des Hauptteiles eines der folgenden Elemente verwendet werden:

  • do-while-Schleife,
  • while-Schleife,
  • for-Schleife,
  • for/in-Schleife.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die continue-Anweisung innerhalb des Hauptteils eines der folgenden Elemente enthalten ist:

  • do-while-Schleife,
  • while-Schleife,
  • for-Schleife,
  • for/in-Schleife.

Siehe auch

Continue | Steuern des Programmablaufs | Beseitigen von Fehlern aus Skripten


Bedingte Kompilierung ist ausgeschaltet

Es wurde versucht, eine Variable für die bedingte Kompilierung zu verwenden, bevor die bedingte Kompilierung eingeschaltet war. Durch das Einschalten der bedingten Kompilierung wird der JScript-Compiler angewiesen, Bezeichner, die mit @ beginnen, als Variablen für die bedingte Kompilierung zu interpretieren. Sie können die bedingte Kompilierung einschalten, indem Sie den bedingten Code mit folgender Anweisung beginnen:

/*@cc_on @*/

So korrigieren Sie diesen Fehler

Fügen Sie zu Beginn des bedingten Codes die folgende Anweisung hinzu:

/*@cc_on @*/

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung | @cc_on | @if-Anweisung | @set-Anweisung


Datumsobjekt erwartet

Es wurde versucht, die Methoden Date.prototype.toString oder Date.prototype.valueof für ein Objekt aufzurufen, das nicht vom Typ Date ist. Das Objekt dieser Art des Aufrufs muss vom Typ Date sein. Beispiel:

var o = new Object;
o.f = Date.prototype.toString;
o.f();

So korrigieren Sie diesen Fehler

Rufen Sie die Methoden Date.prototype.toString und Date.prototype.valueof nur für Objekte vom Typ Date auf.

Date-Objekt | getDate-Methode | Intrinsische Objekte


'default' kann nur einmal in einer 'switch'-Anweisung auftreten

Es wurde versucht, die default-Anweisung mehr als einmal innerhalb einer switch-Anweisung zu verwenden. Der default-Fall ist immer die letzte Fallanweisung in einer switch-Anweisung (der Fall, der bei Nichtzutreffen aller anderen Fälle eintritt).

So korrigieren Sie diesen Fehler

Entfernen Sie alle zusätzlichen default-Fallanweisungen aus der switch-Anweisung.

Siehe auch

Switch | Steuern des Programmablaufs | Reservierte JScript-Schlüsselwörter


Aufzählungsobjekt erwartet

Es wurde versucht, die Methoden Enumerator.prototype.atEnd, Enumerator.prototype.item, Enumerator.prototype.moveFirst oder Enumerator.prototype.moveNext für ein Objekt aufzurufen, das nicht vom Typ Enumerator ist. Das Objekt dieser Art des Aufrufs muss vom Typ Enumerator sein. Das folgende Beispiel zeigt Code, der gegen diese Regel verstößt:

var o = new Object;
o.f = Enumerator.prototype.atEnd;
o.f();

So korrigieren Sie diesen Fehler

Rufen Sie die Methoden Enumerator.prototype.atEnd, Enumerator.prototype.item, Enumerator.prototype.moveFirst und Enumerator.prototype.moveNext nur für Objekte vom Typ Enumerator auf. Um festzustellen, ob ein Objekt ein Enumerator-Objekt ist, verwenden Sie die folgende Anweisung:

if(x instanceof Enumerator)

Enumerator-Objekt


Ausnahme ausgelöst und nicht aufgefangen

Der Code enthält eine throw-Anweisung, aber diese war nicht in einem try-Block eingeschlossen, oder es war kein zugehöriger catch-Block zum Auffangen des Fehlers vorhanden. Ausnahmen werden innerhalb des try-Blocks mithilfe einer throw-Anweisung ausgelöst und außerhalb des try-Blocks mit einer catch-Anweisung aufgefangen.

So korrigieren Sie diesen Fehler

  • Schließen Sie Code, der eine Ausnahme auslösen kann, in einen try-Block ein, und stellen Sie sicher, dass ein entsprechender catch-Block vorhanden ist.
  • Stellen Sie sicher, dass die catch-Anweisung die richtige Art von Ausnahme erwartet.
  • Stellen Sie sicher, dass eine weitere zugehörige catch-Anweisung existiert, wenn die Ausnahme erneut ausgelöst wird.

Error-Objekt | throw-Anweisung | try...catch-Anweisung


(' erwartet (JScript)

JScript

'(' erwartet

Es wurde versucht, einen Ausdruck in ein Klammernpaar einzuschließen, aber die öffnende Klammer fehlt. Einige Ausdrücke müssen in ein Paar aus einer öffnenden und einer schließenden Klammer eingeschlossen werden. Beachten Sie die Verwendung von Klammern im folgenden Beispiel.

for (Initialisierung; Test; Inkrement) {
Anweisung;
}

So korrigieren Sie diesen Fehler

  • Fügen Sie die linke Klammer zum Auswertungsausdruck hinzu.


')' erwartet (JScript)

JScript

')' erwartet

Es wurde versucht, einen Ausdruck in ein Klammernpaar einzuschließen, aber die schließende Klammer fehlt. Einige Ausdrücke müssen in ein Paar aus einer öffnenden und einer schließenden Klammer eingeschlossen werden. Beachten Sie die Verwendung von Klammern im folgenden Beispiel.

for (Initialisierung; Test; Inkrement) {
Anweisung;
}

So korrigieren Sie diesen Fehler

  • Fügen Sie die rechte Klammer zum Auswertungsausdruck hinzu.


'/' erwartet

Es wurde versucht, ein Literal eines regulären Ausdrucks zu erstellen, aber einer der Schrägstriche (/) fehlt. Ebenso, wie Zeichenfolgenliterale als Zeichen in Anführungszeichen geschrieben werden, werden Literale eines regulären Ausdrucks als Zeichen in Schrägstrichzeichen (/) ausgedrückt.

So korrigieren Sie diesen Fehler

Fügen Sie einen beendenden Schrägstrich ein, um das Ende des regulären Ausdrucks zu markieren.

Regular Expression-Objekt | Syntax regulärer Ausdrücke


:' erwartet (JScript)

JScript

':' erwartet

Es wurde versucht, einen Ausdruck mithilfe des ternären bedingten Operators zu erstellen, aber der Doppelpunkt zwischen dem zweiten und dritten Operanden fehlt. Beim ternären bedingten Operator (drei Operanden) ist ein Doppelpunkt zwischen dem zweiten (True-) und dritten (False-) Operanden erforderlich.

So korrigieren Sie diesen Fehler

Fügen Sie einen Doppelpunkt zwischen dem zweiten und dritten Operanden ein.

Bedingter (ternärer) Operator (?:) | JScript-Operatoren


';' erwartet

Es wurde versucht, mehr als eine Anweisung in eine Zeile einzugeben, ohne diese durch Semikolons zu trennen. Semikolons werden verwendet, um Anweisungen abzuschließen. Obwohl Sie mehrere Anweisungen in eine Zeile eingeben können, muss jede Anweisung von der nächsten durch ein Semikolon getrennt sein.

So korrigieren Sie diesen Fehler

  • Markieren Sie das Ende jeder Anweisung mit einem Semikolon.
  • Stellen Sie sicher, dass bei Funktionsaufrufen Klammern ordnungsgemäß verwendet werden.
  • Stellen Sie sicher, dass Sie keine Semikolons innerhalb des Headers einer for-Schleife vergessen haben.

Schreiben von JScript-Code


'@' erwartet

Es wurde versucht, mithilfe der @set-Anweisung eine Variable für die Verwendung mit Anweisungen für die bedingte Kompilierung zu erstellen, aber vor den Variablennamen wurde kein @-Zeichen gesetzt.

So korrigieren Sie diesen Fehler

Fügen Sie unmittelbar vor dem Variablennamen ein @-Zeichen hinzu. Beispiel:

@set @meinevar = 1

Siehe auch

@set-Anweisung | Bedingte Kompilierung | Variablen für die bedingte Kompilierung


'}' erwartet

Die rechte geschweifte Klammer, die das Ende des Hauptteils der Funktion, der Schleife, des Codeblocks oder des Objektinitialisierers markiert, fehlt. Ein Beispiel für diesen Fehler wäre z. B. eine for-Schleife, bei der nur die linke geschweifte Klammer den Hauptteil der Schleife markiert.

So korrigieren Sie diesen Fehler

Fügen Sie die rechte geschweifte Klammer hinzu, die das Ende der Funktion, der Schleife, des Blocks oder des Objektinitialisierers markiert.

Function-Objekt | Steuern des Programmablaufs


=' erwartet (JScript)

JScript

'=' erwartet

Es wurde versucht, eine Variable für die Verwendung mit Anweisungen für die bedingte Kompilierung zu erstellen, aber zwischen der Variablen und dem Wert, der ihr zugewiesen werden soll, wurde kein Gleichheitszeichen gesetzt.

So korrigieren Sie diesen Fehler

Fügen Sie ein Gleichheitszeichen hinzu. Beispiel:

@set @meinevar1 = 1

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung


]' erwartet (JScript)

JScript

']' erwartet

Es wurde auf ein Arrayelement verwiesen, aber die rechte eckige Klammer fehlt. Ein Ausdruck, der auf ein Arrayelement verweist, muss sowohl öffnende als auch schließende eckige Klammern enthalten.

So korrigieren Sie diesen Fehler

Fügen Sie die rechte eckige Klammer zum Ausdruck, der auf das Array verweist, hinzu.

Verwenden von Arrays | Array-Objekt


Erwartet ']' in regulärem Ausdruck (JScript)

JScript

Erwartet ']' in regulärem Ausdruck

Es wurde versucht, eine Zeichenklasse für eine Übereinstimmung mit einem regulären Ausdruck zu erstellen, aber die rechte eckige Klammer fehlt. Einzelne Literalzeichenkombinationen können zu Zeichenklassen zusammengesetzt werden, indem sie in eckige Klammern gesetzt werden. Eine Zeichenklasse stimmt mit jedem Zeichen überein, das in ihr enthalten ist. Beispielsweise stimmt /[abc]/ mit jedem der Buchstaben "a", "b" und "c" überein.

So korrigieren Sie diesen Fehler

Fügen Sie die rechte eckige Klammer zum regulären Ausdruck hinzu.

Anmerkung Wenn Sie eine einzelne eckige Klammer suchen möchten, verwenden Sie einen umgekehrten Schrägstrich - \[ - als Escapezeichen, damit das Zeichen für die eckige Klammer von JScript nicht als Sonderzeichen interpretiert wird.

Regular Expression-Objekt | Syntax regulärer Ausdrücke


'catch' erwartet

Es wurde der try-Block zur Ausnahmebehandlung verwendet, jedoch keine zugehörige catch-Anweisung geschrieben. Für den Ausnahmebehandlungsmechanismus ist es erforderlich, dass der Code, der fehlschlagen kann, zusammen mit dem Code, der im Falle einer Ausnahme nicht ausgeführt werden soll, in einen try-Block eingeschlossen wird. Ausnahmen werden innerhalb des try-Blocks mithilfe einer throw-Anweisung ausgelöst und außerhalb des try-Blocks mit einer oder mehreren catch-Anweisungen aufgefangen.

So korrigieren Sie diesen Fehler

  • Fügen Sie den zugehörigen catch-Block hinzu.
  • Versuchen Sie, einen finally-Block statt eines catch-Blocks zu verwenden.

try...catch-Anweisung | Error-Objekt


Konstante erwartet

Es wurde versucht, eine Variable (für die nicht bedingte Kompilierung) in einer Testanweisung für die bedingte Kompilierung zu verwenden. Testanweisungen für die bedingte Kompilierung müssen bei der Auswertung eine Konstante ergeben.

So korrigieren Sie diesen Fehler

  • Ersetzen Sie die Variable durch ein Literal.
  • Ersetzen Sie die Variable durch eine Variable für die bedingte Kompilierung.

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung


'@end' erwartet

Es wurde versucht, einen bedingt kompilierten Codeblock zu erstellen, aber die @end-Anweisung am Ende fehlt. JScript-Anweisungen können bedingt kompiliert werden, indem sie in einen @if/@end-Block eingeschlossen werden.

So korrigieren Sie diesen Fehler

Fügen Sie die entsprechende @end-Anweisung hinzu.

Siehe auch

Bedingte Kompilierung | Variablen für die bedingte Kompilierung


Hexadezimalziffer erwartet

Es wurde eine falsche Unicode-Escapesequenz erstellt. Unicode-Escapesequenzen beginnen mit \u, gefolgt von genau vier Hexadezimalziffern (nicht mehr und nicht weniger). Unicode-Hexadezimalziffern dürfen nur die Zahlen 0-9, die Großbuchstaben A-F und die Kleinbuchstaben a-f enthalten. Das folgende Beispiel zeigt eine korrekt gebildete Unicode-Escapesequenz.

z = "\u1A5F";

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die Unicode-Escapesequenzen mit \u beginnen, nur die Zahlen 0-9, die Großbuchstaben A-F und die Kleinbuchstaben a-f enthalten und in Gruppen mit je vier Ziffern gruppiert sind.

Anmerkung Wenn Sie den Literaltext \u in einer Zeichenfolge verwenden möchten, verwenden Sie zwei umgekehrte Schrägstriche (\\u) - davon einen als Escapezeichen für den ersten umgekehrten Schrägstrich.

JScript-Datentypen


Bezeichner erwartet (JScript)

JScript

Bezeichner erwartet

In einem Kontext, in dem ein Bezeichner erforderlich war, wurde ein anderes Element verwendet. Ein Bezeichner kann sein:

  • der Name einer Variablen,
  • einer Eigenschaft,
  • eines Arrays
  • oder einer Funktion.

So korrigieren Sie diesen Fehler

Ändern Sie den Ausdruck so, dass auf der linken Seite des Gleichheitszeichens eine Variable angezeigt wird.

Verwenden von Arrays


Bezeichner, Zeichenfolge oder Zahl erwartet

Es wurde die falsche Literalsyntax zum Deklarieren eines Objektliterals verwendet. Die Eigenschaften eines Objektliterals müssen ein Bezeichner, eine Zeichenfolge oder eine Zahl sein. Ein Objektliteral (auch "Objektinitialisierer" genannt) besteht aus einer durch Kommas getrennten Liste von Eigenschaft/Wert-Paaren, die alle in geschweifte Klammern eingeschlossen sind. Beispiel:

var Punkt = {x:1,2, y:-3,4};

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass Sie die korrekte Literalsyntax verwenden.

Siehe auch

Kommaoperator (,)


Erwartet ')' in regulärem Ausdruck (JScript)

JScript

Erwartet ')' in regulärem Ausdruck

Es wurde versucht, eine Aufzeichnung, Aussage oder Gruppe eines regulären Ausdrucks zu erstellen, aber die schließende Klammer fehlt. Klammern dienen in regulären Ausdrücken mehreren Zwecken. Sie dienen in erster Linie dazu, Teilausdrücke zu erfassen, Aussagen anzugeben oder Muster in Gruppen zusammenzufassen, damit die Elemente von *, +, ? usw. als einheitliches Ganzes behandelt werden können.

So korrigieren Sie diesen Fehler

Fügen Sie die schließende Klammer ganz rechts hinzu.

Anmerkung Wenn Sie eine einzelne Klammer suchen möchten, verwenden Sie einen umgekehrten Schrägstrich - \( - als Escapezeichen, damit das Klammerzeichen von JScript nicht als Sonderzeichen interpretiert wird.

Regular Expression-Objekt | Syntax regulärer Ausdrücke


'While' erwartet

Die while-Bedingung in einer do … while-Schleife fehlt. Eine do-Anweisung muss einen entsprechenden while-Test am Ende des Codeblocks aufweisen.

So korrigieren Sie diesen Fehler

Fügen Sie die while-Testanweisung hinter der schließenden geschweiften Klammer ein.

while-Anweisung | Steuern des Programmablaufs


'{' erwartet

Die linke geschweifte Klammer, die den Beginn des Hauptteils der Funktion markiert, fehlt. Der Code für den Hauptteil einer Funktion muss, auch wenn es sich nur um eine einzelne Zeile handelt, in linken und rechten geschweiften Klammern enthalten sein. Beachten Sie, dass die Verwendung von geschweiften Klammern in Hauptteilen von Funktionen strenger geregelt ist als in Schleifen.

So korrigieren Sie diesen Fehler

Fügen Sie die linke geschweifte Klammer hinzu, die den Beginn des Hauptteils der Funktion markiert.

Function-Objekt


Die Funktion hat kein gültiges Prototyp-Objekt

Es wurde versucht, mit instanceof festzustellen, ob ein Objekt von einer bestimmten Funktionsklasse abgeleitet wurde, aber die prototype-Eigenschaft des Objekts wurde entweder als null oder als ein externer Objekttyp neu definiert (beide stellen keine gültigen JScript-Objekte dar). Bei einem externen Objekt kann es sich um ein Objekt vom Hostobjektmodell (z. B. das document- oder window-Objekt von Internet Explorer) oder ein externes COM-Objekt handeln.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die prototype-Eigenschaft der Funktion auf ein gültiges JScript-Objekt verweist.

Function-Objekt | prototype-Eigenschaft


Funktion erwartet

Entweder wurde versucht, eine der Function prototype-Methoden für ein Objekt aufzurufen, das kein Function-Objekt ist, oder es wurde ein Objekt im Kontext eines Funktionsaufrufs verwendet. Beispielsweise erzeugt der folgende Code diesen Fehler, da Beispiel keine Funktion ist.

var Beispiel = new Object();  // Erstellt ein neues Objekt namens "Beispiel".
var x = Beispiel();           // Versucht Beispiel so aufzurufen, als sei es eine Funktion.

So korrigieren Sie diesen Fehler

  • Rufen Sie Function prototype-Methoden nur für Function-Objekte auf.
  • Stellen Sie sicher, dass Sie den Funktionsaufrufsoperator () nur zum Aufrufen von Funktionen verwenden.

Function-Objekt | prototype-Eigenschaft


Ungültige Zuweisung (JScript)

JScript

Ungültige Zuweisung

Es wurde versucht, einem schreibgeschützten Bezeichner einen Wert zuzuweisen. Sie können einem schreibgeschützten Bezeichner keinen Wert zuweisen. Zu diesen gehören z. B. vom Host definierte Objekte und externe COM-Objekte.

So korrigieren Sie diesen Fehler

Weisen Sie schreibgeschützten Bezeichnern keine Werte zu.

Siehe auch

Zuweisungsoperator (=)


Ungültiges Zeichen (JScript)

JScript

Ungültiges Zeichen

Es wurde ein Bezeichner mithilfe eines Zeichens (oder von Zeichen) gebildet, die vom JScript-Compiler nicht als gültige Zeichen erkannt wurden. Gültige Zeichen entsprechen den folgenden Regeln:

  • Das erste Zeichen muss ein Buchstabe (entweder ein Groß- oder ein Kleinbuchstabe) oder ein Unterstrich (_) sein.
  • Die nachfolgenden Zeichen können Buchstaben, Zahlen oder Unterstriche sein.
  • Der Variablenname darf kein reserviertes Wort sein.

So korrigieren Sie diesen Fehler

Vermeiden Sie das Verwenden von Zeichen, die nicht zur JScript-Sprache gehören.

JScript-Variablen | Sonderzeichen | JScript-Datentypen


Ungültiger Bereich in Zeichensatz (JScript)

JScript

Ungültiger Bereich in Zeichensatz

Es wurde versucht, einen regulären Ausdruck mit einem ungültigen Zeichensatzbereich zu erstellen. Zeichensätze dürfen nur im Bereich einzelner Zeichen liegen, wie beispielsweise a-z oder 0-9; es dürfen keine Zeichenklassen wie z. B. \w in einem Zeichensatz enthalten sein. Das erste Zeichen im Bereich muss außerdem vor dem zweiten Zeichen im Bereich kommen. Beispiele:

var gut = /[a-z]/;  // Ein gültiger Zeichenbereich - a kommt vor z.
var nichtGut = /[z-a]/;  // Ein ungültiger Zeichenbereich - z kommt nicht vor a.

So korrigieren Sie diesen Fehler

Verwenden Sie nur einzelne Zeichen, um den Zeichensatz regulärer Ausdrücke zu bilden, und stellen Sie sicher, dass die Zeichen in der korrekten Reihenfolge stehen.

Regular Expression-Objekt | Syntax regulärer Ausdrücke


JScript-Objekt erwartet

Es wurde versucht, ein Nicht-JScript-Objekt an eine integrierte Funktion zu übergeben, die ein JScript-Objekt erwartet. Verschiedene integrierte Funktionen erfordern Objekte, die in JScript definiert wurden (im Gegensatz zu Objekten, die vom Host definiert wurden, oder einer externen Komponente wie z. B. einem Steuerelement).

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Objekt, das Sie als Parameter übergeben, den korrekten Typ hat.

JScript-Objekte | Verwenden von Arrays


Marke nicht gefunden

Es wurde auf eine Marke verwiesen, die nicht vorhanden ist. Mit Marken können Codeblöcke markiert werden. Sie müssen jedoch innerhalb eines angegebenen Gültigkeitsbereichs eindeutig sein.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass Sie die Marken richtig geschrieben haben.
  • Stellen Sie sicher, dass alle entsprechenden Verweise auf Marken erfolgen, die zuvor definiert wurden.

Siehe auch

Anweisung mit Marke | switch-Anweisung | break-Anweisung | continue-Anweisung


Marke neu definiert

Es wurde eine neue Marke erstellt. Dieser wurde jedoch der Name einer vorhandenen Marke gegeben. Mit Marken können Codeblocks markiert werden. Sie müssen jedoch innerhalb eines angegebenen Gültigkeitsbereichs eindeutig sein.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass alle Marken in Ihren Programmen eindeutig sind.

Siehe auch

Anweisung mit Marke | switch-Anweisung | break-Anweisung | continue-Anweisung


Zahl erwartet

Es wurde versucht, die Methoden Number.prototype.toString oder Number.prototype.valueof für ein Objekt aufzurufen, das nicht vom Typ Number ist. Das Objekt dieser Art des Aufrufs muss vom Typ Number sein.

So korrigieren Sie diesen Fehler

Rufen Sie die Methoden Number.prototype.toString und Number.prototype.valueof nur für Objekte vom Typ Number auf.

Number-Objekt | number-Eigenschaft


Objekt erwartet

Es wurde versucht, die Methoden Object.prototype.toString oder Object.prototype.valueOf für ein Objekt aufzurufen, das nicht vom Typ Object ist. Das Objekt dieser Art des Aufrufs muss vom Typ Object sein.

So korrigieren Sie diesen Fehler

Rufen Sie die Methoden Object.prototype.toString und Object.prototype.valueOf nur für Objekte vom Typ Object auf.

Object-Objekt | JScript-Objekte


Objektmitglied erwartet

Es wurde versucht, eine Operation auf dem Datenmitglied eines Objekts auszuführen, aber das Mitglied ist nicht vorhanden.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass Sie den Namen des Datenmitglieds korrekt eingegeben haben.

Object-Objekt | JScript-Objekte


Regulärer Ausdruck als Objekt erwartet (JScript)

JScript

Regulärer Ausdruck als Objekt erwartet

Es wurde versucht, die Methoden toString() oder valueof() des RegExp prototype-Objekts für ein Objekt eines anderen Typs aufzurufen. Das Objekt dieser Art des Aufrufs muss vom Typ Regular Expression sein.

So korrigieren Sie diesen Fehler

Rufen Sie RegExp (die Methode) nur für gültige RegExp-Objekte auf.

Regular Expression-Objekt | Syntax regulärer Ausdrücke


'return'-Anweisung außerhalb einer Funktion

Im globalen Gültigkeitsbereichs des Codes wurde eine return-Anweisung verwendet. Die return-Anweisung darf nur innerhalb des Hauptteils einer Funktion enthalten sein.

Das Aufrufen einer Funktion mit dem ()-Operator stellt einen Ausdruck dar. Alle Ausdrücke besitzen Werte; mit der return-Anweisung wird der von einer Funktion zurückgegebene Wert angegeben. Die allgemeine Form lautet:

return [ Ausdruck ];

Beim Ausführen der return-Anweisung wird Ausdruck ausgewertet und als Wert der Funktion zurückgegeben. Wenn kein Ausdruck vorhanden ist, wird undefined zurückgegeben.

Die Ausführung der Funktion wird angehalten, wenn die return-Anweisung ausgeführt wird, auch wenn sich im Hauptteil der Funktion noch weitere Anweisungen befinden. Die Ausnahme zu dieser Regel besagt Folgendes: Wenn die return-Anweisung innerhalb eines try-Blocks auftritt und ein entsprechender finally-Block vorhanden ist, wird der Code im finally-Block ausgeführt, bevor die Funktion zur aufrufenden Anweisung zurückkehrt.

Wenn eine Funktion zur aufrufenden Anweisung zurückkehrt, da sie das Ende des Hauptteils der Funktion erreicht hat, ohne eine return-Anweisung auszuführen, so entspricht der zurückgegebene Wert dem Wert undefined (dies bedeutet, dass das Ergebnis der Funktion nicht als Teil eines größeren Ausdrucks verwendet werden kann).

So korrigieren Sie diesen Fehler

Entfernen Sie die return-Anweisung aus dem Hauptteil des Codes (dem globalen Gültigkeitsbereich).

return-Anweisung | Function-Objekt | caller-Eigenschaft


Zeichenfolge erwartet

Es wurde versucht, die Methoden String.prototype.toString oder String.prototype.valueOf für ein Objekt eines anderen Typs als String aufzurufen. Das Objekt dieser Art des Aufrufs muss vom Typ String sein.

So korrigieren Sie diesen Fehler

Rufen Sie die Methoden String.prototype.toString oder String.prototype.valueOf nur für Objekte des Typs String auf.

String-Objekt | toString-Methode


Syntaxfehler (JScript)

JScript

Syntaxfehler

Es wurde eine Anweisung erstellt, die gegen eine oder mehrere Grammatikregeln von JScript verstößt.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie erneut die Syntax des Programms in der angegebenen Zeilennummer.
  • Suchen Sie nach falsch eingesetzten Klammern, geschweiften Klammern oder eckigen Klammern.

Error-Objekt


Syntaxfehler in regulärem Ausdruck (JScript)

JScript

Syntaxfehler in regulärem Ausdruck

Die Struktur der Suchzeichenfolge verstößt gegen eine oder mehrere Grammatikregeln für einen regulären Ausdruck in JScript.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die Struktur der Suchzeichenfolge des regulären Ausdrucks der Syntax regulärer Ausdrücke in JScript entspricht.

Siehe auch

Regular Expression-Objekt | Eigenschaften des Regular Expression-Objekts | Methoden des Regular Expression-Objekts | Syntax regulärer Ausdrücke | compile-Methode


Die Anzahl der Bruchstellen befindet sich außerhalb des gültigen Bereichs

Es wurde versucht, der Funktion Number.prototype.toExponential ein ungültiges Argument zu übergeben. Das Argument der Funktion toExponential() muss zwischen 0 und 20 (einschließlich) liegen.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Argument von toExponential() nicht zu groß oder zu klein ist.

toExponential-Methode


Die Präzision befindet sich außerhalb des gültigen Bereichs

Es wurde versucht, der Funktion Number.prototype.toPrecision ein ungültiges Argument zu übergeben. Das Argument von toPrecision muss zwischen 1 und 21 (einschließlich) liegen.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Argument von toPrecision nicht zu groß oder zu klein ist.

toPrecision-Methode


Der zu entschlüsselnde URI hat keine gültige Verschlüsselung

Es wurde versucht, einen nicht ordnungsgemäß gebildeten URI (Uniform Resource Identifier) zu entschlüsseln. URIs haben eine spezielle Syntax; die meisten nicht alphanumerischen Zeichen müssen verschlüsselt werden, bevor sie in einem URI verwendet werden können. Sie können die Methoden encodeURI und encodeURIComponent verwenden, um einen URI aus einer normalen JScript-Zeichenfolge zu erstellen.

Ein vollständiger URI besteht aus einer Reihe von Komponenten und Trennzeichen. Das allgemeine Format lautet:

<Schema>:<erste>/<zweite>;<dritte>?<vierte>

Die Namen in spitzen Klammern stellen Komponenten dar, und die Zeichen ":", "/", ";" und "?" sind reservierte Zeichen, die als Trennzeichen dienen.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass Sie nur gültige URIs zu entschlüsseln versuchen. Sie können keine normalen JScript-Zeichenfolgen entschlüsseln, da sie möglicherweise ungültige Zeichen enthalten.

decodeURI-Methode | decodeURIComponent-Methode


Der zu verschlüsselnde URI enthält ein ungültiges Zeichen

Es wurde versucht, eine Zeichenfolge als URI (Uniform Resource Identifier) zu verschlüsseln, aber sie enthält ungültige Zeichen. Obwohl die meisten Zeichen in Zeichenfolgen, die in URIs konvertiert werden sollen, gültig sind, sind einige Unicode-Zeichenfolgen unzulässig.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die zu verschlüsselnde Zeichenfolge nur gültige Unicode-Zeichenfolgen enthält.

Ein vollständiger URI besteht aus einer Reihe von Komponenten und Trennzeichen. Das allgemeine Format lautet:

<Schema>:<erste>/<zweite>;<dritte>?<vierte>

Die Namen in spitzen Klammern stellen Komponenten dar, und die Zeichen ":", "/", ";" und "?" sind reservierte Zeichen, die als Trennzeichen dienen.

encodeURI-Methode | encodeURIComponent-Methode


Throw muss gefolgt sein von einem Ausdruck auf derselben Quellzeile

Es wurde das throw-Schlüsselwort verwendet, aber diesem folgte kein Ausdruck auf derselben Quellzeile. Eine throw-Anweisung besteht aus zwei Teilen: dem throw-Schlüsselwort, gefolgt von dem auszulösenden Ausdruck. Beispiel:

if (Nenner == 0) {
throw new DivideByZeroException();
}

Diese beiden Komponenten dürfen nicht voneinander getrennt werden.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das throw-Schlüsselwort und der auszulösende Ausdruck in derselben Zeile angezeigt werden.

Error-Objekt | throw-Anweisung | try...catch-Anweisung


Nicht definierter Bezeichner

Es wurde versucht, einen Bezeichner zu verwenden, den der JScript-Compiler nicht erkennt. Der Wert undefined wird immer dann zurückgegeben, wenn eines der folgenden Elemente verwendet wird:

  • Eine Variable, die nicht vorhanden ist.
  • Eine Variable, die deklariert wurde, der aber nie ein Wert zugewiesen wurde.
  • Eine Objekteigenschaft, die nicht vorhanden ist.

So korrigieren Sie diesen Fehler

Erstellen Sie die Variable mit einer var-Anweisung (z. B. var x;).

JScript-Variablen | Gültigkeitsbereich von Variablen


Unerwarteter Quantifizierer (JScript)

JScript

Unerwarteter Quantifizierer

Beim Verfassen des Suchmusters eines regulären Ausdrucks wurde ein Musterelement mit einem unzulässigen Wiederholungsfaktor angegeben. Das Suchmuster

/^+/

ist beispielsweise unzulässig, weil das Element ^ (Anfang der Eingabe) keinen Wiederholungsfaktor haben kann. In der folgenden Tabelle sind die Elemente, die keinen Wiederholungsfaktor haben können, aufgeführt.

Element | Beschreibung
^ | Anfang der Eingabe
$ | Ende der Eingabe
\b | Wortgrenze
\B | Nicht-Wortgrenze
* | Null oder mehrere Wiederholungen
+ | Eine oder mehrere Wiederholungen
? | Null oder eine Wiederholung
{n} | n Wiederholungen
{n,} | n oder mehr Wiederholungen
{n,m} | Von n bis m Wiederholungen, einschließlich

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Suchmuster nur zulässige Wiederholungsmuster enthält.

Regular Expression-Objekt | Syntax regulärer Ausdrücke


Nicht abgeschlossener Kommentar (JScript)

JScript

Nicht abgeschlossener Kommentar

Es wurde ein mehrzeiliger Kommentarblock begonnen, aber nicht ordnungsgemäß abgeschlossen. Mehrzeilige Kommentare beginnen mit der Kombination "/*" und enden mit der umgekehrten Kombination "*/". Das folgende Beispiel veranschaulicht dies:

/* Dies ist ein Kommentar
Dies ist ein weiterer Teil desselben Kommentars.*/

So korrigieren Sie diesen Fehler

Schließen Sie mehrzeilige Kommentare immer mit "*/" ab.

Kommentaranweisungen


Nicht abgeschlossene Zeichenfolgenkonstante (JScript)

JScript

Nicht abgeschlossene Zeichenfolgenkonstante

Eine Zeichenfolgenkonstante endete nicht mit schließenden Anführungszeichen. Zeichenfolgenkonstanten müssen in Anführungszeichen eingeschlossen sein.

Anmerkung Sie können Paare einfacher oder doppelter Anführungszeichen verwenden. Doppelte Anführungszeichen können in Zeichenfolgen enthalten sein, die in einfache Anführungszeichen eingeschlossen sind, und einfache Anführungszeichen können in Zeichenfolgen enthalten sein, die in doppelte Anführungszeichen eingeschlossen sind.

So korrigieren Sie diesen Fehler

Fügen Sie das schließende Anführungszeichen zum Ende der Zeichenfolge hinzu.

String-Objekt | toString-Methode


VBArray erwartet

Es wurde ein Objekt angegeben, das kein VBArray ist, als ein solches erwartet wurde.

new VBArray(VBArray);

VBArrays sind schreibgeschützt und können nicht direkt erstellt werden. Das VBArray-Argument ist ein VBArray-Wert und muss einen VBArray-Wert erhalten haben, bevor es an den VBArray-Konstruktor übergeben werden kann. Dies ist nur möglich, indem der Wert von einem vorhandenen ActiveX-Objekt oder einem anderen Objekt abgerufen wird.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass Sie dem VBArray-Konstruktor nur VBArray-Objekte zuweisen.

VBArray-Objekt | Verwenden von Arrays


Operatoren: Zusammenfassung (JScript)

JScript

Operatoren: Zusammenfassung

In den folgenden Tabellen sind JScript-Operatoren nach ihren Kategorien aufgeführt.

Rechenoperatoren

Operator | Symbol
Addition | +
Dekrement | —
Division | /
Inkrement | ++
Modulo | %
Multiplikation | *
Subtraktion | -
Unäre Negation | —

Logische Operatoren

Operator | Symbol
Bedingt (ternär) | ?:
Gleichheit | ==
Größer als | >
Größer oder gleich | >=
Identität | ===
Kleiner als | <
Kleiner oder gleich | <=
Komma | ,
Logisches AND | &&
Logisches NOT | !
Logisches OR | ||
Nichtidentität | !==
Ungleichheit | !=

Bitweise Operatoren

Operator | Symbol
Bitweises AND | &
Bitweises Linksschieben | <<
Bitweises NOT | ~
Bitweises OR | |
Bitweises Rechtsschieben | >>
Bitweises XOR | ^
Vorzeichenloses Rechtsschieben | >>>

Zuweisungsoperatoren

Zuweisungsoperatoren

Verbundzuweisungsoperatoren

Verschiedene Operatoren

delete

instanceof

new

typeof

void

Anforderungen

Version 1


JScript-Sprachfeatures in der Technology Preview-Version

In Microsoft JScript 5.6 werden einige neue Sprachfeatures eingeführt.

Erste Schritte

Die folgende Dokumentation dient dazu, Sie auf den neuesten Stand zu bringen. Vorschläge und Anmerkungen zu dieser Dokumentation sind jederzeit willkommen.

Thema | Informationen hierzu
in-Operator | in-Operator
Neue Methoden des Global-Objekts. | decodeURIComponent-Methode decodeURI-Methode encodeURI-Methode encodeURIComponent-Methode
Neue Methoden des Object-Objekts. | hasOwnProperty-Methode isPrototypeOf-Methode
Neue Methoden des Function-Objekts. | apply-Methode call-Methode
Neue Methoden des Array-Objekts. | pop-Methode push-Methode shift-Methode splice-Methode unshift-Methode
Neue Methoden des Number-Objekts. | toFixed-Methode toExponential-Methode toPrecision-Methode
Neue Methoden des Date-Objekts. | toDateString-Methode toTimeString-Methode toLocaleDateString-Methode toLocaleTimeString-Methode
Neue Methoden und Eigenschaften des RegExp-Objekts | toString-Methode global-Eigenschaft ignoreCase-Eigenschaft multiline-Eigenschaft
Neue Methoden des String-Objekts. | localeCompare-Methode toLocaleLowerCase-Methode toLocaleUpperCase-Methode
Neue Eigenschaften des Error-Objekts. | name-Eigenschaft message-Eigenschaft


Versionsinformationen (JScript)

JScript

Versionsinformationen

Die folgende Tabelle zeigt die Version von Microsoft JScript, die in einzelnen Hostanwendungen implementiert ist.

Hostanwendung | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 5.5
Microsoft Internet Explorer 3.0 | x |  |  |  |  |
Microsoft Internet Information Server 1.0 |  | x |  |  |  |
Microsoft Internet Explorer 4.0 |  |  | x |  |  |
Microsoft Internet Information Server 4.0 |  |  | x |  |  |
Microsoft Windows Scripting Host 1.0 |  |  | x |  |  |
Microsoft Visual Studio 6.0 |  |  |  | x |  |
Microsoft Internet Explorer 5.0 |  |  |  |  | x |
Microsoft Internet-Informationsdienste 5.0 |  |  |  |  |  | x

Die folgende Tabelle führt Features der JScript-Sprache und die Version auf, in der sie eingeführt wurden.

Sprachelement | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 5.5
$1...$9-Eigenschaften |  |  | x |  |  |
/*..*/ (Mehrzeilige Kommentaranweisung) | x |  |  |  |  |
// (Einzeilige Kommentaranweisung) | x |  |  |  |  |
@cc_on-Anweisung |  |  | x |  |  |
@if-Anweisung |  |  | x |  |  |
@set-Anweisung |  |  | x |  |  |
0…n-Eigenschaft |  |  |  |  |  | x
abs-Methode | x |  |  |  |  |
acos-Methode | x |  |  |  |  |
ActiveXObject-Objekt |  |  | x |  |  |
Additionsoperator (+) | x |  |  |  |  |
anchor-Methode | x |  |  |  |  |
apply-Methode |  |  |  |  |  | x
arguments-Eigenschaft |  | x |  |  |  |
Array-Objekt |  | x |  |  |  |
asin-Methode | x |  |  |  |  |
atan2-Methode | x |  |  |  |  |
atan-Methode | x |  |  |  |  |
atEnd-Methode |  |  | x |  |  |
Bedingte Kompilierung |  |  | x |  |  |
Bedingter (ternärer) Operator (?:) | x |  |  |  |  |
big-Methode | x |  |  |  |  |
Bitweiser AND-Operator (&) | x |  |  |  |  |
Bitweiser Linksschiebeoperator (<<) | x |  |  |  |  |
Bitweiser NOT-Operator (~) | x |  |  |  |  |
Bitweiser OR-Operator (|) | x |  |  |  |  |
Bitweiser Rehctsschiebeoperator (>>) | x |  |  |  |  |
Bitweiser XOR-Operator (^) | x |  |  |  |  |
blink-Methode | x |  |  |  |  |
bold-Methode | x |  |  |  |  |
Boolean-Objekt |  | x |  |  |  |
break-Anweisung | x |  |  |  |  |
callee-Eigenschaft |  |  |  |  |  | x
caller-Eigenschaft |  | x |  |  |  |
call-Methode |  |  |  |  |  | x
catch-Anweisung |  |  |  |  | x |
ceil-Methode | x |  |  |  |  |
charAt-Methode | x |  |  |  |  |
charCodeAt-Methode |  |  |  |  |  | x
compile-Methode |  |  | x |  |  |
concat-Methode (Array) |  |  | x |  |  |
concat-Methode (String) |  |  | x |  |  |
constructor-Eigenschaft |  | x |  |  |  |
continue-Anweisung | x |  |  |  |  |
cos-Methode | x |  |  |  |  |
Datentypkonvertierung |  |  | x |  |  |
Date-Objekt | x |  |  |  |  |
decodeURIComponent-Methode |  |  |  |  |  | x
decodeURI-Methode |  |  |  |  |  | x
Dekrementoperator ( — ) | x |  |  |  |  |
delete-Operator |  |  | x |  |  |
description-Eigenschaft |  |  |  |  | x |
dimensions-Methode |  |  | x |  |  |
Divisionsoperator (/) | x |  |  |  |  |
do...while-Anweisung |  |  | x |  |  |
E-Eigenschaft | x |  |  |  |  |
encodeURIComponent-Methode |  |  |  |  |  | x
encodeURI-Methode |  |  |  |  |  | x
Enumerator-Objekt |  |  | x |  |  |
Error-Objekt |  |  |  |  | x |
escape-Methode | x |  |  |  |  |
eval-Methode | x |  |  |  |  |
exec-Methode |  |  | x |  |  |
exp-Methode | x |  |  |  |  |
fixed-Methode | x |  |  |  |  |
floor-Methode | x |  |  |  |  |
fontcolor-Methode | x |  |  |  |  |
fontsize-Methode | x |  |  |  |  |
for...in-Anweisung |  |  |  |  | x |
for-Anweisung | x |  |  |  |  |
fromCharCode-Methode |  |  | x |  |  |
function-Anweisung | x |  |  |  |  |
Function-Objekt |  | x |  |  |  |
getDate-Methode | x |  |  |  |  |
getDay-Methode | x |  |  |  |  |
getFullYear-Methode |  |  | x |  |  |
getHours-Methode | x |  |  |  |  |
getItem-Methode |  |  | x |  |  |
getMilliseconds-Methode |  |  | x |  |  |
getMinutes-Methode | x |  |  |  |  |
getMonth-Methode | x |  |  |  |  |
GetObject-Funktion |  |  | x |  |  |
getSeconds-Methode | x |  |  |  |  |
getTime-Methode | x |  |  |  |  |
getTimezoneOffset-Methode | x |  |  |  |  |
getUTCDate-Methode |  |  | x |  |  |
getUTCDay-Methode |  |  | x |  |  |
getUTCFullYear-Methode |  |  | x |  |  |
getUTCHours-Methode |  |  | x |  |  |
getUTCMilliseconds-Methode |  |  | x |  |  |
getUTCMinutes-Methode |  |  | x |  |  |
getUTCMonth-Methode |  |  | x |  |  |
getUTCSeconds-Methode |  |  | x |  |  |
getVarDate-Methode |  |  | x |  |  |
getYear-Methode | x |  |  |  |  |
Gleichheitsoperator (==) | x |  |  |  |  |
global-Eigenschaft |  |  |  |  |  | x
Global-Objekt |  |  | x |  |  |
Größer als-Operator (>) | x |  |  |  |  |
Größer oder gleich-Operator (>=) | x |  |  |  |  |
hasOwnProperty-Methode |  |  |  |  |  | x
Identitätsoperator (===) | x |  |  |  |  |
if...else-Anweisung | x |  |  |  |  |
ignoreCase-Eigenschaft |  |  |  |  |  | x
index-Eigenschaft |  |  | x |  |  |
indexOf-Methode | x |  |  |  |  |
Infinity-Eigenschaft |  |  | x |  |  |
Inkrementoperator (++) | x |  |  |  |  |
input-Eigenschaft |  |  | x |  |  |
instanceof-Operator |  |  |  |  | x |
isFinite-Methode |  |  | x |  |  |
isNaN-Methode | x |  |  |  |  |
isPrototypeOf-Methode |  |  |  |  |  | x
italics-Methode | x |  |  |  |  |
item-Methode |  |  | x |  |  |
join-Methode |  | x |  |  |  |
Kleiner als-Operator (<) | x |  |  |  |  |
Kleiner oder gleich-Operator (<=) | x |  |  |  |  |
Kommaoperator (,) | x |  |  |  |  |
Labeled-Anweisung |  |  | x |  |  |
lastIndex-Eigenschaft |  |  | x |  |  |
lastIndexOf-Methode | x |  |  |  |  |
lastMatch-Eigenschaft |  |  |  |  |  | x
lastParen-Eigenschaft |  |  |  |  |  | x
lbound-Methode |  |  | x |  |  |
leftContext-Eigenschaft |  |  |  |  |  | x
length-Eigenschaft (Arguments) |  |  |  |  |  | x
length-Eigenschaft (Array) |  | x |  |  |  |
length-Eigenschaft (Function) |  | x |  |  |  |
length-Eigenschaft (String) | x |  |  |  |  |
link-Methode | x |  |  |  |  |
LN10-Eigenschaft | x |  |  |  |  |
LN2-Eigenschaft | x |  |  |  |  |
localeCompare-Methode |  |  |  |  |  | x
LOG10E-Eigenschaft | x |  |  |  |  |
LOG2E-Eigenschaft | x |  |  |  |  |
Logischer AND-Operator (&&) | x |  |  |  |  |
Logischer NOT-Operator (!) | x |  |  |  |  |
Logischer OR-Operator (||) | x |  |  |  |  |
log-Methode | x |  |  |  |  |
match-Methode |  |  | x |  |  |
Math-Objekt | x |  |  |  |  |
MAX_VALUE-Eigenschaft |  | x |  |  |  |
max-Methode | x |  |  |  |  |
message-Eigenschaft |  |  |  |  |  | x
MIN_VALUE-Eigenschaft |  | x |  |  |  |
min-Methode | x |  |  |  |  |
Modulo-Operator (%) | x |  |  |  |  |
moveFirst-Methode |  |  | x |  |  |
moveNext-Methode |  |  | x |  |  |
multiline-Eigenschaft |  |  |  |  |  | x
Multiplikationsoperator (*) | x |  |  |  |  |
name-Eigenschaft |  |  |  |  |  | x
NaN-Eigenschaft (Global) |  |  | x |  |  |
NaN-Eigenschaft (Number) |  | x |  |  |  |
NEGATIVE_INFINITY-Eigenschaft |  | x |  |  |  |
new-Operator | x |  |  |  |  |
Nichtidentitätsoperator (!==) | x |  |  |  |  |
number-Eigenschaft |  |  |  |  | x |
Number-Objekt |  | x |  |  |  |
Object-Objekt |  |  | x |  |  |
Operatorvorrang | x |  |  |  |  |
parseFloat-Methode | x |  |  |  |  |
parseInt-Methode | x |  |  |  |  |
parse-Methode | x |  |  |  |  |
PI-Eigenschaft | x |  |  |  |  |
pop-Methode |  |  |  |  |  | x
POSITIVE_INFINITY-Eigenschaft |  | x |  |  |  |
pow-Methode | x |  |  |  |  |
propertyIsEnumerable-Eigenschaft |  |  |  |  |  | x
prototype-Eigenschaft |  | x |  |  |  |
push-Methode |  |  |  |  |  | x
random-Methode | x |  |  |  |  |
RegExp-Objekt |  |  | x |  |  |
Regular Expression-Objekt |  |  | x |  |  |
replace-Methode | x |  |  |  |  |
return-Anweisung | x |  |  |  |  |
reverse-Methode |  | x |  |  |  |
rightContext-Eigenschaft |  |  |  |  |  | x
round-Methode | x |  |  |  |  |
ScriptEngineBuildVersion-Funktion |  | x |  |  |  |
ScriptEngine-Funktion |  | x |  |  |  |
ScriptEngineMajorVersion-Funktion |  | x |  |  |  |
ScriptEngineMinorVersion-Funktion |  | x |  |  |  |
search-Methode |  |  | x |  |  |
setDate-Methode | x |  |  |  |  |
setFullYear-Methode |  |  | x |  |  |
setHours-Methode | x |  |  |  |  |
setMilliseconds-Methode |  |  | x |  |  |
setMinutes-Methode | x |  |  |  |  |
setMonth-Methode | x |  |  |  |  |
setSeconds-Methode | x |  |  |  |  |
setTime-Methode | x |  |  |  |  |
setUTCDate-Methode |  |  | x |  |  |
setUTCFullYear-Methode |  |  | x |  |  |
setUTCHours-Methode |  |  | x |  |  |
setUTCMilliseconds-Methode |  |  | x |  |  |
setUTCMinutes-Methode |  |  | x |  |  |
setUTCMonth-Methode |  |  | x |  |  |
setUTCSeconds-Methode |  |  | x |  |  |
setYear-Methode | x |  |  |  |  |
shift-Methode |  |  |  |  |  | x
sin-Methode | x |  |  |  |  |
slice-Methode (Array) |  |  | x |  |  |
slice-Methode (String) |  |  | x |  |  |
small-Methode | x |  |  |  |  |
sort-Methode |  | x |  |  |  |
source-Eigenschaft |  |  | x |  |  |
splice-Methode |  |  |  |  |  | x
split-Methode |  |  | x |  |  |
SQRT1_2-Eigenschaft | x |  |  |  |  |
SQRT2-Eigenschaft | x |  |  |  |  |
sqrt-Methode | x |  |  |  |  |
strike-Methode | x |  |  |  |  |
String-Objekt | x |  |  |  |  |
sub-Methode | x |  |  |  |  |
substring-Methode | x |  |  |  |  |
substr-Methode |  |  | x |  |  |
Subtraktionsoperator (-) | x |  |  |  |  |
sup-Methode | x |  |  |  |  |
switch-Anweisung |  |  | x |  |  |
Syntax regulärer Ausdrücke |  |  | x |  |  |
tan-Methode | x |  |  |  |  |
test-Methode |  |  | x |  |  |
this-Anweisung | x |  |  |  |  |
throw-Anweisung |  |  |  |  | x |
toArray-Methode |  |  | x |  |  |
toDateString-Methode |  |  |  |  |  | x
toExponential-Methode |  |  |  |  |  | x
toFixed-Methode |  |  |  |  |  | x
toGMTString-Methode | x |  |  |  |  |
toLocaleDateString-Methode |  |  |  |  |  | x
toLocaleLowercase-Methode |  |  |  |  |  | x
toLocaleString-Methode | x |  |  |  |  |
toLocaleTimeString-Methode |  |  |  |  |  | x
toLocaleUppercase-Methode |  |  |  |  |  | x
toLowerCase-Methode | x |  |  |  |  |
toPrecision-Methode |  |  |  |  |  | x
toString-Methode |  | x |  |  |  |
toTimeString-Methode |  |  |  |  |  | x
toUpperCase-Methode | x |  |  |  |  |
toUTCString-Methode |  |  | x |  |  |
try-Anweisung |  |  |  |  | x |
typeof-Operator | x |  |  |  |  |
ubound-Methode |  |  | x |  |  |
Unärer Negationsoperator (-) | x |  |  |  |  |
undefined-Eigenschaft |  |  |  |  |  | x
unescape-Methode | x |  |  |  |  |
Ungleichheitsoperator (!=) | x |  |  |  |  |
unshift-Methode |  |  |  |  |  | x
UTC-Methode | x |  |  |  |  |
valueOf-Methode |  | x |  |  |  |
var-Anweisung | x |  |  |  |  |
Variablen für die bedingte Kompilierung |  |  | x |  |  |
VBArray-Objekt |  |  | x |  |  |
Vergleichsoperatoren | x |  |  |  |  |
void-Operator |  | x |  |  |  |
Vorzeichenloser Rechtsschiebeoperator (>>>) | x |  |  |  |  |
while-Anweisung | x |  |  |  |  |
with-Anweisung | x |  |  |  |  |
Zuweisungsoperator (=) | x |  |  |  |  |


Copyright

Microsoft® VBScript®

Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URL-Verweise und Verweise auf andere Internetwebsites, können ohne vorherige Ankündigung geändert werden. Die in den Beispielen verwendeten Firmen, Organisationen, Produkte, Personen und Ereignisse sind frei erfunden, soweit nichts anderes angegeben ist. Jede Ähnlichkeit mit bestehenden Firmen, Organisationen, Produkten, Personen oder Ereignissen ist rein zufällig. Die Benutzerinnen und Benutzer sind verpflichtet, sich an alle anwendbaren Urheberrechtsgesetze zu halten. Ohne Einschränkung der Rechte unter dem Urheberrecht darf ohne ausdrückliche schriftliche Erlaubnis der Microsoft Corporation kein Teil dieser Unterlagen für irgendwelche Zwecke vervielfältigt, in einem Suchsystem gespeichert oder in ein solches eingebracht werden oder übertragen werden, unabhängig davon, auf welche Art und Weise oder mit welchen Mitteln (elektronisch, mechanisch, mittels Fotokopie, Aufnahme oder sonstigen Mitteln) dies geschieht.

Es ist möglich, dass Microsoft Rechte an Patenten bzw. angemeldeten Patenten, an Marken, Urheberrechten oder sonstigem geistigen Eigentum besitzt, die sich auf den fachlichen Inhalt dieses Dokuments beziehen. Das Bereitstellen dieses Dokuments gibt Ihnen jedoch keinen Anspruch auf diese Patente, Marken, Urheberrechte oder auf sonstiges geistiges Eigentum, es sei denn, dies wird ausdrücklich in den schriftlichen Lizenzverträgen von Microsoft eingeräumt.

© 1991-2000 Microsoft Corporation. Alle Rechte vorbehalten.

Build: Thema-Version 5.6.9309.1546

Microsoft, MS, MS-DOS, ActiveX, JScript, Microsoft Press, MSDN, Visual Basic, Windows, Windows NT, Win32 und Win32s sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern.

Andere in diesen Unterlagen genannte reale Firmen- und Produktnamen können Marken der jeweiligen Eigentümer sein.


ActiveX-Komponente kann kein Objekt erstellen

Das Laufzeitmodul von VBScript 5.5 konnte das Objekt nicht instanziiieren, da die Klasse des Objekts nicht in der Systemregistrierung registriert ist oder eine oder mehrere der zugehörigen DLL-Dateien (Dynamic Link Library) nicht verfügbar sind. Alternativ ist eine für das Objekt erforderliche DLL möglicherweise unbrauchbar, da sie entweder nicht gefunden werden kann oder fehlerhaft ist.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass alle zugehörigen DLLs verfügbar sind. Für das Data Access Object (DAO) sind beispielsweise unterstützende DLLs erforderlich, die je nach Plattform unterschiedlich sind. Möglicherweise müssen Sie das Installationsprogramm für ein solches Objekt erneut ausführen.
  • Möglicherweise versucht Internet Explorer, ein Objekt für Sie zu erstellen, aber es sind nicht die korrekten Sicherheitsberechtigungen in Internet Explorer festgelegt. Setzen Sie die Sicherheitseinstellung in Internet Explorer zurück, und versuchen Sie es erneut.

Verwenden von VBScript mit Objekten


Eine Ausnahmebedingung ist aufgetreten

Im Skript wurde ein COM-Objekt aufgerufen, durch das wiederum eine Ausnahme ausgelöst wurde.

So korrigieren Sie diesen Fehler

  • Wenn dieser Aufruf nicht von der Raise-Methode erzeugt wurde, wenden Sie sich an den Entwickler des COM-Objekts, das den Fehler erzeugt hat.
  • Wenden Sie sich an den Microsoft-Produktsupport, um die Bedingungen zu melden, unter denen diese Fehlermeldung angezeigt wurde.

Raise-Methode | Err


Das Argument ist nicht optional

Es wurde eine Prozedur mit der falschen Anzahl von Argumenten aufgerufen. Die Anzahl der Argumente, die an eine Prozedur übergeben werden, muss mit der Anzahl der Parameter in der Prozedurdefinition übereinstimmen.

So korrigieren Sie diesen Fehler

Überprüfen Sie die Signatur der Funktion, um sicherzustellen, dass Sie alle erforderlichen Argumente angegeben haben.

VBScript-Prozeduren


Array ist unveränderlich oder momentan gesperrt

Es wurde versucht, mit ReDim die Anzahl der Elemente in einem Array mit konstanter Größe zu ändern. Arrays, die als dynamisch deklariert wurden, oder Arrays innerhalb von Variant-Variablen können vorübergehend gesperrt sein.

So korrigieren Sie diesen Fehler

  • Wenn das Array innerhalb einer Prozedur deklariert wird, verwenden Sie die ReDim-Anweisung, um es von einem statischen in ein dynamisches Array zu ändern.
  • Wenn das Array auf Modulebene deklariert wird, deklarieren Sie das Array, ohne die Anzahl der Elemente anzugeben.

Siehe auch

Array-Funktion | Dim-Anweisung | ReDim-Anweisung | Set-Anweisung | Private-Anweisung | Public-Anweisung


Eine Klasse kann nicht mehrere Standard-Eigenschaften/-Methoden enthalten

In einer Klassendefinition wurde mehr als eine Eigenschaft oder Methode als Standard markiert. Eine Klasse darf nur eine Standardeigenschaft und eine Standardmethode enthalten.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass für diese Klasse nur eine Standardeigenschaft und eine Standardmethode vorhanden ist.

Function-Anweisung


Beim Aufrufen einer Unterroutine dürfen keine Klammern verwendet werden

Es wurde eine Unterroutine ohne die Call-Anweisung, aber mit Klammern () aufgerufen. Verwenden Sie beim Aufrufen einer Unterroutine ohne die Call-Anweisung keine Klammern.

So korrigieren Sie diesen Fehler

  • Entfernen Sie die Klammern aus dem Aufruf der Unterroutine.
  • Verwenden Sie stattdessen die Call-Anweisung zum Aufrufen der Unterroutine.

Call-Anweisung | Sub-Anweisung


Angeforderte Operation kann nicht durchgeführt werden

Die Ausführung des Skripts kann nicht fortgesetzt werden, da der Host das Skriptmodul angehalten hat. Der Host hat keinen expliziten Fehlercode angegeben, der zurückgegeben werden soll.

So korrigieren Sie diesen Fehler

Die Beseitigung dieses Fehlers ist vom Host abhängig.


Klasse unterstützt keine Automatisierung

Es wurde versucht, auf eine Eigenschaft oder Methode eines Objekts zuzugreifen, das keine Automatisierung unterstützt. Sie können einen Zeiger auf ein Objekt erstellen, das keine Automatisierung unterstützt, und diesen Zeiger übergeben, aber Sie können nicht auf die Eigenschaften und Methoden dieses Objekts zugreifen.

So korrigieren Sie diesen Fehler

Überprüfen Sie die Dokumentation der Anwendung, die das Objekt erstellt hat, auf Einschränkungen der Verwendung der Automatisierung bei dieser Klasse.

Anmerkung Möglicherweise ist das Objekt unter Verwendung von CreateObject erstellt worden, aber es kann auch über das Hostobjektmodell eingeführt worden sein.

CreateObject-Funktion


'Class initialize' oder 'Class terminate' haben keine Argumente

Ihr Skript enthält eine Klassendefinition mit dem Class_Initialize-Ereignis oder dem Class_Terminate-Ereignis. Sie haben für eine dieser Prozeduren einen oder mehrere Parameter angegeben. Geben Sie für diese Prozeduren niemals Parameter an.

So korrigieren Sie diesen Fehler

Entfernen Sie die Parameter aus der Klassendefinition.

Initialize-Ereignis | Terminate-Ereignis


Klasse nicht definiert

Es wurde auf eine Klasse verwiesen (mit einer New- oder Set-Anweisung), ohne dass die Klasse zuvor definiert wurde.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die Klasse definiert wird, bevor auf sie verwiesen wird.

Set-Anweisung


'Default'-Spezifikation nur für 'Property Get' möglich

Das reservierte Wort Default wurde bei einer Property Let- oder Property Set-Anweisung verwendet. Das reservierte Wort Default kann nur für eine Property Get-Anweisung angegeben werden.

So korrigieren Sie diesen Fehler

Geben Sie das reservierte Wort Default nur bei einer Property Get-Anweisung an.

Siehe auch

Property Let-Anweisung | Property Set-Anweisung | Property Get-Anweisung


'Default'-Spezifikation muss auch 'Public' bestimmen

Eine Eigenschaft wurde als Default definiert, aber nicht als Public. Wenn Sie eine Eigenschaft als Default definieren, muss sie auch als Public definiert werden.

So korrigieren Sie diesen Fehler

Definieren Sie alle Default-Eigenschaften als Public.

Function-Anweisung


Division durch Null

Es wurde ein Ausdruck erstellt, der versucht, eine Zahl durch Null zu dividieren. Eine Division durch Null führt zu einem unendlichen und damit unbrauchbaren Ergebnis.

So korrigieren Sie diesen Fehler

Überprüfen Sie den Ausdruck auf Eingabefehler oder Fehler bei der Groß-/Kleinschreibung.


Fehler beim Laden einer DLL

In Ihrer Anwendung wird auf eine DLL verwiesen, die nicht gefunden werden kann. Alternativ hat eine DLL möglicherweise auf eine andere DLL verwiesen, die nicht gefunden werden kann.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass die DLL vorhanden ist.
  • Verwenden Sie beim Verweisen auf die DLL den vollständigen Pfadnamen.
  • Beschaffen Sie sich Sie die DLL, auf die verwiesen wird, und stellen Sie sie der anderen DLL zur Verfügung.


Erwartet ']' in regulärem Ausdruck (VBScript)

Visual Basic Scripting Edition

Erwartet ']' in regulärem Ausdruck

Es wurde versucht, eine Zeichenklasse für eine Übereinstimmung mit einem regulären Ausdruck zu erstellen, aber die rechte eckige Klammer fehlt. Einzelne Literalzeichenkombinationen können zu Zeichenklassen zusammengesetzt werden, indem sie in eckige Klammern gesetzt werden. Eine Zeichenklasse stimmt mit jedem Zeichen überein, das in ihr enthalten ist. Beispielsweise stimmt /[abc]/ mit jedem der Buchstaben "a", "b" und "c" überein.

So korrigieren Sie diesen Fehler

Fügen Sie die rechte eckige Klammer zum regulären Ausdruck hinzu.

Regular Expression (RegExp)-Objekt


'Case' erwartet

Es wurde ein Select...End Select-Konstrukt erstellt, aber die Case-Anweisungen fehlen. Das folgende Beispiel veranschaulicht die korrekte Verwendung des Select...End Select-Konstrukts.

Select Case Testausdruck
   [Case Ausdrucksliste-n
      [Anweisungen-n]] . . .
   [Case Else Ausdrucksliste-n
      [elseAnweisungen-n]]
End Select

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Select...End Select-Konstrukt alle erforderlichen Teile enthält.

Select Case-Anweisung


'Class' erwartet

Es wurde eine Class-Prozedur erstellt, aber diese endete mit dem End-Schlüsselwort statt mit der End Class-Anweisung. Schließen Sie eine Class-Prozedur immer mit einer End Class-Anweisung ab.

So korrigieren Sie diesen Fehler

Schließen Sie die Class-Prozedur mit der End Class-Anweisung ab.

Class-Anweisung


'End' erwartet

Es wurde ein Konstrukt erstellt, aber nicht ordnungsgemäß abgeschlossen. Die folgende Tabelle führt die VBScript-Konstrukte auf, die mit einer End-Anweisung enden müssen.

Konstrukt | Abschließende Anweisung
Sub | End Sub
Function | End Function
If | End If
Class | End Class
With | End With
Select | End Select

So korrigieren Sie diesen Fehler

  • Schließen Sie eine Sub-Prozedur mit einer zugehörigen End Sub-Anweisung ab.
  • Schließen Sie eine Function-Prozedur mit einer zugehörigen End Function-Anweisung ab.
  • Schließen Sie eine If-Anweisung mit einer zugehörigen End If-Anweisung ab.
  • Schließen Sie eine Class-Anweisung mit einer zugehörigen End Class-Anweisung ab.
  • Schließen Sie eine With-Anweisung mit einer zugehörigen End With-Anweisung ab.
  • Schließen Sie eine Select-Anweisung mit einer zugehörigen End Select-Anweisung ab.

Sub-Anweisung | Function-Anweisung


Anweisungsende erwartet

Über das Ende einer Anweisung hinaus wird Text angezeigt.

So korrigieren Sie diesen Fehler

  • Entfernen Sie den zusätzlichen Text.
  • Wenn Sie die Codezeile kommentieren wollten, fügen Sie einen Apostroph "'" am Ende der Anweisung ein.

VBScript-Codekonventionen


=' erwartet (VBScript)

Visual Basic Scripting Edition

'=' erwartet

Es wurde die Set-Anweisung verwendet, aber das Gleichheitszeichen fehlt.

So korrigieren Sie diesen Fehler

Verwenden Sie die vollständige Syntax der Set-Anweisung.

Set-Anweisung


Ausdruck erwartet

Es wurde ein Select...End Select-Konstrukt erstellt, aber dieses enthält eine Case-Klausel, die einen oder mehrere Werte zusammen mit einer Case Else-Anweisung enthält. Die Case Else-Anweisung (der Fall, der bei Nichtzutreffen aller anderen Fälle eintritt) muss in einer eigenen Zeile angezeigt werden. Das folgende Beispiel veranschaulicht die korrekte Verwendung des Select...End Select-Konstrukts.

Select Case Testausdruck
   [Case Ausdrucksliste-n
      [Anweisungen-n]] . . .
   [Case Else Ausdrucksliste-n
      [elseAnweisungen-n]]
End Select

So korrigieren Sie diesen Fehler

Erstellen Sie eine neue Zeile für die Case Else-Anweisung.

Select Case-Anweisung


'Function' erwartet

Es wurde eine Function-Prozedur erstellt, aber diese wurde mit dem End-Schlüsselwort statt mit der End Function-Anweisung abgeschlossen. Eine Function-Prozedur muss eine abschließende End Function-Anweisung enthalten.

So korrigieren Sie diesen Fehler

Schließen Sie die Function-Prozedur mit der End Function-Anweisung ab.

Siehe auch

Function-Anweisung | Call-Anweisung | Dim-Anweisung | Exit-Anweisung | Set-Anweisung | Sub-Anweisung


Bezeichner erwartet (VBScript)

Visual Basic Scripting Edition

Bezeichner erwartet

Es wurde eine Variable deklariert, aber ein für VBScript reserviertes Wort als Name verwendet.

So korrigieren Sie diesen Fehler

  • Wählen Sie einen anderen Variablennamen (einen, bei dem es sich nicht um ein für VBScript reserviertes Wort handelt).
  • Schließen Sie das reservierte Wort in eckige Klammern ein.


'If' erwartet

Es wurde ein If...Then...Else-Block erstellt, aber dieser wurde nicht ordnungsgemäß abgeschlossen. Eine If-Blockanweisung muss die erste Anweisung in einer Zeile sein und mit einer End If-Anweisung enden. Das folgende Beispiel veranschaulicht die korrekte Struktur eines If...Then...Else-Blocks.

If Bedingung Then
   [Anweisungen]
[ElseIf Bedingung-n Then
   [elseifAnweisungen]] . . .
[Else
   [elseAnweisungen]]
End If

So korrigieren Sie diesen Fehler

Überprüfen Sie, ob die If-Blockanweisung mit einer End-Anweisung endet. Wenn ja, ändern Sie diese in eine End If-Anweisung.

If...Then...Else-Anweisung


'In' erwartet

Es wurde ein For Each...Next-Block erstellt, aber das In-Schlüsselwort in der ersten Zeile fehlt. Das folgende Beispiel veranschaulicht die korrekte Struktur eines For Each...Next-Blocks.

For Each Element In Gruppe
   [Anweisungen]
   [Exit For]
   [Anweisungen]
Next [Element]

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass der For Each...Next-Block alle erforderlichen Teile enthält.

Siehe auch

For Each...Next-Anweisung | Do...Loop-Anweisung | Exit-Anweisung | For...Next-Anweisung | While...Wend-Anweisung


Erwartet ')' in regulärem Ausdruck (VBScript)

Visual Basic Scripting Edition

Erwartet ')' in regulärem Ausdruck

Es wurde versucht, einen Unterausdruck eines regulären Ausdrucks zu erstellen, aber die schließende Klammer ")" fehlt. Klammern dienen in regulären Ausdrücken mehreren Zwecken. In erster Linie fassen sie separate Elemente zu einem einzigen Unterausdruck zusammen, damit die Elemente von *, +, ? usw. als einheitliches Ganzes behandelt werden können.

So korrigieren Sie diesen Fehler

Fügen Sie die rechte (schließende) Klammer ")" zum Unterausdruck des regulären Ausdrucks hinzu.

Regular Expression (RegExp)-Objekt


Ganzzahlige Konstante erwartet

Es wurde versucht, ein Array mit einer Nichtkonstante in der Dim-Anweisung zu erstellen. In VBScript muss der Wert für die Größe in einer Dim-Anweisung eine Konstante sein. Beispiel:

Dim a(10)   ' ist gültig.
Dim a(x)    ' ist nicht gültig.
Dim a(1=2)  ' ist nicht gültig.

So korrigieren Sie diesen Fehler

Verwenden Sie die ReDim-Anweisung.

Dim-Anweisung | ReDim-Anweisung


(' erwartet (VBScript)

Visual Basic Scripting Edition

'(' erwartet

Es fehlte die öffnende Klammer "(" beim Erstellen einer Prozedurdeklaration

Sub meinBeispiel x // x muss in Klammern eingeschlossen sein.
End Sub

oder bei der Verwendung der ReDim-Anweisung.

ReDim x // x muss in Klammern eingeschlossen sein.

So korrigieren Sie diesen Fehler

Fügen Sie die linke (öffnende) Klammer "(" hinzu.

Operatorvorrang


'Let' oder 'Set' oder 'Get' in Eigenschaftsdeklaration erwartet

Es wurde eine Property Let-, Property Set- oder Property Get-Anweisung erstellt, aber die Schlüsselwörter Let, Set oder Get fehlen. Der Property-Anweisung muss Let, Set oder Get folgen.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass der Property-Anweisung Let, Set oder Get folgt.

Siehe auch

Property Let-Anweisung | Property Set-Anweisung | Property Get-Anweisung


Literalkonstante erwartet

Es wurde eine Konstante deklariert, aber dieser wurde ein Variablenausdruck (ein veränderlicher Wert) zugewiesen. Konstanten dürfen keinen Laufzeitcode enthalten.

So korrigieren Sie diesen Fehler

Verwenden Sie beim Deklarieren von Konstanten keine Ausdrücke.

VBScript-Konstanten | Konstanten | Const-Anweisung


'Loop' erwartet

Es wurde ein Do-Schleifenkonstrukt erstellt, aber die Schleife wurde nicht ordnungsgemäß abgeschlossen. Do-Schleifenkonstrukte werden mit einer zugehörigen Loop-Anweisung abgeschlossen. Das folgende Beispiel veranschaulicht die korrekte Struktur eines Do-Schleifenkonstrukts.

Do [{While | Until} Bedingung]
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop

Sie können auch die folgende Syntax verwenden:

Do
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop [{While | Until} Bedingung]

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Do-Schleifenkonstrukt alle erforderlichen Teile enthält.

Siehe auch

Do...Loop-Anweisung | Exit-Anweisung | For...Next-Anweisung | While...Wend-Anweisung


'Next' erwartet

Es wurde ein For...Next-Schleifenkonstrukt erstellt, aber die Schleife wurde nicht ordnungsgemäß abgeschlossen. Ein For...Next-Schleifenkonstrukt muss mit einer Next-Anweisung enden. Das folgende Beispiel veranschaulicht die korrekte Struktur eines For...Next-Schleifenkonstrukts.

For Zähler = Start To Ende [Step Schrittweite]
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das For...Next-Schleifenkonstrukt alle erforderlichen Teile enthält.

Siehe auch

For...Next-Anweisung | Do...Loop-Anweisung | Exit-Anweisung | For Each...Next-Anweisung | While...Wend-Anweisung


'Property' erwartet

Es wurde eine Property-Prozedur (Property Let, Property Set oder Property Get) erstellt, aber diese wurde nicht mit der End Property-Anweisung abgeschlossen. Property-Prozeduren müssen mit einer End Property-Anweisung abgeschlossen werden.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass Sie die Property-Prozedur mit der End Property-Anweisung abschließen.

Siehe auch

Property Let-Anweisung | Property Set-Anweisung | Property Get-Anweisung


)' erwartet (VBScript)

Visual Basic Scripting Edition

')' erwartet

Es wurde versucht, einen Ausdruck in ein Klammernpaar einzuschließen, aber die schließende Klammer ")" fehlt. Einige Ausdrücke müssen in ein Paar aus einer öffnenden und einer schließenden Klammer eingeschlossen werden.

So korrigieren Sie diesen Fehler

Fügen Sie die rechte (schließende) Klammer ")" zum Auswertungsausdruck hinzu.

Operatorvorrang


'Select' erwartet

Es wurde ein Select...End Select-Konstrukt erstellt, aber die abschließende End Select-Anweisung fehlt. Das folgende Beispiel veranschaulicht die korrekte Verwendung des Select...End Select-Konstrukts.

Select Case Testausdruck
   [Case Ausdrucksliste-n
      [Anweisungen-n]] . . .
   [Case Else Ausdrucksliste-n
      [elseAnweisungen-n]]
End Select

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Select...End Select-Konstrukt alle erforderlichen Teile enthält.

Select Case-Anweisung | If...Then...Else-Anweisung


Anweisung erwartet

Die Zeichenfolge, die als Argument an die Execute-Anweisung übergeben wurde, kann nicht als Anweisung analysiert werden. Die Execute-Anweisung dient dazu, VBScript-Code dynamisch auszuführen. Betrachten Sie beispielsweise den folgenden VBScript-Code.

Execute "msgbox 1"  'Dies funktioniert, da msgbox eine Anweisung ist.
Execute "5*4"       'Dies schlaegt fehl, da 5*4 nicht als Anweisung interpretiert werden kann.

Der Fehler Anweisung erwartet wird beim Kompilieren von beliebigem Skriptcode erzeugt, der eine Anweisung erwartet, nicht nur von Execute und Eval. Beispielsweise wird dieser Fehler in Internet Explorer von folgendem Code verursacht:

<html>
<script language=vbscript>
    5*4
</script>
</html>

Beachten Sie, dass es zwei unterschiedliche und nicht zusammengehörige Execute-Anweisungen in VBScript gibt:

  • Die Execute-Anweisung, die Anweisungen schnell kompiliert und ausführt.
  • Die Execute-Methode des Regular Expression-Objekts.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass die an Execute übergebene Zeichenfolge eine Anweisung ist.
  • Wenn es sich bei der auszuwertenden Zeichenfolge um einen Ausdruck handelt, verwenden Sie Eval.

Execute-Anweisung | Eval


'Sub' erwartet

Es wurde eine Sub-Prozedur erstellt, aber diese wurde mit dem End-Schlüsselwort statt mit der End Sub-Anweisung abgeschlossen. Eine Sub-Prozedur muss eine abschließende End Sub-Anweisung enthalten.

So korrigieren Sie diesen Fehler

Schließen Sie die Sub-Prozedur mit der End Sub-Anweisung ab.

Siehe auch

Sub-Anweisung | Call-Anweisung | Dim-Anweisung | Exit-Anweisung | Function-Anweisung


'Then' erwartet

Es wurde ein If...Then...Else-Konstrukt erstellt, aber das Then-Schlüsselwort in der ersten Zeile fehlt. Das folgende Beispiel veranschaulicht die korrekte Struktur eines If...Then...Else-Konstrukts.

If Bedingung Then Anweisungen [Else elseAnweisungen]

Sie können auch die folgende Blocksyntax verwenden:

If Bedingung Then
   [Anweisungen]
[ElseIf Bedingung-n Then
   [elseifAnweisungen]] . . .
[Else
   [elseAnweisungen]]
End If

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das If...Then...Else-Konstrukt alle erforderlichen Teile enthält.

Siehe auch

If...Then...Else-Anweisung | Select Case-Anweisung | Verwenden von Bedingungsanweisungen


'To' erwartet

Es wurde eine For...Next-Schleife erstellt, aber das To-Schlüsselwort in der ersten Zeile fehlt. Die erste Zeile einer For...Next-Schleife muss das To-Schlüsselwort enthalten. Das folgende Beispiel veranschaulicht die korrekte Struktur einer For...Next-Schleife.

For Zähler = Start To Ende [Step Schrittweite]
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die For...Next-Schleife alle erforderlichen Teile enthält.

Siehe auch

For...Next-Anweisung | For Each...Next-Anweisung | Do...Loop-Anweisung | Exit-Anweisung | For...Next-Anweisung | While...Wend-Anweisung


'Wend' erwartet

Es wurde eine While...Wend-Schleife erstellt, aber diese wurde nicht ordnungsgemäß abgeschlossen. Eine While...Wend-Schleife muss mit einer zugehörigen Wend-Anweisung abgeschlossen werden. Das folgende Beispiel veranschaulicht die korrekte Struktur einer While...Wend-Schleife.

While Bedingung
   [Anweisungen]
Wend

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die While...Wend-Schleife alle erforderlichen Teile enthält.

Siehe auch

Durchlaufen von Codeschleifen | While...Wend-Anweisung | Do...Loop-Anweisung | For...Next-Anweisung | For Each...Next-Anweisung | Exit-Anweisung


'While' oder 'Until' erwartet

Es wurde eine Do-Schleife erstellt, aber die zugehörigen Schlüsselwörter While oder Until fehlen. Für die Testbedingung einer Do-Schleife ist entweder ein While- oder ein Until-Schlüsselwort in der Testbedingungsanweisung erforderlich. Das folgende Beispiel veranschaulicht die korrekte Struktur einer Do-Schleife.

Do [{While | Until} Bedingung]
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop

Sie können auch die folgende Syntax verwenden:

Do
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop [{While | Until} Bedingung]

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die Do-Schleife alle erforderlichen Teile enthält.

Siehe auch

Durchlaufen von Codeschleifen | Do...Loop-Anweisung | For Each...Next-Anweisung | For...Next-Anweisung | While...Wend-Anweisung | Exit-Anweisung


'While', 'Until' oder Anweisungsende erwartet

Es wurde eine Do-Schleife erstellt, aber die zugehörigen Schlüsselwörter While oder Until fehlen. Für die Testbedingung einer Do-Schleife ist entweder ein While- oder ein Until-Schlüsselwort in der Testbedingungsanweisung erforderlich. Das folgende Beispiel veranschaulicht die korrekte Struktur einer Do-Schleife.

Do [{While | Until} Bedingung]
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop

Sie können auch die folgende Syntax verwenden:

Do
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop [{While | Until} Bedingung]

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass die Do-Schleife alle erforderlichen Teile enthält.
  • Schließen Sie die Do-Schleife entweder mit dem While-Schlüsselwort oder mit dem Until-Schlüsselwort ab.

Siehe auch

Durchlaufen von Codeschleifen | Do...Loop-Anweisung | For Each...Next-Anweisung | For...Next-Anweisung | While...Wend-Anweisung | Exit-Anweisung


'With' erwartet

Es wurde ein With-Block erstellt, aber dieser wurde mit dem End-Schlüsselwort statt mit der End With-Anweisung abgeschlossen. Ein With-Block muss mit einer zugehörigen End With-Anweisung abgeschlossen werden. Das folgende Beispiel veranschaulicht den korrekten Aufbau eines With-Blocks.

With Objekt
   Anweisungen
End With

So korrigieren Sie diesen Fehler

  • Wenn der With-Block mit einem End-Schlüsselwort endet, ändern Sie dieses in die End With-Anweisung.
  • Stellen Sie sicher, dass die With-Steuerstruktur alle erforderlichen Teile enthält.

Siehe auch

Verwenden von Bedingungsanweisungen | With-Anweisung | Set-Anweisung | If...Then...Else-Anweisung | Select Case-Anweisung


Datei- oder Klassenname während der Automatisierungsoperation nicht gefunden

Es wurde die GetObject-Funktion verwendet, aber ein unerkannter Klassen- oder Dateiname als Parameter angegeben. Für die GetObject-Funktion ist entweder der vollständige Pfad und Name der Datei, die das abzurufende Objekt enthält, oder der Name einer Klasse erforderlich, der im System registriert ist.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie die Namen auf Eingabefehler, und versuchen Sie es erneut.
  • Stellen Sie sicher, dass der für den class-Parameter verwendete Name mit einem im System registrierten Namen übereinstimmt.

GetObject-Funktion | CreateObject-Funktion


For-Schleife nicht initialisiert

Die Ausführungsreihenfolge im Skript bewirkte einen Sprung mitten in eine For...Next-Schleife. Dies verursacht einen Fehler, da For...Next-Schleifenzähler initialisiert werden müssen. Das folgende Beispiel veranschaulicht die korrekte Struktur einer For...Next-Schleife.

For Zähler = Start To Ende [Step Schrittweite]
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next

So korrigieren Sie diesen Fehler

  • Entfernen Sie den Sprung in die For...Next-Schleife.
  • Stellen Sie sicher, dass die For...Next-Schleife alle erforderlichen Teile enthält.

Siehe auch

Durchlaufen von Codeschleifen | For...Next-Anweisung | Do...Loop-Anweisung | Exit-Anweisung | For Each...Next-Anweisung | While...Wend-Anweisung


Bezeichner zu lang

Es wurde ein Variablen- oder Funktionsname erstellt, der zu viele Zeichen enthält. Die Grenze liegt bei 255 Zeichen.

So korrigieren Sie diesen Fehler

Wählen Sie einen kürzeren Namen.

Siehe auch

VBScript-Variablen | VBScript-Datentypen | Dim-Anweisung | Public-Anweisung | Private-Anweisung


Ungültige Zuweisung (VBScript)

Visual Basic Scripting Edition

Ungültige Zuweisung

Es wurde versucht, einen schreibgeschützten Bezeichner auf der linken Seite einer Zuweisungsoperation zu verwenden. Sie können einem schreibgeschützten Bezeichner keinen Wert zuweisen.

So korrigieren Sie diesen Fehler

Verwenden Sie schreibgeschützte Bezeichner nur auf der rechten Seite einer Zuweisungsoperation.

Siehe auch

Zuweisungsoperator (=) | Vergleichsoperatoren | Operatorvorrang | Operatoren: Zusammenfassung | Set-Anweisung


Interner Fehler

Ein interner Fehler ist aufgetreten.

So korrigieren Sie diesen Fehler

  • Wenn dieser Aufruf nicht von der Raise-Methode erzeugt wurde, wenden Sie sich an den Microsoft-Produktsupport, um die Bedingungen zu melden, unter denen die Meldung angezeigt wurde.

Raise-Methode


Ungültiges Zeichen (VBScript)

Visual Basic Scripting Edition

Ungültiges Zeichen

Es wurde versucht, Zeichen aus einem Double Byte-Zeichensatz (Double Byte Character Set, DBCS) oder andere nicht unterstützte Zeichen in einem Ausdruck zu verwenden.

So korrigieren Sie diesen Fehler

Schließen Sie die nicht unterstützten Zeichen in eckige Klammern ein.


Ungültige 'Exit'-Anweisung

Es wurde eine Exit-Anweisung innerhalb eines der folgenden Konstrukte zur Programmsteuerung verwendet:

  • With-Anweisung.
  • If...Then...Else-Anweisung.
  • Select Case-Anweisung.

Mit einer Exit-Anweisung dürfen nur die folgenden Strukturen verlassen werden:

  • Do...While-Schleife (Exit Do).
  • For...Next-Schleife (Exit For).
  • For Each...Next-Schleife (Exit For).
  • Function-Prozedur (Exit Function).
  • Sub-Prozedur (Exit Sub).

So korrigieren Sie diesen Fehler

  • Möglicherweise haben Sie Exit If, Exit With oder Exit Select nicht ordnungsgemäß verwendet.
  • Verwenden Sie Exit nicht bei If-, With- oder Select-Anweisungen.

Siehe auch

Exit-Anweisung | Do...Loop-Anweisung | For Each...Next-Anweisung | For...Next-Anweisung | Function-Anweisung | Sub-Anweisung


Ungültige Steuervariable für 'For'-Schleife

Es wurde eine For...Next-Schleife erstellt, die die gleiche Steuervariable verwendet wie eine Schleife, in die sie geschachtelt ist. Alternativ wurde möglicherweise eine For...Next-Schleife mit einer ungültigen Steuervariable erstellt. Das folgende Beispiel veranschaulicht die korrekte Struktur einer For...Next-Schleife.

For Zähler = Start To Ende [Step Schrittweite]
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next

So korrigieren Sie diesen Fehler

Benennen Sie die Steuervariable der For...Next-Schleife in eine Variable um, die innerhalb des Gültigkeitsbereichs der äußersten Schleife eindeutig ist.

Siehe auch

Durchlaufen von Codeschleifen | For...Next-Anweisung | Do...Loop-Anweisung | Exit-Anweisung | For Each...Next-Anweisung | While...Wend-Anweisung


Ungültige Zahl

Ein Wert in einem Ausdruck ist zu groß oder liegt außerhalb des Gültigkeitsbereichs.

So korrigieren Sie diesen Fehler

Verwenden Sie einen kleineren Wert.

VBScript-Datentypen | VarType-Funktion


Unzulässiger oder nicht ausreichend definierter Verweis

Es wurde versucht, die With-Anwendung für etwas zu verwenden, das kein Objekt ist. Die With-Anweisung darf nur bei Objektwerten verwendet werden, die ungleich Null sind. Das folgende Beispiel veranschaulicht die korrekte Struktur eines With-Blocks.

With Objekt
   Anweisungen
End With

So korrigieren Sie diesen Fehler

Geben Sie ein Objekt für die With-Anweisung an.

With-Anweisung


Ungültiges Bild

Die Grafikdatei, die geladen werden sollte, weist ein unerkanntes Format auf. Gültige Formate sind beispielsweise Bitmap (*.bmp), Symbol (*.ico) und Windows-Metafile (*.wmf).

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die zu ladende Grafikdatei in einem gültigen Grafikformat vorliegt.

LoadPicture-Funktion


Ungültiger Bereich in Zeichensatz (VBScript)

Visual Basic Scripting Edition

Ungültiger Bereich in Zeichensatz

Es wurde versucht, einen regulären Ausdruck mit ungültigen Zeichen zu erstellen. Reguläre Ausdrücke bestehen aus alphanumerischen Zeichen und Metazeichen.

So korrigieren Sie diesen Fehler

Verwenden Sie nur für reguläre Ausdrücke gültige Zeichen, um den regulären Ausdruck zu bilden.

Regular Expression (RegExp)-Objekt


Ungültige Verwendung des Schlüsselwortes 'Me'

Es wurde versucht, dem Bezeichner Me mit Set einen Wert zuzuweisen. Me ist ein reservierter Bezeichner und kann nicht festgelegt werden.

So korrigieren Sie diesen Fehler

Benennen Sie die Variable in einen anderen Bezeichner als Me um.


Ungültige Verwendung von Null

Es wurde versucht, den Wert einer Variant-Variable zu erhalten, die Null ist. Sie können nur den Wert von Variant-Variablen erhalten, die gültige Werte enthalten. Null ist ein Variant-Untertyp, der angibt, dass ein Datenelement keine gültigen Daten enthält.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die Variable einen gültigen Wert enthält.

IsNull-Funktion


'Loop' ohne 'Do'

Es wurde eine Do-Schleife erstellt, aber diese wurde nicht ordnungsgemäß aufgebaut. Do-Schleifen beginnen mit einer zugehörigen Do-Anweisung. Das folgende Beispiel veranschaulicht die korrekte Struktur einer Do-Schleife.

Do [{While | Until} Bedingung]
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop

Sie können auch die folgende Syntax verwenden:

Do
   [Anweisungen]
   [Exit Do]
   [Anweisungen]
Loop [{While | Until} Bedingung]

So korrigieren Sie diesen Fehler

  • Möglicherweise haben Sie versucht, eine Do-Steuerstruktur zu löschen, ohne die Loop-Anweisung zu entfernen.

  • Stellen Sie sicher, dass die Do-Schleife alle erforderlichen Teile enthält.

Siehe auch

Do...Loop-Anweisung | Exit-Anweisung | For...Next-Anweisung | While...Wend-Anweisung


Muss innerhalb einer Klasse definiert sein

Es wurde eine Property-Prozedur (Property Let, Property Set oder Property Get) erstellt, aber diese wurde außerhalb einer Class-Definition definiert. Property-Prozeduren dürfen nur innerhalb von Klassen erstellt werden.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass alle Property Let-, Property Set- und Property Get-Prozeduren innerhalb einer Class-Definition definiert werden.

Siehe auch

Property Let-Anweisung | Property Set-Anweisung | Property Get-Anweisung


Muss die erste Anweisung in der Zeile sein

Eine Codezeile mit mehreren Anweisungen enthielt eine If...Then...Else-Anweisung, aber die If...Then...Else-Anweisung war nicht die erste Anweisung in der Zeile. If...Then...Else-Anweisungen müssen die erste Anweisung in einer Zeile sein.

So korrigieren Sie diesen Fehler

Verschieben Sie die If- oder Else-Anweisung in eine neue Zeile.

If...Then...Else-Anweisung


Benanntes Argument nicht gefunden

Es wurde eine Prozedur unter Angabe eines bestimmten Arguments aufgerufen, aber in der Prozedurdefinition wurde keine Annahme eines Arguments mit diesem Namen festgelegt. Ein benanntes Argument kann nur in einem Prozeduraufruf verwendet werden, wenn es in der Prozedurdefinition angezeigt wird.

So korrigieren Sie diesen Fehler

Überprüfen Sie, ob der Name des Arguments korrekt geschrieben ist, und versuchen Sie erneut, die Prozedur aufzurufen.

VBScript-Codekonventionen


Name erneut definiert

Es wurde ein Bezeichner mit einem Namen deklariert, der bereits an einer anderen Stelle im Skript verwendet wurde.

So korrigieren Sie diesen Fehler

Benennen Sie den Bezeicher in einen Bezeichner um, der innerhalb des globalen Gültigkeitsbereichs des Skripts eindeutig ist.


Die Anzahl der Argumente muss in den Spezifikationen der Eigenschaften konsistent sein

Die Anzahl der angegebenen Argumente ist zu gering. Beim Verwenden von Property Let und Property Set muss die Anzahl der Argumente um eins höher sein als die Anzahl, die von der entsprechenden Property Get-Anweisung zurückgegeben wird.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass Property Let und Property Set über mindestens ein Argument mehr verfügen, als von Property Get zurückgegeben wird.

Siehe auch

Property Let-Anweisung | Property Set-Anweisung | Property Get-Anweisung


Das Objekt unterstützt die aktuelle Ländereinstellung nicht

Es wurde versucht, auf ein Objekt zuzugreifen, das die aktuelle Ländereinstellung nicht unterstützt. Bei einer Ländereinstellung handelt es sich um eine Reihe von Informationen, die einer bestimmten Sprache und einem bestimmten Land bzw. einer bestimmten Region entsprechen. Ein Gebietsschema beeinflusst die Sprache vordefinierter Programmierelemente und andere gebietsschemaspezifische Einstellungen. Das Gebietsschema ist in den folgenden beiden Bereichen von Bedeutung:

  • Das Codegebietsschema beeinflusst die Sprache von Elementen, beispielsweise Schlüsselwörtern, und definiert gebietsschemaspezifische Einstellungen wie z. B. Dezimal- und Listentrennzeichen, Datumsformate und die Sortierreihenfolge von Zeichen.
  • Das Systemgebietsschema beeinflusst das Verhalten von gebietsschemagebundener Funktionalität. Hierzu gehört beispielsweise die Anzeige von Zahlen oder die Konvertierung von Zeichenfolgen in Datumsangaben. Das Systemgebietsschema wird mit Hilfe der Dienstprogramme in der Systemsteuerung des Betriebssystems festgelegt.

So korrigieren Sie diesen Fehler

Überprüfen Sie, welche Ländereinstellungen das Objekt unterstützt.

CDate-Funktion


Das Objekt unterstützt diese Aktion nicht

Es wurde versucht, auf eine Methode oder Eigenschaft zu verweisen, die von diesem Objekt nicht unterstützt wird. Nicht alle Objekte unterstützen alle Aktionen.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie die Eigenschaften und Methoden, um sicherzustellen, dass keine Eingabefehler vorliegen.
  • Weitere Informationen finden Sie in der Dokumentation des Objekts.

Siehe auch

Verwenden von VBScript mit Objekten | CreateObject-Funktion | GetObject-Funktion


Das Objekt unterstützt diese Eigenschaft oder Methode nicht

Es wurde eine Eigenschaft oder Methode angegeben, die für dieses Automatisierungsobjekt nicht vorhanden ist. Nicht alle Objekte unterstützen alle Eigenschaften und Methoden.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie die Eigenschaften und Methoden, um sicherzustellen, dass keine Eingabefehler vorliegen.
  • Weitere Informationen finden Sie in der Dokumentation des Objekts.


Das Objekt ist keine Auflistung

Es wurde versucht, eine Operation, die Collection-Objekten vorbehalten ist, für ein Objekt durchzuführen, das kein Collection-Objekt ist. Einige Eigenschaften, Methoden und Operationen sind nur auf Collection-Objekte anwendbar. Ein Collection-Objekt ist ein Objekt, das eine Reihe von zusammengehörigen Objekten enthält. Die Position eines Objekts innerhalb eines Collection-Objekts kann sich bei Änderungen in der Auflistung ebenfalls ändern. Daher kann die Position aller Objekte im Collection-Objekt variieren.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie die Schreibweise des Objekt- oder Eigenschaftennamens.
  • Stellen Sie sicher, dass es sich bei dem Objekt um ein Collection-Objekt handelt.
  • Überprüfen Sie die Add-Methode, mit der das Objekt zur Auflistung hinzugefügt wurde, um sicherzustellen, dass die Syntax korrekt ist und alle Bezeichner korrekt geschrieben wurden.


Das Objekt ist nicht sicher für Erstellung

Es wurde versucht, ein Objekt zu verwenden, das nicht als sicher für die Erstellung markiert wurde. Die Menge von Objekten, die für die Erstellung sicher sind, wird vom Host bestimmt. Im Allgemeinen werden Objekte, die zulassen, dass nicht vertraute Skripte schädliche Aktionen (z. B. Zugriff auf die Festplatte) durchführen, als unsicher betrachtet.

Beispielsweise ist das FileSystemObject für die Ausführung unter Verwendung von Microsoft Internet Explorer als Client nicht sicher, aber Sie können dieses Objekt auf Ihrem lokalen Computer mit Windows Script Host verwenden.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass Sie ein sicheres Objekt verwenden.
  • Wenden Sie sich an den Entwickler des Objekts, um festzustellen, ob es eine sichere Version gibt.
  • Informationen darüber, ob ein Objekt sicher ist, finden Sie in der Dokumentation des Objekts.


Das Objekt ist nicht sicher für Initialisierung

Es wurde versucht, ein Objekt zu verwenden, das nicht als sicher für die Initialisierung markiert wurde. Die Menge von Objekten, die für die Erstellung sicher sind, wird vom Host bestimmt. Im Allgemeinen werden Objekte, die zulassen, dass nicht vertraute Skripte schädliche Aktionen (z. B. Zugriff auf die Festplatte) durchführen, als unsicher betrachtet.

Beispielsweise ist das FileSystemObject für die Ausführung unter Verwendung von Microsoft Internet Explorer als Client nicht sicher, aber Sie können dieses Objekt auf Ihrem lokalen Computer mit Windows Script Host verwenden.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass Sie ein sicheres Objekt verwenden.
  • Wenden Sie sich an den Entwickler des Objekts, um festzustellen, ob es eine sichere Version gibt.
  • Informationen darüber, ob ein Objekt sicher ist, finden Sie in der Dokumentation des Objekts.

Initialize-Ereignis


Das Objekt ist nicht sicher für Skriptingverarbeitung

Es wurde versucht, ein Objekt zu verwenden, das nicht als sicher für die Skriptingverarbeitung markiert wurde. Die Menge von Objekten, die für die Erstellung sicher sind, wird vom Host bestimmt. Im Allgemeinen werden Objekte, die zulassen, dass nicht vertraute Skripte schädliche Aktionen (z. B. Zugriff auf die Festplatte) durchführen, als unsicher betrachtet.

Beispielsweise ist das FileSystemObject für die Ausführung unter Verwendung von Microsoft Internet Explorer als Client nicht sicher, aber Sie können dieses Objekt auf Ihrem lokalen Computer mit Windows Script Host verwenden.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass Sie ein sicheres Objekt verwenden.
  • Wenden Sie sich an den Entwickler des Objekts, um festzustellen, ob es eine sichere Version gibt.
  • Informationen darüber, ob ein Objekt sicher ist, finden Sie in der Dokumentation des Objekts.


Objekt erforderlich

Das angegebene Objekt ist nicht gültig (oder wird nicht als Objekt erkannt). Für Verweise auf Eigenschaften und Methoden ist oft ein expliziter Objektqualifizierer erforderlich.

So korrigieren Sie diesen Fehler

  • Geben Sie einen Objektqualifizierer an.
  • Überprüfen Sie die Schreibweise des Objektqualifizierers.


Objektvariable nicht gesetzt

Es wurde versucht, eine Objekteigenschaft ohne ein gültiges Objekt zu verwenden. Wenn Sie die Set-Anweisung auslassen, wird beim Verweis auf das Objekt ein Fehler erzeugt.

So korrigieren Sie diesen Fehler

Geben Sie einen Verweis für die Objektvariable an.

Property Set-Anweisung


Nicht genügend Arbeitsspeicher

Es wurde der gesamte in diesem Computersystem verfügbare Arbeitsspeicher reserviert. Dies könnte die Folge sein, wenn ein dynamisch reserviertes Array zu groß geworden ist oder wenn eine große Anzahl von Objekten instanziiert wurde.

So korrigieren Sie diesen Fehler

  • Verwenden Sie die Erase-Anweisung, um den von einem dynamischen Array belegten Speicherplatz freizugeben.
  • Verwenden Sie die ReDim-Anweisung, um Speicherplatz neu zu reservieren.
  • Schließen Sie alle nicht mehr benötigten geöffneten Anwendungen, Dokumente oder Quelldateien.

Siehe auch

Erase-Anweisung | Dim-Anweisung | Nothing | ReDim-Anweisung | CreateObject-Funktion


Nicht genügend Stackspeicher

Es sind zu viele tief geschachtelte Prozeduren vorhanden. Jedes Mal, wenn im Code ein Sprung zu einer Prozedur erfolgt, wird der Inhalt ihrer lokalen Variablen auf den Stack geschoben. Der Stack ist ein Arbeitsbereich des Arbeitsspeichers, dessen Größe sich dynamisch mit den Anforderungen des ausgeführten Skripts vergrößert und verkleinert.

So korrigieren Sie diesen Fehler

  • Vergewissern Sie sich, dass Prozeduren nicht tief geschachtelt sind.
  • Stellen Sie sicher, dass sich rekursive (wiederholt sich selbst aufrufende) Prozeduren nicht zu oft selbst aufrufen.
  • Stellen Sie sicher, dass rekursive Prozeduren ordnungsgemäß abgeschlossen werden.


Nicht genügend Zeichenfolgenspeicher

Es wurde versucht, ein Zeichenfolgenobjekt zu erstellen, aber dies schlug fehl, da der gesamte Arbeitsspeicher des Systems bereits verwendet wird. Dies könnte die Folge sein, wenn ein dynamisch reserviertes Array zu groß geworden ist oder wenn eine große Anzahl von Objekten instantiiert wurde.

So korrigieren Sie diesen Fehler

  • Verwenden Sie die Erase-Anweisung, um den von einem dynamischen Array belegten Speicherplatz freizugeben.
  • Verwenden Sie die ReDim-Anweisung, um Speicherplatz neu zu reservieren.
  • Schließen Sie alle nicht mehr benötigten geöffneten Anwendungen, Dokumente oder Quelldateien.

Siehe auch

Erase-Anweisung | Dim-Anweisung | Nothing | ReDim-Anweisung | CreateObject-Funktion


Überlauf

Der Wert, der einer Variablen zugewiesen werden sollte, ist zu groß. Dieser Fehler tritt auf, wenn eine der folgenden Bedingungen erfüllt ist:

  • Das Ergebnis einer Zuweisung, Berechnung oder Datentypkonvertierung ist zu groß, um innerhalb des Wertebereichs, der für diesen Variablentyp zulässig ist, dargestellt zu werden.
  • Eine Zuweisung zu einer Eigenschaft überschreitet den Maximalwert, den die Eigenschaft annehmen kann.
  • Es wird versucht, eine Zahl in einer Berechnung zu verwenden, und diese Zahl wird in eine Ganzzahl konvertiert, aber das Ergebnis ist größer als eine Ganzzahl.

So korrigieren Sie diesen Fehler

  • Weisen Sie den Wert einer Variablen eines Typs zu, der einen größeren Wertebereich enthalten kann.
  • Stellen Sie sicher, dass die Zuweisung dem Bereich der Eigenschaft entspricht, zu der sie vorgenommen wird.

VBScript-Variablen | Err


Prozeduraufruf oder Argument nicht gültig

Eines der Argumente, die an eine Prozedur übergeben wurden, überschreitet den Bereich zulässiger Werte. Alternativ wurde möglicherweise versucht, eine Prozedur aufzurufen, die auf der aktuellen Plattform nicht gültig ist.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie den Bereich der zulässigen Werte für die Argumente der Prozedur.
  • Überprüfen Sie plattformspezifische Informationen über die Prozedur.

Siehe auch

VBScript-Variablen | Function-Anweisung | Sub-Anweisung | Call-Anweisung


'Property Set' oder 'Let' muss mindestens ein Argument enthalten

Es wurde ein Eigenschaften-Accessor zum Handle Set von Let für eine Klasse ohne Argumente angegeben.

So korrigieren Sie diesen Fehler

Fügen Sie ein Argument zum Eigenschaften-Accessor hinzu.

Siehe auch

Property Let-Anweisung | Property Set-Anweisung | Property Get-Anweisung | Class-Anweisung


Sub- oder Function-Prozedur nicht definiert

Es wurde versucht, eine Prozedur aufzurufen, die nicht vorhanden ist.

So korrigieren Sie diesen Fehler

Überprüfen Sie die Schreibweise der Prozedur, und stellen Sie sicher, dass sie richtig eingegeben wurde.

Sub-Anweisung | Function-Anweisung


Index außerhalb des gültigen Bereichs

Das Array, auf das zugegriffen werden soll, enthält weniger Elemente als erwartet. Beispielsweise tritt dieser Fehler auf, wenn versucht wird, auf das 11. Element eines Arrays zuzugreifen, das für zehn Elemente dimensioniert wurde.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass der Code eine Bereichsüberprüfung enthält, die sicherstellt, dass nicht auf Elemente über den Gültigkeitsbereich des Arrays hinaus verwiesen wird.
  • Dimensionieren Sie das Array neu mit einer Größe, die Ihren Bedürfnissen entspricht.

Siehe auch

UBound-Funktion | LBound-Funktion | Dim-Anweisung | ReDim-Anweisung


Syntaxfehler (VBScript)

Visual Basic Scripting Edition

Syntaxfehler

Es wurde eine Anweisung erstellt, die gegen eine oder mehrere der Grammatikregeln von VBScript verstößt.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie erneut die Anzahl der Elemente, aus denen ein Ausdruck besteht.
  • Suchen Sie nach falsch eingesetzten Klammern.

Siehe auch

VBScript-Datentypen | VBScript-Variablen | Konstanten | VBScript-Operatoren | Verwenden von Bedingungsanweisungen | Durchlaufen von Codeschleifen | VBScript-Prozeduren | VBScript-Codekonventionen


Syntaxfehler in regulärem Ausdruck (VBScript)

Visual Basic Scripting Edition

Syntaxfehler in regulärem Ausdruck

Die Struktur der Suchzeichenfolge verstößt gegen eine oder mehrere der Grammatikregeln für reguläre Ausdrücke in VBScript.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass die Struktur der Suchzeichenfolge des regulären Ausdrucks die Perl-Syntax regulärer Ausdrücke befolgt.

Regular Expression (RegExp)-Objekt


Typen unverträglich

Es wurde versucht, Werte inkompatibler Datentypen zu vergleichen. Beispielsweise tritt dieser Fehler auf, wenn eine Zeichenfolge mit einem numerischen Wert verglichen wird.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass die Datentypen beim Durchführen von Vergleichen übereinstimmen.
  • Konvertieren Sie einen der Werte in den Datentyp des anderen, und versuchen Sie erneut, den Vergleich durchzuführen.

VBScript-Variablen


Nicht erwartet: 'Next'

Es wurde ein For...Next- oder ein For Each...Next-Konstrukt erstellt, aber die For-Anweisung fehlt. Beispielsweise wurde möglicherweise versucht, ein For...Next-Konstrukt zu entfernen, aber die Next-Anweisung wurde nicht entfernt. Das folgende Beispiel veranschaulicht die korrekte Verwendung des For...Next-Konstrukts.

For Zähler = Start To Ende [Step Schrittweite]
    [Anweisungen]
    [Exit For]
    [Anweisungen]
Next

So korrigieren Sie diesen Fehler

  • Fügen Sie die For-Anweisung (die Steueranweisung für die Schleife) hinzu.
  • Entfernen Sie die überzählige Next-Anweisung.

Siehe auch

For...Next-Anweisung | For Each...Next-Anweisung | Durchlaufen von Codeschleifen | Exit-Anweisung


Unerwarteter Quantifizierer (VBScript)

Visual Basic Scripting Edition

Unerwarteter Quantifizierer

Beim Verfassen des Suchmusters eines regulären Ausdrucks wurde die Entsprechungszeichenfolge nicht ordnungsgemäß angegeben.

So korrigieren Sie diesen Fehler

Stellen Sie sicher, dass das Suchmuster ordnungsgemäß aufgebaut ist.

Regular Expression (RegExp)-Objekt


Nicht abgeschlossene Zeichenfolgenkonstante (VBScript)

Visual Basic Scripting Edition

Nicht abgeschlossene Zeichenfolgenkonstante

Eine Zeichenfolgenkonstante endete nicht mit schließenden Anführungszeichen. Zeichenfolgenkonstanten müssen in Anführungszeichen eingeschlossen sein.

So korrigieren Sie diesen Fehler

Fügen Sie das schließende Anführungszeichen zum Ende der Zeichenfolge hinzu.

VBScript-Konstanten


Variable ist nicht definiert

Zu Beginn des Skripts wurde die Option Explicit-Anweisung verwendet, aber später wurde versucht, einen nicht deklarierten Variablennamen zu verwenden. Wenn Sie die Option Explicit-Anweisung verwenden, müssen alle Variablen unter Verwendung der Anweisungen Dim, Private, Public oder ReDim explizit deklariert werden.

So korrigieren Sie diesen Fehler

Stellen Sie beim Verwenden der Option Explicit-Anweisung sicher, dass Sie alle Variablen unter Verwendung der Anweisungen Dim, Private, Public oder ReDim deklarieren.

Option Explicit-Anweisung | VBScript-Variablen


Die Variable verwendet einen Automatisierungstyp, der von VBScript nicht unterstützt wird

Es wurde versucht, einen nicht unterstützten Datentyp aus einer Typ- oder Objektbibliothek zu verwenden. Sie können nicht alle Variablen, die in Typ- oder Objektbibliotheken angezeigt werden, in jeder Programmiersprache verwenden.

So korrigieren Sie diesen Fehler

Verwenden Sie nur Variablentypen, die von VBScript erkannt werden.

VBScript-Variablen | VarType-Konstanten


Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung

Es wurde eine Prozedur aufgerufen, aber entweder der falsche Prozedurname oder die falsche Anzahl von Argumenten für diese Prozedur oder falsche Argumenttypen verwendet.

Die Anzahl der Argumente, die an eine Prozedur übergeben werden, muss mit der Anzahl der Parameter in der Prozedurdefinition übereinstimmen.

So korrigieren Sie diesen Fehler

Überprüfen Sie, ob die Argumentliste, die Sie an die Prozedur übergeben, mit derjenigen in der Prozedurdeklaration oder -definition übereinstimmt.

Function-Anweisung | Sub-Anweisung | Call-Anweisung


Zuweisungsoperator

Zuweisungsoperator (=)


Ungültiger Prozeduraufruf oder ungültiges Argument

In einem Prozeduraufruf wurde ein ungültiger Parameter übergeben. Ein möglicher Grund hierfür ist, dass der Parameter außerhalb des gültigen Bereichs lag oder ungültige Daten enthielt. Alternativ wurde eine Prozedur möglicherweise zu einem unerwarteten Zeitpunkt aufgerufen.

So korrigieren Sie diesen Fehler

  • Stellen Sie sicher, dass die an die Prozedur übergebenen Parameter gültig sind.
  • Stellen Sie sicher, dass die Funktion zu einem geeigneten Zeitpunkt aufgerufen wird.


Der Remoteservercomputer existiert nicht oder ist nicht verfügbar

Es wurde die CreateObject-Funktion verwendet, um ein Objekt auf einem Remotecomputer zu erstellen, aber der Aufruf ist fehlgeschlagen. Der Grund hierfür ist, dass der Remoteserver entweder nicht erreichbar war oder nicht die angegebene Klasse enthielt.

So korrigieren Sie diesen Fehler

  • Überprüfen Sie, ob der Name des Remoteservers korrekt ist.
  • Überprüfen Sie, ob auf dem Remoteserver DCOM aktiviert ist.
  • Überprüfen Sie unter Verwendung der Anwendung dcomcnfg, ob die Sicherheitsberechtigungen die Erstellung des Objekts zulassen.


Unbekannter Laufzeitfehler

Ein unerkannter Fehler ist aufgetreten.

So korrigieren Sie diesen Fehler

Eine Korrektur dieses Fehlers ist nicht möglich.


Copyright

Microsoft® Windows Script Components®

Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URL und anderer Internet-Websiteverweise, können ohne vorherige Ankündigung geändert werden. Die hierin genannten Namen von Firmen, Organisationen, Produkten, Personen, Charakteren und/oder Daten sind fiktiv und sollen in keiner Weise reale Individuen, Firmen, Produkte oder Ereignisse darstellen, falls dies nicht ausdrücklich angemerkt ist. Die Benutzerinnen und Benutzer sind verpflichtet, sich an alle anwendbaren Urheberrechtsgesetze zu halten. Ohne ausdrückliche schriftliche Erlaubnis von Microsoft Corporation darf kein Teil dieser Unterlagen für irgendwelche Zwecke vervielfältigt oder übertragen werden, unabhängig davon, auf welche Weise oder mit welchen Mitteln, elektronisch oder mechanisch, dies geschieht.

Microsoft kann Besitzer von Patenten, Patentanträgen, Marken, Urheberrechten oder anderen Rechten über geistiges Eigentum sein, die den Inhalt dieser Unterlagen betreffen. Durch die Bereitstellung dieser Unterlagen erhalten Sie keinerlei Lizenzrechte an diesen Patenten, Marken, Urheberrechten oder anderen Rechten geistigen Eigentums, es sei denn, dies wurde explizit durch einen schriftlichen Lizenzvertrag mit Microsoft vereinbart.

© 1991-2000 Microsoft Corporation. Alle Rechte vorbehalten.

Build: Thema-Version 5.6.9309.1546

Microsoft, MS, MS-DOS, ActiveX, JScript, Microsoft Press, MSDN, Visual Basic, Windows, Windows NT, Win32 und Win32s sind Marken oder eingetragene Marken der Microsoft Corporation in den Vereinigten Staaten und/oder anderen Ländern.

Weitere in diesem Dokument aufgeführte Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.


Einfache Validierung

Geben Sie einen Wert zwischen 1 und 10 ein:


Eine einfache erste Seite


Objektbeispiel

Für diese Seite ist eine Installation des Label-Steuerelements erforderlich.