Szenario: Wir haben einige geplante Jobs (Control-M), die viele Prozesse ausführen und einige von ihnen führen eine .VBS-Datei (mit Parametern) aus, die die Konfiguration aus einer XML-Datei liest und sendet es an die Software eines Unternehmens, die es interpretiert und Daten in Tabellen lädt.Wscript make proccess läuft nicht im Hintergrund oder warte während das Ende
ich mit der VBS-Datei Hilfe benötigen, dass, wie oben erwähnt, nur die Anweisungen aus dem XML bekommt und an die Software mit diesen Schritten senden (auch protokolliert jeden Schritt):
Findet die XML;
Erstellt ein Objekt zur Anmeldung an der Software (mit XML-Parametern);
Dim object Set object = CreateObject("service.location.id")
Einloggen in die Datenbank (mit XML-Parametern);
object.Login("DATABASE_NAME")
Wählen Sie, welche Datenbank (XML ...);
object.SelectDatabase("DATABASE_NAME")
Sendet Befehl Last proccess
object.LoadRepositoryTable(XML)
Das Problem zu beginnen, ist, dass, da der Standard-Interpreter wscript
ist, wenn das Skript ausgeführt wird, läuft es auf dem Hintergrund und der Job Scheduler denkt Es beendet die Ausführung und startet den nächsten Job.
Ausführen des Skripts auf CMD, wenn ich es als cscript SCRIPT.vbs
starte es wartet auf den gesamten Ladeprozess zu beenden (es läuft nicht im Hintergrund), und ich möchte dies tun, wenn wscript
ausgeführt - weil da sind Viele Jobs, bearbeiten, wie sie das Skript aufrufen, ist derzeit keine Option. Dazu gehört auch das Erstellen einer .bat-Datei, die SCRIPT.vbs
als cscript
aufruft.
Ich habe auch versucht, auf "wie eine andere .vbs-Datei in einem VB-Skript auszuführen", um als cscript
auszuführen, aber nicht geschafft, es funktioniert.
Was kann ich tun?
Gibt es eine Möglichkeit wscript
auf die Last warten zu lassen?
Gibt es eine Möglichkeit, eine .vbs im selben Ordner (ohne Senden als Parameter) aufzurufen, während zwei Argumente übergeben werden?
Eine andere Option, die ich nicht sehe?
Edit: Hier ist, was ich bis jetzt gekommen bin, aber ich bekomme "erwartete Ende der Aussage".
Dim objShell
Dim arg_dir
arg_dir = Wscript.Arguments.Item(0)
Dim arg_xml
arg_xml = Wscript.Arguments.Item(1)
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "cmd /k cscript ""C:\Folder\Scripts\SCRIPT.vbs" &" "& arg_dir &" "& arg_xml"", 1, True