Stellen Sie sicher, dass jeweils nur eine Instanz von PowerShell Script ausgeführt wird

Ich schreibe ein Stapelskript in PowerShell v1, das zum Beispiel einmal pro Minute ausgeführt werden soll. Unweigerlich wird es eine Zeit geben, in der der Job länger als 1 Minute dauert und jetzt zwei Instanzen des Skripts ausgeführt werden und dann möglicherweise 3, usw.

Ich möchte dies vermeiden, indem ich das Skript selbst überprüfen lasse, ob bereits eine Instanz von sich ausgeführt wird. In diesem Fall wird das Skript beendet.

Ich habe dies in anderen Sprachen unter Linux getan, aber noch nie unter Windows mit PowerShell.

In PHP kann ich zum Beispiel Folgendes tun:

exec("ps auxwww|grep mybatchscript.php|grep -v grep", $output);
if($output){exit;}

Gibt es so etwas in PowerShell v1? Ich bin noch nicht auf so etwas gestoßen.

Welches dieser allgemeinen Muster ist am sinnvollsten, wenn ein PowerShell-Skript häufig ausgeführt wird?

Datei sperrenOS Task SchedulerEndlosschleife mit einem Schlafintervall

Antworten auf die Frage(6)

Ihre Antwort auf die Frage