Good to Know Database

Mehrere Visual Basic Scripte sequenziell ausführen


Wie Sie in einem Visual Basic Script ein weiteres Visual Basic Script aufrufen, können Sie im Artikel Ein VBScript aus einem VBScript aufrufen nachlesen. Des weiteren ist im Artikel Programm ausführen und das Beenden abwarten beschrieben, wie Sie ein Programm ausführen können und anschließend das Beenden des Prozesses abwarten können.

Auf dieser Seite möchte ich ein Visual Basic Script vorstellen, welches weitere Visual Basic Scripte sequentiell ausführt. Dazu werden zuerst drei einfache Skripte erstellt, welche zur Demonstration dienen sollen und nur eine Ausgabe erzeugen.

vbscript1.vbs:

' Print notification
WScript.Echo("Running vbscript1.vbs")

' Quit Visual Basic Script
WScript.Quit()

vbscript2.vbs:

' Print notification
WScript.Echo("Running vbscript2.vbs")

' Quit Visual Basic Script
WScript.Quit()

vbscript3.vbs:

' Print notification
WScript.Echo("Running vbscript3.vbs")

' Quit Visual Basic Script
WScript.Quit()

Das folgende Listing zeigt das Visual Basic Script, welches die drei Skripte vbscript1.vbs, vbscript2.vbs und vbscript3.vbs nacheinander ausführt und jeweils das Beenden des aktuell ausgeführten Skriptes abwartet bevor das nächste VBScript aufgerufen wird.

Option Explicit

' Declaration of variables
Dim objWScriptShell
Dim strRunScript
Dim objWMIService
Dim colEvents
Dim objEvent

' Set Visual Basic Scripts for execution
Dim strScriptArray(2)
strScriptArray(0) = "vbscript1.vbs"
strScriptArray(1) = "vbscript2.vbs"
strScriptArray(2) = "vbscript3.vbs"

For Each strRunScript In strScriptArray
  ' Create WScript Shell object
  Set objWScriptShell = WScript.CreateObject("WScript.Shell")

  ' Execute Visual Basic Script
  objWScriptShell.Run "wscript " & strRunScript

  ' Connect to Windows Management Instrumentation (WMI) object using a moniker
  Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

  ' Execute a query to monitor process deletion
  Set colEvents = objWMIService.ExecNotificationQuery("Select * From __InstanceDeletionEvent " _
  & "Within 1 Where TargetInstance ISA 'Win32_Process' And TargetInstance.Name = 'wscript.exe'")

  ' Wait for process deletion event
  Set objEvent = colEvents.NextEvent

  ' Deallocate event object
  Set objEvent = Nothing

  ' Deallocate WMI object
  Set objWMIService = Nothing

  ' Deallocate WScript Shell object
  Set objWScriptShell = Nothing
Next

' Quit Visual Basic Script
WScript.Quit()


Dieser Eintrag wurde am 09.02.2013 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_29_2093.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer