VBScript Toolbox

Je häufiger Sie Lösungen entwickeln, desto eher merken Sie, dass sie immer wieder die gleichen oder zumindest ähnliche Funktionen programmieren. Das ist bei mir nicht anders und daher fängt früher oder später jeder Entwickler an, sich seine häufig genutzten Komponenten als Bausteine abzulegen. Das waren früher entsprechende Funktionen und Prozeduren und heute sind dies meist entsprechende Klassen.

Auch ich nutze mittlerweile eine ganze Menge von Klassen, die ich in verschiedenen Programmen wieder verwende. Einen Teil dieser Klassen beschreibe und veröffentliche ich auf dieser Seite. Vielleicht helfen Sie ihnen ja bei eigenen Projekten. Sie bin sicher, dass die Klassen nicht fehlerfrei sind und nicht alle Sonderfälle korrekt behandeln. Sie können diese daher gerne für sich selbst verbessern oder mit ihre Verbesserung zusenden.

Die Klassen sind nicht in jeder Hinsicht mit Fehlerbehandlungen versehen. Wenn Sie also z.B. einen ungültigen Dateinamen angeben, dann wird VBScript mit einem Fehler abbrechen. Alle Klassen haben einen Beispielcode am Anfang zum Test und zur Demonstration.

clsDebugWriter

Diese Klasse erlaubt mit eine einfache Implementation eigener Debuggingroutinen. VBScript kann zwar begrenzt mit dem Scriptdebugger analysiert werden, aber oft möchte ich nur eine Ausgabe der Aktionen erreichen. Diese Klasse erlaubt mir daher die Ausgabe von Informationen in eine Datei, das Eventlog oder einen Internet Explorer. Zudem kann ich über den "Level" die Details steuern bzw. Fehler und Warnungen melden. Seit dem ich diese Klasse habe, nutze ich kaum noch "WSCRIPT.ECHO" oder "MSGBOX" als Debugginghilfsmittel.

So kann ich sehr einfach sicherstellen, dass auch automatisch laufende Skripte immer einen geordneten Weg zur Debugausgaben haben und ich nicht bei jedem VBScript wieder alles neu erfinden muss.

Es kann sein, dass einige Klassen auf dieser Klasse aufbauen und objDebug als Ausgabe nutzen. Sie sollten daher in ihrem Hauptprogramm einfach objDebug als Objekt für diese Klasse definieren.

class.debugwriter.1.2.zip

clsXMLWriter

Nachdem ich die Power von XML-Dateien verstanden habe, habe ich mich natürlich geärgert. dass es gar nicht so einfach ist, aus einem VBScript eine XML-Datei zu erzeugen. Natürlich kann man mit dem MSXML-Objekt und Hantieren mit XML-Knoten eine XML-Datei erstellen. Im .NET-Framwork gibt es den XMLWriter als Hilfe und diese Klasse bildet einen Teil dieser Funktion nach. So kann ich in Skripte sehr viel einfacher XML-Dateien sequentiell erstellen.

class.xmlwriter.2.4.vbs

clsADCache

In vielen Skripten frage ich immer wieder Felder aus dem Active Directory von wechselnden Objekten ab. Wenn man nun dauernd das gewünschte Zielobjekt neu binden und abfragen muss, dann ist das sehr langsam. Diese Klasse erlaubt mir den einfachen Zugriff und "puffert" alle bisher erhaltenen Ergebnisse. Ich muss daher in meinem eigentlichen Code nicht mehr so stark darauf achten, möglichst optimal das AD zu befragen.

class.adcache.1.2.vbs

clsCSVWriter

Analog zum XMLWriter erlaubt mir diese Klasse eine einfache Ausgabe von Daten in eine CSV-Datei. Natürlich kann ich das Trennzeichen und das Umschließungszeichen vorgeben. Da ich die Felder vorher definieren muss, kann die Klasse optional den Header auch mit in die CSV-Datei schreiben. Sehr einfach ist aber das Erstellen eines Datensatzes. Ich kann ohne Rücksicht auf die Reihenfolge der Felder einfach die Daten füllen und das Klassen schreibt die Zeile dann korrekt raus.

class.CSVWriter.1.1.vbs

clsLogReader

Analog zur clsCSVWriter gibt es natürlich eine Klasse zum Einlesen von LOG-Dateien. Nach der Konfiguration, ob sich ein Header am Anfan befindet liest die Klasse die Zeilen dann zeilenweise ein und spittet die Felder auf. Der Zugriff erfolgt dann über die entsprechenden Funktionen

class.LogReader.1.3.vbs

clsLDIFReader

Bedingt durch diverse LDAP-Skripte ist diese Klasse zum Einlesen von LDIF-Dateien entstanden.

Die Klasse "clsLDIFObject" dient zum strukturierten Speichern der Daten. Diese Klasse ist sicher noch ausbaubar aber für einfache Importroutinen reicht Sie vollkommen aus.

Diese Klasse ist aktuell nicht öffentlich verfügbar.

clsValidsmtp

Dies ist eine kleine überschaubare Klasse, die einfach nur einen regulären Ausdruck zur formalen Gültigkeitsprüfung von SMTP-Adressen bereit stellt.

class.validsmtp.1.0.vbs

clsMOM

Diese Klasse nutze ich bei der Entwicklung von Skripten für den Microsoft Operation Manager. Die hier ausgeführten Skripte können nicht auf das "WSCRIPT"-Objekt zurückgreifen. Diese Klasse stellt eine Klasse bereit, die man mit "set ScriptContexr = new clsMOM" instanziert und dann im VBScript wie gewohnt mit Scriptcontext arbeitet. Soll das fertige und getestete Script dann unter MOM laufen, muss man nur diese Definition entfernen, so dass die normale Funktion gegeben ist.

Diese Klasse ist aktuell nicht öffentlich verfügbar.

clsTail

Gerade wenn ich per Skript z.B.: IIS-Logs oder die Exchange Message Tracking Logs zeitnah auswerten möchte, ist natürlich ein TAIL nützlich, der am Ende einer Datei auf neue Zeichen wartet und diese nach Abschluss einer Zeile zurück gibt.

class.tail.1.0.vbs

Diese Klasse ist natürlich sehr rudimentär.

Weitere Links

Bitte nutzen Sie die Links auf VBScript für weitergehende Informationen

Keywords:Code VBScript SDK VBS ASP