Ich habe dieses Skript in "test.vbs" gespeichert:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile(workFolder &"\test.txt", 2, True)
File.Write "testing"
File.Close
Set File = Nothing
Set FSO = Nothing
Set workFolder = Nothing
Wenn ich das Skript ausführe, möchte ich den Wert der Variablen "workFolder" übergeben.
Wie kann ich das machen? Kann ich es schaffen? So etwas wie "cscript test.vbs workFolder: 'C: \ temp \'" vielleicht?
Bonusfrage: Ist es notwendig, die übergebene Variable mit "Set workFolder = Nothing" zu bereinigen, oder macht VBSCript das automatisch, wenn es beendet wird? Vielleicht ist "Set File = Nothing" und "Set FSO = Nothing" auch nicht notwendig? Bitte lassen Sie mich wissen, wenn Sie die Antwort auf diese beiden Fragen kennen.
Innerhalb von VBS können Sie mit auf Parameter zugreifen
und so weiter. Die Anzahl der Parameter:
quelle
Auf jedes über die Befehlszeile übergebene Argument kann zugegriffen werden mit: Wscript.Arguments.Item (0) Dabei ist die Null die Argumentnummer: dh 0, 1, 2, 3 usw.
In Ihrem Code könnten Sie also Folgendes haben:
Mit wscript.arguments.count können Sie Fehler einfangen, falls jemand nicht den richtigen Wert eingibt usw.
MS Technet Beispiele
quelle
workFolder
ist weder in der obigen Antwort noch in der ursprünglichen Frage als Objekt definiert,Set workFolder = Nothing
sollte also einen Fehler auslösen. 2) Da das Argument nicht mehr als einmal wiederverwendet werden muss, überspringen Sie möglicherweise die Zuweisung zurstrFolder
Variablen. 3) Würde vorschlagen,x
anstelle von0
inWscript.Arguments.Item(0)
Sie können auch benannte Argumente verwenden, die optional sind und in beliebiger Reihenfolge angegeben werden können.
Hier ist eine kleine Hilfsfunktion:
Beispiel VBS:
Anwendungsbeispiel:
quelle
Um Ihre Bonusfrage zu beantworten, lautet die allgemeine Antwort Nein. Sie müssen keine Variablen auf "Nothing" setzen, kurz .VBS-Skripte wie Ihre, die von Wscript oder Cscript aufgerufen werden.
Der Grund, warum Sie dies möglicherweise mitten in einem längeren Skript tun, besteht darin, Speicher für das Betriebssystem freizugeben, das VB sonst gehalten hätte. Heutzutage, wenn 8 GB RAM typisch und 16 GB + relativ häufig sind, ist es unwahrscheinlich, dass dies messbare Auswirkungen hat, selbst bei einem riesigen Skript, das mehrere Megabyte in einer einzelnen Variablen enthält. Zu diesem Zeitpunkt ist es eine Art Überbleibsel aus den Tagen, als Sie möglicherweise mit 1 MB oder 2 MB RAM gearbeitet haben.
Sie haben Recht, sobald Ihr .VBS-Skript abgeschlossen ist, werden alle Ihre Variablen zerstört und der Speicher wird trotzdem zurückgefordert. Wenn Sie Variablen auf "Nichts" setzen, wird dieser Prozess einfach beschleunigt und Sie können ihn mitten in einem Skript ausführen.
quelle