Umgebungsvariablen und Eingabedateien in Skripts

Umgebungsvariablen und WshShell


Umgebungsvariablen sind ein Mechanismus, den man schon seit DOS-Zeiten kennt. Diese Variablen lassen sich einfach anpassen. Über die Systemsteuerung können sowohl Benutzer- als auch Systemvariablen erstellt und angepasst werden. Neben den Standardvariablen können auch eigene Variablen erstellt werden, um zusätzliche Aufgaben durchzuführen – also beispielsweise für die Parametrisierung von Skripts.

Der einfachste Ansatz für die Nutzung von Umgebungsvariablen ist der Zugriff auf die Eigenschaft Environment des WshShell-Objekts. Das Shell-Objekt liefert den Zugriff auf die Ausführungsumgebung, also die Windows-Shell. Es wird auch für die Bearbeitung der Registry und von Desktop-Einstellungen verwendet.

Über diese Eigenschaft können alle Umgebungsvariablen gelesen werden. Dabei werden verschiedene Typen unterschieden:

  • System sind Umgebungsvariablen für das Betriebssystem, die für alle Benutzer und Prozesse gelten.

  • User sind Variablen, die nur im Kontext eines Benutzers gültig sind.

  • Process sind Variablen, die nur für einen Prozess gelten und von diesem gesetzt werden.

In der Regel werden die ersten beiden Typen genutzt, wobei die meisten Umgebungsvariablen für das System definiert sind. Dort gibt es viele vordefinierte Variablen, mit denen sich beispielsweise das Betriebssystem und dessen Version, der Prozessor oder das Windows-Systemverzeichnis ermitteln lassen. Diese Informationen können in Skripts eingesetzt werden, wenn beispielsweise bestimmte Codeteile nur mit bestimmten Betriebssystemversionen genutzt werden können.

Listing 1: Der Zugriff auf Umgebungsvariablen
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnvSys = WshShell.Environment("SYSTEM")
Set WshEnvUsr = WshShell.Environment("USER")
WScript.Echo "Anzahl der Prozessoren: " & WshEnvSys("NUMBER_OF_PROCESSORS")
WScript.Echo "Temporäre Dateien des Benutzers: " & WshEnvUsr("TEMP")


Mit der ersten Anweisung aus Listing 1 wird ein Objekt der Klasse WshShell erzeugt. Damit kann auf die Arbeitsumgebung zugegriffen werden. Über die beiden folgenden Anweisungen wird die Eigenschaft Environment ausgelesen, und zwar einmal für das System und einmal für den Benutzer. Anschließend werden die Werte von jeweils einer Variablen ausgegeben.

Alternativ dazu könnten die Informationen auch in weitere Variablen geschrieben und beispielsweise bei Bedingungen verwendet werden. Dazu würde eine Anweisung in der Form

tmpDir = WshEnvUsr("TEMP")

verwendet werden. Das Konzept ist relativ einfach und daher schnell umsetzbar, hat aber den Nachteil, dass die Umgebungsvariablen jeweils über die Systemsteuerung angepasst werden müssen.