Die Batch-Dateien treten ab, denn hier kommen die Windows-Scripts!

Die DOS-Batch-Dateien haben ausgedient. Mit dem Windows-Scripting-Host hält eine Automatisierungslösung auf den Windows-Plattformen Einzug, die um Dimensionen leistungsfähiger ist als die bejahrten DOS-Stapeldateien.

Von Matthias Schüssler. Windows 98 bringt, so könnte man ungnädig sagen, nicht viel Neues. Aber das Verdienst des Betriebssystem-Updates ist es, all die vielen neuen Technologien zusammenzusammeln und unter einen Hut zu bringen. Dem Windowianer bleibt es erspart, alles selbst downzuloaden und separat zu installieren. So sind die Scripts von Anfang an mit dabei!

Auch für NT 4 und Windows 95

Auch Windows NT und 95 kann scripttauglich gemacht werden. Besorgen Sie sich den Windows-Scripting-Host von www.computermarkt.ch – und kommen Sie so auch ohne Windows 98 in den Script-Genuss!

Quantensprung

Der Windows-Scripting-Host (WSH) stellt im Vergleich zu den DOS-Stapeldateien ein veritabler Quantensprung dar. Und das aus verschiedenen Gründen:

Man ist nicht mehr an die äusserst limitierte Syntax aus mittelalterlichen DOS-Zeiten gebunden, sondern erhält die Funktionalität einer modernen, mächtigen Hochsprache. Und obendrein besteht Wahlfreiheit. Programmieren Sie Ihre Scripts in JavaScript, Visual Basic, Perl oder einer anderen, Ihnen genehmen Sprache.

Weiter steht nicht nur das Betriebssystem als Tummelfeld für Ihre Aktivitäten zur Verfügung, auch scriptfähige Anwendungen können Sie für Ihre Zwecke eingespannen. Scriptfähig sind beispielsweise alle Microsoft-Office-Anwendungen. Kein Problem also, mittels Script Excel zu starten, Daten aus einem externen File in eine Tabelle zu übernehmen und dann gleich in einem Diagramm auszuwerten und zu drucken – und das alles mit einem Doppelklick.

Sie können Scripts nicht nur direkt auf Ihrem Windows-System abspielen, sondern auch in Ihre HTML-Seiten einbauen oder serverseitig ausführen. Dies ermöglicht dynamische Web-Inhalte (DHTML). In Kombination mit der neuen Web-Ansicht von Verzeichnissen besteht so die Möglichkeit, beim Öffnen eines Verzeichnisses ein Script auszuführen und Resultate auf der dem Verzeichnis hinterlegten HTML-Seite anzuzeigen.

Was braucht’s, um Scripts zu schreiben?

Zum Schreiben von Scripts brauchen Sie – ganz analog zu den Stapeldateien unter DOS – nicht mehr als einen Editor, z. B. den Windows-Notepad.

Das Debuggen, also die Fehlersuche in selbstgeschriebenen Scripts ist dabei bedeutend komfortabler als bei den Batchdateien. WHS liefert nämlich ausführliche Fehlermeldungen zurück, womit der Fehler schnell gefunden und eliminert ist – so zumindest in der Theorie. In der Praxis bleiben die Frustrationen, wie bei jeder Programmierarbeit, leider nicht aus.

Was brauchen Sie sonst noch? Natürlich eine Dokumentation der Scriptsprache, die Sie zu verwenden gedenken. Wenn es VisualBasic sein soll, werden Sie bei Microsoft fünding; ausserdem haben wir die VBScript-Referenz auf unsere Homepage gestellt. Besitzer von Office 97 können ausserdem die Hilfe für Visual Basic für Applikationen (VBA) verwenden. Die Syntax von VBA ist weitgehend identisch mit VBScript, wobei es zu bedenken gilt, dass VBS nicht ganz alle Objekte und Befehle unterstützt – der Sicherheit zuliebe!

Ein freundliches Script begrüsst Sie und startet Excel

Wie das in der Praxis klappt, möchte ich Ihnen anhand zweier Beispiele zeigen. Ein erstes Script in Java begrüsst Sie freundlich, und zwar mit einem der Tageszeit angepassten Gruss und fragt, ob Sie Excel starten möchten. Falls ja, aktiviert das Script Excel und schreibt das Datum in die erste Zelle eines neuen Datenblatts. Nicht, dass das besonders spannend wäre – aber so interessant wie das vielzitierte «Hello world» ist es allemal. Beachten Sie: Aus Gründen des Layouts müssen wir Zeilen umbrechen, wo im Script kein Umbruch (harter Zeilenwechsel) stattfinden darf. Dies wird durch Einrückung gekennzeichnet. Eingerücktes gehört also noch zur vorherigen Zeile:

[Laden Sie das Script bitte hier herunter.]

Sie sehen: Damit sind richtige Programme möglich. Sie können Variablen und Funktionen definieren und verwenden, und Sie haben Zugriff auf komplexe Objekte, wie dem Excel-Objekt, das durch Excels-VBA-Objekt-System zur Verfügung gestellt wird. Der einzige Unterschied zu richtigen Programmen ist die Tatsache, dass die Scripts nicht kompiliert, sondern mit einem Just-in-time-Kompiler ausgeführt werden.

