Führen Sie dasselbe .EXE-Programm nach dem vorherigen Abschluss erneut aus

545
4 Leave Cover

Ich habe dieses Programm "PaymentAPI.exe", das ausgeführt werden muss, dann 5 Minuten ruhen und dann mit der neuen Instanz fortfahren. Es ist wichtig, dass nicht mehr als eine Instanz gleichzeitig ausgeführt wird. Die Betriebsdauer hängt von der Netzwerkverbindung und den Daten ab.

Zum Beispiel kann es 5 Minuten oder 30 Minuten laufen. Unabhängig davon, wie lange es läuft, wird es nach Abschluss 5 Minuten warten und dann erneut laufen. Wie richte ich eine solche Einstellung in Task Scheduler ein? Vielen Dank.

0
Der Taskplaner ist dafür nicht geeignet. Es werden nur Apps zu einem festgelegten Zeitraum ausgeführt phuclv vor 5 Jahren 0

1 Antwort auf die Frage

-1
harrymc

Verwenden Sie ein Batch-Skript ( .bat) wie folgt:

:loop PaymentAPI.exe timeout 300 goto loop 

Es läuft für immer in einer Schleife und wartet 300 Sekunden zwischen den Starts.

Edit : Dieses ultra-einfache Skript wird heruntergestuft, anscheinend wegen mangelndem Verständnis dessen, was es tut.

Es basiert auf der Tatsache, dass ein Skript, das ein Programm startet, angehalten wird, solange das Programm ausgeführt wird. Um die Ausführung parallel auszuführen und das Skript nicht anzuhalten, muss das Programm mit dem Startbefehl und nicht mit einem einfachen Aufruf gestartet werden. Anschließend wird ein neues Fenster (entweder grafisch oder Konsole) geöffnet. Darauf basiert das obige Skript, um genau das zu erreichen, was das Poster verlangt.

@Albin: Beide Erweiterungen sind gleichwertig. Ich habe eine Erklärung hinzugefügt. harrymc vor 5 Jahren 0
cmd ist das bevorzugte Suffix für Win2K und höher, außerdem sind bat und cmd nicht gleichwertig Albin vor 5 Jahren 0
und vielen Dank für das Hinzufügen der Erklärung! Albin vor 5 Jahren 0
Wenn Sie dieses Skript verwenden, ist das Programm immer geöffnet und wird nicht geschlossen. Oder wird es geschlossen, wenn die vorherige Instanz abgeschlossen und bei der nächsten Instanz wieder geöffnet wurde? 4 Leave Cover vor 5 Jahren 0
@ 4LeaveCover: Die Schleife lautet: Programm startet, funktioniert, solange es dauert, stoppt, Timeout wartet 300 Sekunden, Schleife startet neu. harrymc vor 5 Jahren 0
Sie müssen `/ nobreak` zum Befehl` timeout` hinzufügen, andernfalls, wenn der Benutzer eine Taste drückt, wartet die Batchdatei nicht auf 300s. DavidPostill vor 5 Jahren 0
`bat` und` cmd` sind [nicht gleich] (https://stackoverflow.com/questions/148968/windows-batch-files-bat-vs-cmd) DavidPostill vor 5 Jahren 1
@DavidPostill: Die kleinen Unterschiede zwischen cmd und bat sind im Zusammenhang mit dem Beitrag bedeutungslos. `/ nobreak` ist auch im Kontext des im Beitrag angegebenen Taskplaners bedeutungslos. harrymc vor 5 Jahren 1
Leute, hört auf, aus kosmetischen Gründen eine funktionierende Lösung herunter zu wählen. Downvotes sind für Antworten, die das Problem nicht lösen, nicht für ein Wort, mit dem Sie in der Antwort oder den Kommentaren nicht übereinstimmen. Solche Downvotes dienen nur dazu, das Plakat vor einer wirklichen Lösung seines Problems zu erschrecken. harrymc vor 5 Jahren 0