Daten|teiler
Kopieren als Kulturtechnik

Windows Scripting mit Notepad++

4. Februar 2011 von Christian Imhorst

Damit das Skripten auch unter Windows Spaß macht benötigt man einen komfortablen Editor. Für das Entwickeln mit dem Windows Script Host (WSH) lässt einen Microsoft in diesem Punkt allerdings ganz schön im Regen stehen: Denn es gibt keinen WSH-Scripteditor aus Redmond. Mit PrimalScript und SystemScripter gibt es zwar gute von Drittanbietern für bspw. Visual Basic Script (kurz: VBScript oder VBS), eine der Sprachen für den Windows Script Host, sie sind allerdings nicht Open Source. Jetzt sollte man aber aus Verzweiflung nicht damit anfangen, mit dem Windows-Standardeditor Notepad Skripte zu schreiben. Schließlich hat Notepad nur den einen einzigen Vorteil, dass er bei jeder Windows-Installation dabei ist. Den Funktionsumfang kann man dagegen bestenfalls als sehr bescheiden bezeichnen, da er sich auf „Suchen und Ersetzen“ und automatischen Zeilenumbruch beschränkt. Diese Lücke füllt Notepad++, der kann viele Dateien gleichzeitig geöffnet halten, Sitzungen speichern, in Text mit regulären Ausdrücken suchen und ersetzen, was sich nicht nur auf gerade geöffnete Dateien beschränkt, Syntax-Highlighting für viele verschiedene Sprachen und vieles mehr. Außerdem steht er unter der freien GNU General Public License (GPL) und ist somit Freie Software. Sollte noch etwas fehlen, ist der Editor durch Plugins oder durch das Bearbeiten der Konfigurationsdateien die im XML-Format vorliegen erweiterbar.

Skripte aus Notepad++ direkt ausführen

Wenn man mit Notepad++ VBScripte für den WSH erstellt, ist es praktisch, wenn man die Skripte auch gleich aus Notepad++ heraus ausführen kann, so wie bei einer einfachen IDE. Dazu muss man die Datei shortcuts.xml bearbeiten, die unter C:\Dokumente und Einstellungen\USER\Anwendungsdaten\Notepad++ liegt. USER muss man aber durch den
eigenen Benutzernamen ersetzen. Wenn man die Datei bearbeitet, sollte Notepad++ geschlossen sein, damit die Änderungen beim Schließen von Notepad++ nicht wieder überschrieben wird. Zum Editieren nimmt man in diesem Fall den Windows-Standardeditor Notepad und fügt folgende Zeile ein:

<Command name="Run with WScript" Ctrl="yes" Alt="no" Shift="no" Key="116">%windir%\system32\wscript.exe &quot;$(FULL_CURRENT_PATH)&quot;</Command>

Startet man danach wieder Notepad++ erscheint der Eintrag „Run with WScript“ unter dem Menüpunkt „Ausführen“, oder man startet das VBScript mit der Tastenkombination „Strg + F5“. Die Umgebungsvariable %windir% zeigt dabei auf den Pfad der Windows-Installation, was C:\WINXP, C:\WINDOWS, C:\WINNT oder ähnliches sein kann, wo unter system32 die Datei wscript.exe liegen sollte.

Was man im Screenshot sehen soll ist, dass das aktuelle Skript ausgeführt wird, wenn man die Tastenkombination „Strg + F5“ drückt. Das Skript stammt übrigens aus dem Buch Windows Scripting lernen von Holger Schwichtenberg.

Genau genommen besteht WSH aus zwei Skripting Hosts, nämlich WScript und CScript. Im Befehlsumfang sind beide nahezu identisch, sie unterscheiden sich allerdings darin, wohin die Ausgabe geht. Bei WScript erfolgt die Ausführung als Windows-Anwendung, weshalb jede Ausgabe von WScript.Echo in einem Dialogfenster erscheint. Bei vielen Ausgaben kann das recht umständlich sein, weil man jedes Dialogfenster einzeln bestätigen muss, und das Skript dabei jedes Mal anhält. Bei CScript erfolgt die Ausführung von WScript.Echo dagegen in der Kommandozeile, wenn man nicht eine Ausgabemethode benutzt, die zur jeweiligen Sprache gehört, wie z.B. MsgBox() in VBScript. Um das eigene Skript aus Notepad++ heraus mit CScript zu testen, fügt man in shortcuts.xml noch folgende Zeile mit dem Standardeditor ein:

<Command name="Run with CScript" Ctrl="yes" Alt="no" Shift="yes" Key="116">cmd /K %windir%\system32\cscript.exe &quot;$(FULL_CURRENT_PATH)&quot;</Command>

Damit die Kommandozeile nicht gleich wieder schließt, wenn das Skript beendet ist, sollte man sie mit cmd /K am besten gleich direkt öffnen, um dann das Skript darin laufen zu lassen. Ansonsten ist die Code-Zeile der übrigen recht ähnlich.

Das Skript kann jetzt mit der Tastenkombination „Strg + Shift + F5“ in der Kommandozeile aus Notepad++ heraus aufgerufen werden.

Autovervollständigung aktivieren

Seit der Version 5.0 kann Notepad++ auch Autovervollständigung, die aber standardmäßig deaktiviert ist. Um sie zu aktivieren, klickt man im Menü auf „Einstellungen“, „Optionen“ und aktiviert dann im Reiter „Sicherheitskopie/Autovervollständigung“ die Autovervollständigung mit einem Häkchen. Wenn man mag, kann man auch Funktionsparameter anhaken.

Die Autovervollständigung gibt es leider nur für Visual Basic (VB) aber leider nicht für den Dialekt VBScript. Man kann aber die Datei vb.xml im Verzeichnis C:\Programme\Notepad++\plugins\APIs um die Elemente des Visual Basic Dialekts ergänzen:

Nach einem Neustart von Notepad++ kann man dann die Autovervollständigung mit den neuen Elementen benutzen, vorausgesetzt unter Sprache ist „VB“ voreingestellt.

Wenn man übrigens „Strg + Leertaste“ drückt, hat man die komplette Liste der Autovervollständigung zu der jeweiligen Sprache.

Geschrieben in Programmieren, Windows