Montag, 28. Februar 2011

Februar 2011 / WSH

WSH

Wir begannen mit dem 2. Semester des 2. Schuljahres und daher begannen wir auch mit den neuen Modulen.
Im Modul 122 - Abläufe mit Skripts/Makros automatisieren lernten wir den WSH kennen.
WSH bedeutet Windows Script(auch Scripting) Host und dient dazu Funktionen unter Windows zu Automatisieren. Der Windows Script Host stellt JScript und VBScript als Programmiersprachen zur Verfügung, deckt die Funktionen der älteren Batch-Scripts ab und ermöglicht die Steuerung von einigen Programmen wie dem Internet Explorer, Datenbanken oder den Office-Programmen.
In der Schule begannen wir vorerst mit VBScript zu arbeiten. Daher sind die Dateiendungen unserer Scripts auch ".vbs".
Ich habe bereits 1 mal über VBScript geschrieben. Jedoch hatte ich damals keine Ahnung was genau wie funktionierte, welche Zeile genau welche Funktion hatte usw.
Ausserdem programmierte ich damals für Windows CE, was nur eine sehr abgespeckte VBScript Version zur Verfügung stellte.
Im Unterricht begannen wir jedoch komplett bei 0 und wir lernten das Grundlegende im Selbststudium.

Das WScript-Objekt
Das WScript-Objekt ist das einzige Objekt, welches man direkt verwenden kann, ohne dieses zuerst instanziieren zu müssen.
Dieses Objekt hat mehrere Methoden und Eigenschaften, so wie eigentlich fast jedes andere Objekt auch.

Die Methode .echo() hat eine sehr einfache Funktion: Sie gibt eine Meldung aus.
Dabei muss ein Parameter übergeben werden. Also entweder ein Text, eine Variable oder eine Eigenschaft. Das sieht dann so aus:
Wscript.echo Wscript.Name oder Wscipt.echo "Test"
Dabei kann der Parameter auch in Klammern Stehen.

Nun zu der Eigenschaft die ich bereits verwendet habe, Name
Verwende ich diese Eigenschaft als Parameter bei der Methode .echo gibt die Meldung "Windows Script Host" aus.
Nun schön damit können wir jedoch noch nicht besonders viel anfangen.

Das FileSystemObject
Das nächste Objekt dass wir kennen lernten war das FileSystemObject und es war mir nicht ganz unbekannt. Im Gegensatz zum Wscript-Objekt muss dieses Objekt, wie alle anderen auch, instanziiert werden, dafür hat es aber keine "direkten" Eigenschaften sondern nur Methoden, die Eigenschaften von File-Objekten liest.
Instanziieren bedeutet dass das Objekt "Kopiert" wird, dafür Speicherplatz reserviert wird und einem Namen übergeben wird, damit man es leichter ansprechen kann.
Das FileSystemObject instanziiert man folgendermassen:
Dim Fso
Set Fso = CreateObjext("Scripting.FileSystemObject")
Mit dem Befehl Dim deklariere ich Fso als Variable. Der Name wird standardmässig für das FileSystemObject verwendet und dient zur Übersichtlichkeit.
Danach instanziiere ich das Objekt mit dem Set-Befehl.

Nun kann ich über Fso alle Eigenschaften und Methoden des FileSystemObjects aufrufen.
Dazu ein kleines beispiel mit der Methode .CopyFile()
Mit folgender Zeile kopiere ich eine Textdatei und benenne Sie um.
Fso.CopyFile ("C:\Textdatei.txt", "C:\Neue Textdatei.txt")
Der erste Parameter übergibt das zu kopierende File und der 2. den Zielpfad + Namen.

Die GetFile() Methode ist eine Weitere Methode, mit dem man eine Datei einer Variabel zuordnen kann. So sichert man den Speicherplatz und den Zugriff auf die Datei.
Das Objekt das daraus entsteht heisst File Objekt.
Daher muss auch hier wieder ein Objekt instanziiert werden.
Dim f
Set f = Fso.GetFile("C:\Textdatei.txt")
Nun kann man viel einfacher auf die Datei zugreifen und muss nicht über das FileSystemObject gehen.
Möchte man die Datei löschen kann man das nun so:
f.Delete
Über das FileSystemObject müsste man das so machen:
Fso.DeleteFile("C:\Textdatei.txt")

Wie bereits erwähnt, kann man über das FileSystemObject auch Eigenschaften von File-Objekten auslesen. Natürlich geht das ganze wieder einfacher, wenn man direkt über das File-Objekt gehen kann.

Keine Kommentare:

Kommentar veröffentlichen