Aufruf von vbscript aus einem anderen vbscript-Datei übergeben von Argumenten
Bin ich unter den unten angegebenen Skript-Aufruf ein anderes script .Das Problem ist, dass ich zu Durchlaufen haben, die Argumente, die ich abrufen, indem Sie WScript.Argumente für das zweite Skript, die ich rufe .kann mir bitte jemand sagen, wie das zu tun.
Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")
objShell.Run "TestScript.vbs"
Set objShell = Nothing
InformationsquelleAutor user505210 | 2013-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie bauen Sie Ihre Liste von Argumenten mit der richtigen zitieren der Argumente. Sie müssen auch unterscheiden zwischen benannten und unbenannten Argumente. Auf das minimum, alle Argumente mit Leerzeichen müssen zwischen Anführungszeichen gesetzt werden. Es tut nicht weh, aber nennen Sie einfach alle Argumente, so könnte man etwas wie das hier tun:
Ich habe diesen Fehler auf der
Expected end of statement
auf der Liniearglist = arglist & " " qq(arg)
unmittelbar vor dem ersten Zeichen aufqq(arg)
Mein schlechtes. Es war ein kaufmännisches und-Zeichen sein sollen zwischen den
" "
undqq(arg)
. Behoben."Es tut nicht weh" Teil ist falsch. Zumindest die
find
Befehl erwartet, dass die Anführungszeichen in der Befehlszeile. Gibt es eine Möglichkeit, Sie zu bewahren?Können Sie erklären, warum die Unterscheidung zwischen benannten und unbenannten Argumente werden benötigt? Nur Abholung jedes
WScript.Arguments(i)
in einer Schleife erstellt die ursprüngliche Befehlszeile als gut, und es ist einfacher code.InformationsquelleAutor Ansgar Wiechers
Verwenden:
Wenn eines der Argumente Leerzeichen enthält, dann müssen Sie bettet diese in Anführungszeichen, wie wohl diese:
oder kann es akzeptieren Apostrophe (ich habe nicht versucht, diese vor kurzem).
Sie können nicht übergeben Sie Objekte, die als Argumente an die Prozesse erstellt .Laufen oder .Exec, müssen Sie senden die gewünschte info, wie/in strings konvertiert (nicht zu hart, wie Sie WScript.Argumente(.Genannt) ist eine Liste von Zeichenketten).
Die Argumente, die übergeben werden, wenn mit
.Run
sind im wesentlichen nur Zeichenfolgen, Sie können nicht übergeben Sie ein Objekt mit diesem einfachen command-line-Methode - Ereignis, obwohl das empfangende Skript speichert Sie in einem Objekt:Argumente. Wenn Sie wirklich wollten, um ein Objekt übergeben zwischen Skripts, die Sie hätten, zu serialisieren und Deserialisieren Sie aus einer separaten Datei - das ist nicht ein einfacher Prozess mit VBScript. Ich schlage vor, mit Ekkehard, dass man Sie einfach übergeben Sie strings/Werte für das zweite Skript.Dieser Frage ist Weitergabe die Argumente. Dein code ist nicht vorbei, sondern schafft seine eigenen Argumente.
InformationsquelleAutor Andy G
Fand ich die Antworten ein wenig verwirrend, also hier ist meins, was meiner Meinung zeigt, dass es sich mehr einfach. Die anderen Antworten sind nicht falsch, nur anders (leicht).
im test.vbs-Datei:
in
C:\some\path\test1.vbs
Datei:resultierende Meldungsfeld aus testen.vbs-Datei übergeben test1.vbs-Datei:
für mich funktioniert. Dank
InformationsquelleAutor mountainclimber