Automatisch Mails holen

Das zweite Beispiel hat etwas mehr Praxiswert. Die Ausgangslage ist die folgende: Als E-Mail-Client benutzen Sie Outlook Express von Windows 98. Sie stellen die Verbindung zum Internet jeweils manuell über das DFÜ-Netzwerk her; Outlook darf sich alleine nicht zum Provider durchwählen. Nun möchten Sie aber ein zweites Ikönchen auf Ihrem Desktop, welches vollautomatisch eine Verbindung zum Provider aufbaut, die Mails holt und danach aufhängt. Dies ist mit Scripts einfach zu lösen. Das Programm funktioniert in vier Schritten. Als erstes werden die Registry-Werte der normalen Konfiguration gesichert. Dann werden die notwendigen Keys für automatisches Wählen belegt. In einem zweiten Schritt startet das Script Outlook und wartet auf dessen Beendigung. In einem dritten Schritt stellt Outlook die ursprüngliche Konfiguration wieder her. Das Script ist in VBS geschrieben, und es demonstriert ausserdem, dass man von des Scripts aus die Registry editieren kann. Auf diese Weise wird das Verhalten von Outlook Express beeinflusst.

Damit das Script funktioniert, muss Outlook Express so konfiguriert sein, dass es alleine eine Internet-Verbindung aufbauen kann, d. h. unter Extras – Optionen – DFÜ – «DFÜ-Verbindung herstellen» muss eine funktionierende Verbindung eingetragen sein.

[Laden Sie das Script bitte hier herunter.]

Falls Sie das Script verwenden möchten, müssen Sie bei der Konstanten OutlookLoc den Pfad zu Ihrer Outlook-Installation angeben. Beachten Sie bitte, dass Pfade, welche Leerschläge enthalten, vom Script nicht gefunden werden.

Die Zeile On Error Resume Next bedeutet, dass bei einem Fehler keine Fehlermeldung angezeigt wird, sondern mit der nächsten Zeile weitergefahren wird. Falls Sie mit dem Script experimentieren möchten, empfiehlt es sich, diese Zeile auszukommentieren (durch vorangestellte Kommentarkennung REM deaktivieren) – dadurch werden Ihnen Fehler angezeigt und nicht einfach unterschlagen.

Geduld ist angesagt

Das true im Befehl AppShell.Run OutlookLoc, vbNormalFocus, true bewirkt, dass das Script auf die Beendigung von Outlook Express wartet, bevor es die ursprünglichen Werte wieder in die Registry zurückschreibt. Dies ist notwendig, weil sonst die alten Werte restauriert würden, bevor Outlook überhaupt zum Auslesen derselben gekommen ist – und damit ist der Effekt natürlich gleich Null. Sie dürfen für dieses Script kein Zeitlimit definieren (vergl. Kasten «Neue Erweiterungen») – sonst wird das Script abgebrochen, bevor es die Werte wiederherstellen konnte.

Falls Sie Lust haben, selbst aktiv zu werden und das Script weiterzuentwickeln – tun Sie es! Sie brauchen den Code übrigens nicht abzutippen. Sie finden das Script GETNEWMAIL.VBS auf der M+K Computermarkt-Homepage.

Mehr Luxus für GetNewMail.VBS

Eine Möglichkeit, das Script zu erweitern, bestünde beispielsweise darin, anfangs abzufragen, ob Outlook Express bereits ausgeführt wird. Falls ja, brechen Sie die Ausführung des Scripts mit einer Meldung im Stil von «Outlook Express wird bereits ausgeführt. Beenden Sie das Programm und führen Sie das Script erneut aus» ab. Ob ein Programm schon läuft, ist normalerweise nicht ganz einfach festzustellen und über ein OLE-Automation-Objekt oder allenfalls über Windows-API-Aufrufen möglich. Im Fall Outlook Express macht es uns Microsoft aber leicht. Das Programm schreibt beim Startup einen Schlüssel in die Registrierungsdatei und löscht denselben beim Beenden wieder. Sie müssen also lediglich nach dem Schlüssel HKEY_CURRENT_USERSoftwareMicrosoftOutlook ExpressRunning Ausschau halten. Falls das Script den Schlüssel findet, befindet sich Outlook Express bereits im Speicher.

Wo gibt’s mehr Infos?

Der Informationsbedarf für solche Programmierprojekte ist erfahrungsgemäss ziemlich gross. Falls Sie nicht mehr weiterwissen, ist die gesuchte Information sicherlich im Internet zu finden – denn es ist relativ selten, dass man als erster auf ein Problem stösst.

Eine erste Anlaufstelle für generelle Infos ist die Microsoft-Site. Unter microsoft.com/scripting finden Sie u. a. Demoscripts und Antworten auf häufig gestellte Fragen. Mit spezifischen Problemen wagen Sie sich mit Vorteil in die passende Newsgroup: VBScript: microsoft.public.scripting.vbscript; JScript: microsoft.public.scripting.jscript; Scripting Host: microsoft.public.scripting .wsh.

