zu prüfen, wie vbs-Skript in windows ausgeführt wird, oder nicht?
Erstellt habe ich ein VBS-Skript in Windows. Ich werde Sie dieses Skript ausführen, um die Größe einer Datei.
Ich habe diese ausgeführt, für immer. (auch dies ist meine Voraussetzung).
Woher soll ich das wissen, wenn es in Betrieb ist oder gestoppt?
------ Exact Script starts here -----
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSO_check=CreateObject("Scripting.FileSystemObject")
do while infiniteLoop=0
----- This code is lasting for ever ----
Loop
Bin ich klar in meinem ques?
Sie können sich wahrscheinlich sehen, den Prozess im Task-Manager, wenn das Ihre Frage beantwortet.
Dank Rob. Aber was wäre den Namen des Prozesses.. gleiche wie mein Skript name?
Die vb-script-interpreter ist wscript.exe. Könnte knapp werden, ein Skript, nicht nur deine.
Danke Hans. aber wie weiß ich, ob mein script läuft oder nicht
Dank Rob. Aber was wäre den Namen des Prozesses.. gleiche wie mein Skript name?
Die vb-script-interpreter ist wscript.exe. Könnte knapp werden, ein Skript, nicht nur deine.
Danke Hans. aber wie weiß ich, ob mein script läuft oder nicht
InformationsquelleAutor shanmugamgsn | 2011-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie über die Verwendung der commandline-Eigenschaft? Ich denke, das müssen Windows XP und höher.
Beispiel:
Beachten Sie, dass wenn Sie ausführen mit " cscript-Befehl anstelle des wscript ändern Abfrage WHERE NAME = 'cscript.exe'
wie laufen diese? Wir brauchen Sie, um eine batch-Datei, enthalten diesen code ausführen??
Das ist eine Art, ja.
InformationsquelleAutor nimizen
@nimizen Antwort ist nicht korrekt. Wenn Sie ein anderes wscript ausführen, wird das Skript bereits ausgeführt wird.
@h pic Antwort ist richtig, aber ich erhalte eine Fehler mit dem "a" - array in meinem windows. Also änderte ich es ein wenig gereinigt und zu arbeiten.
InformationsquelleAutor Fabricio
Hmm, naja erstmal falls Ihr eine unendliche Schleife, script, dann werden Sie wahrscheinlich verwenden es regelmäßig einen Ordner, um einige Arbeit zu tun. Das klingt schlecht, aber in der Regel weniger Ressourcen-intensiv als Einhängen in WMI für Benachrichtigungen. Wenn Ihr laufen, Sie läuft. Das eigentliche problem ist, unterscheidende Sie von allen anderen WScript CScripts und Skripte, die Sie haben können laufen.
MS Sysinternals Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653 ist gut, zu sagen, Sie Informationen über Ihre Laufenden Prozesse. Meistens würde ich es verwenden, zu sagen, durch einen eindeutigen Befehl Linie Argumente, die Skript-Prozess gehostet wird die script.
Es gibt keinen einfachen Weg, um genau das finden, Ihr Skript, Prozess-Id von einem Skript aus. Es ist eines der wenigen Stücke von Laufzeit-Informationen nicht verfügbar gemacht werden in der Skript-Umgebung Objekt-Modell. Da Sie schon mit der Datei System Objekt vielleicht könnten Sie es Aussehen für eine dummy-Datei-Namen, die als Indikator dafür, dass es ausgeführt wird. Wenn das Skript konnte nicht erstellt werden oder die Datei öffnen, dann könnte man davon ausgehen, dass eine weitere Instanz des Skript bereits ausgeführt wird.
Haben oder einen anderen eindeutigen namens dummy-Datei, können Sie ganz einfach erstellen und das Skript löscht automatisch während der Verarbeitung ausgeführt werden. So erstellen Sie einfach eine leere Datei mit diesem Namen als test und wenn es nicht verschwindet in wenigen Sekunden wissen Sie keine Instanzen von Ihr Skript ausgeführt werden.
Auch ich dachte, dass könnten Sie starten Sie Ihr script aus einem anderen script mit Exec() gibt die Prozess-id des gestarteten Skript und dann lassen Sie den Verweis darauf, die Speicherung der Prozess-id, wo Sie es später verwenden zu können.
Dann bemerkte ich dieses posting
Meinen eigenen Prozess-ID in VBScript
Verwendet Exec() zum ausführen eines HTA-Skript, Holen Sie sich Ihre ProcessID und sehen, dass die in WMI, verwenden Sie dann das Ergebnis WMI suchen Sie den Übergeordneten Prozess' ProcessID, das sollte das script machen, Exec() und WMI-Aufrufe. Das problem mit ihm ist die HTA beenden kann, bevor WMI bekommt eine chance, es zu finden.
Meistens bekomme ich das Gefühl, dass das alles übertrieben aus irgendeinem Grund Sie denken, Sie brauchen, um zu wissen, ob das Skript ausgeführt wird. Konzentrieren Sie sich stattdessen auf die Aktion "wissen, wenn der Prozess ausgeführt wird oder nicht" führt Sie zu nehmen. Da, der bisher nicht erklärt, wir können wirklich nicht bieten Ihnen eine alternative Strategie, Sie dort zu bekommen, aber ich bin mir sicher, dass eine einfache Lösung verfügbar ist. TheFolderSpy http://venussoftcorporation.blogspot.com/2010/05/thefolderspy.html zum Beispiel wäre ein alternativer Weg, um Ihr Programm auszuführen, ohne eine Endlosschleife.
Vergessen Sie nicht, verwenden Sie einen sleep-Befehl in der Schleife, damit andere Programme die Arbeit zu erledigen. Es macht einen großen Unterschied in der Ressourcennutzung. Auch benötigen Sie nur eine BFS-Instanz, stellen Sie global, um alle Ihre code zu erstellen, die es frühzeitig in Ihrem script, bevor alle Unterroutinen.
Da Sie sich die Größe einer Datei, werden Sie wahrscheinlich prüfen es für änderungen. Ich habe festgestellt, dass ein loop mit einer kleinen WScript.Sleep 200 Verzögerung es ist gut zu erkennen, wenn eine Datei fertig ist, die geändert wird. Auf diese Weise können Sie die Datei Bearbeiten, anstatt es zu überspringen, bis die nächste Haupt-Schleife übergeben, die sollte auf 10 Sekunden oder mehr.
InformationsquelleAutor klaatu
Machte ich ein Skript und am Anfang wollte ich vermeiden, dass mehrere /zwei Instanzen des gleichen Prozesses ausgeführt. Das ist mein code, um zu beenden die neuere Instanz in Fall wird es gestartet, wenn es bereits ausgeführt wird.
Hinweis: bei Diesem Vorgang Hinweis: verhindern, dass mehrere wscripts Dateien ausgeführt werden - nur verhindert, dass die gleiche bestimmte Datei von gleichzeitigen Instanzen.
Zu angepasst, die ursprüngliche Frage... verwenden Sie einfach den block, der überprüft laufende Prozesse, wenn Sie eine der wscript Datei-Namen gleich die Skript-Datei, die Sie suchen, dann läuft es.
InformationsquelleAutor h pic