Umgebungsvariablen und Eingabedateien in Skripts

Anschließend wird ein Dictionary-Objekt erzeugt. Diese Objektklasse wird für Aufzählungen verwendet und kann wie ein Array genutzt werden. Außerdem muss ein Objekt für den Zugriff auf das Dateisystem erstellt werden. Mit diesem wird nun eine Textdatei zum Lesen geöffnet, wobei der Name der Datei in diesem Fall fest kodiert ist. Er könnte beispielsweise über einen Parameter beim Aufruf angegeben werden.

Listing 4: Skript zur Verarbeitung der Liste von Servern
(Quelle: Microsoft)
Const ForReading = 1
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("c:\skripts\servers.txt", ForReading)
i = 0
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
objDictionary.Add i, strNextLine
i = i + 1
Loop
For Each objItem in objDictionary
StrComputer = objDictionary.Item(objItem)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer& "\root\cimv2")
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Service")
Wscript.Echo strComputer, colServices.Count
Next

Die Datei wird nun zeilenweise ausgelesen, wobei als Endebedingung für die Schleife die Eigenschaft AtEndOfStreamdes Dateisystemobjekts verwendet wird. Für die Navigation wird die Methode ReadLine verwendet, die automatisch von Zeile zu Zeile springt. Nach dem Einlesen einer Zeile wird diese in das Dictionary-Objekt geschrieben. Die Verarbeitung erfolgt über die zweite Schleife. Innerhalb dieser Schleife wird für jedes Element in dem Dictionary-Objekt jeweils die Anzahl der Dienste ermittelt und ausgegeben (Bild 3).

Bild 3: Die Ausgabe der Anzahl an Diensten auf den Servern.
Bild 3: Die Ausgabe der Anzahl an Diensten auf den Servern.

Dieses Skript lässt sich nun noch „verfeinern“, um beispielsweise Dateien mit der klassischen .ini-Struktur einzulesen, bei der es Abschnitte und innerhalb der Abschnitte Parameter gibt. Dazu können beispielsweise mehrere Dictionary- Objekte für die verschiedenen Abschnitte genutzt werden, aber auch Arrays. Beim Einlesen muss analysiert werden, ob in der Textdatei ein neuer Abschnitt definiert wird und ob es sich um einen Eintrag handelt oder um eine Leerzeile. Ein Beispiel für ein solches Skript wird in einer der folgenden Ausgaben von Expert’s inside Windows NT/2000 vorgestellt.