Für das Suchen in Newsgroup-Beiträgen empfiehlt sich auch eine Volltextsuchmaschine. Mit Déjà-News (http://www.dejanews.com/) können Sie nach einem spezifischen Begriff fahnden. Damit Sie keine ellenlange Ergebnisliste erhalten, sondern eine, die möglichst viele relevante Beiträge enthält, geben Sie ein spezifisches Schlüsselwort an. In den meisten VBScripts wird beispielsweise das Objekt WScript verwendet. Nennen Sie dieses in Ihrer Abfrage, haben Sie gute Chancen, dass die Resultateliste nur VBScripts aufführt.

Sprachunabhängige Scripts

Der Windows-Scripting-Host (WSH) ist ein sprachunabhängiger Script-«Gastgeber» für 32-bit-Windows-Umgebungen. Es gibt Parser für Visual Basic, Scripting Edition und Java Script von Microsoft. Von Drittanbietern sind Parser für Perl, TCL, REXX (OS/2), und Python erhältlich. Auch die alten DOS-Batch-Dateien werden weiterhin unterstützt.

WHS kann entweder von einem Windows-basierten Programm (WSCRIPT.EXE) oder an der Kommandozeile ausgeführt werden (CSCRIPT.EXE). Neben dem WSH kann auch der Internet-Explorer und der Microsoft Internet-Information-Server (IIS) als Script-Host fungieren. IE kann ausserdem in HTML-Seiten eingebettete Scripts interpretieren (clientseitig). Mit dem IIS ist es möglich, Scripts auf Webservern bereitzustellen, ermöglicht so serverseitiges Scripting. Mit dem WSH können Scripts direkt vom Desktop mittels Doppelklick aus gestartet werden. Ideal sind diese wenig speicherhungrigen Befehlssammlungen für nichtinteraktive Aufgaben: Logon-Scripts, Adminstration und automatisierte Abläufe.

Neue Erweiterungen

Mit dem Windows-Scripting-Host werden folgende Dateitypen im System registriert:

  • .JS Java-Script-Datei.
  • .VBS Visual-Basic-Script-Datei.
  • .WHS Voreinstellungen für Scriptdateien.

WHS-Dateien sind vergleichbar mit den PIF-Dateien, welche Voreinstellungen für DOS-Programme speichern. Eine WHS-Datei wird automatisch erzeugt, wenn Sie im «Script»-Reiter des Eingenschaften-Dialogs (Alt+Eingabe oder «Eingenschaften» im Kontextmenü)einer Scriptdatei Änderungen vornehmen

Sie können WSH-Dateien aber auch manuell erstellen. Beachten Sie dazu: WSH-Files haben dienselben Namen wie das entsprechende Script, für das sie die Optionen bereistellen. Dem Administrator bieten WHS-Dateien weitreichende Kontrolle über die Ausführung der Scripts.

Entwickeln Sie mit!

Scripts für den Microsoft Windows Script Host werden in «M+K Computermarkt» auch weiterhin ein Thema bleiben. Wir möchten Ihnen interessante Scripts für aussergewöhnliche und alltägliche Probleme vorstellen. Falls Sie eigene Scripts entwickelt haben und sie den M+K-Lesern vorstellen möchten, schicken Sie uns ein E-Mail.

Wenn Sie ein interessantes Windows-Problem kennen, das sich mit einem Script lösen lassen könnte, dann schicken Sie uns einen kurzen Beschrieb des Problems. Falls die Knacknuss von allgemeinem Interesse ist, werden wir versuchen, eine Lösung zu entwickeln. Haben Sie aber Verständnis dafür, dass wir keine Garantie für eine Veröffentlichung oder einen Lösungsansatz für Ihr Problem geben können.

Die Adresse für Ihre Scripts und Probleme:

Digipress GmbH, Matthias Schüssler, Flüelastrasse 47, 8047 Zürich, E-Mail: schuessler@digipress.ch.

Die Referenz zu VisualBasic Script steht als Help-Datei zur Verfügung.

Auch Internet-Explorer kann als Host fungieren. Hier wurde ein voll funktionisfähiger Taschenrechner mittels Java-Script in eine HTML-Seite implementiert.

Zum Erstellen und Bearbeiten von Scripts für Windows genügt ein Texteditor. Eine separate Entwicklungsumgebung ist nicht vonnöten.

Hoppla, ein Bug! WSH gibt brav die Zeile aus, in der der Fehler gefunden wurde. Nur schade, dass Notepad nicht ebenfalls Zeilen und Spalten zählt!

Microsoft informiert wie gewohnt in aller Ausführlichkeit. Schauen Sie nach unter http://microsoft.com/scripting Es gibt einige Newsgroups zum Thema WSH. Dort werden Ihre Fragen (meist) beantwortet – teilweise von Microsoft-Entwicklern.

Quelle: M+K Computer-Markt, Samstag, 1. August 1998

Rubrik und Tags:

Metadaten
Thema: Windows 98
Nr: 241
Ausgabe: 98-8
Anzahl Subthemen: 4

Obsolete Datenfelder
Bilder: 8
Textlänge: 1500
Ort:
Tabb: FALSCH