Über die Eingabeaufforderung: Wie kann ich den Zeitpunkt für die Beendigung eines Programms festlegen?

Über die Eingabeaufforderung: Wie kann ich den Zeitpunkt für die Beendigung eines Programms festlegen?

Ich möchte einen Weg finden, mit der Eingabeaufforderung ein Programm in, sagen wir, 60 Sekunden zu schließen. Ähnlich wie beim zeitgesteuerten Herunterfahren des Computers (shutdown /s /t) und dem Taskill.

Irgendwelche Ideen? Ist das möglich?

Antwort1

Wie kann ich ein Programm in, sagen wir, 60 Sekunden schließen?

Mit pingoder können Sie timeouteine Zeitverzögerung erzeugen.

  • timeoutist in Windows XP nicht verfügbar.
  • timeoutgibt Ihnen einen Countdown.

pingLösung

Um nach 60 Sekunden zu beenden, notepadverwenden Sie den folgenden Befehl:

ping 127.0.0.1 -n 61 > nul && taskkill /im notepad.exe

Notiz:

  • Sie benötigen 61 Pings, da zwischen den Pings eine Verzögerung von 1 Sekunde besteht ping.

Beispiel:

F:\test>time /t && ping 127.0.0.1 -n 61 > nul && taskkill /im notepad.exe && time /t
17:56
SUCCESS: Sent termination signal to the process "notepad.exe" with PID 8084.
17:57

Eine Verzögerung kann auch durch den PING-Befehl mit einer Loopback-Adresse erzeugt werden, wobei zwischen jedem aufeinanderfolgenden Ping eine Verzögerung von 1 Sekunde auftritt. In Tests verbraucht PING weniger Prozessorzeit als Sleep.exe oder Timeout.exe, wodurch andere Prozesse im Hintergrund ausgeführt werden können. Der PING-Befehl kann nur mit Strg-C unterbrochen werden. Quelle: Clay Calvert (Usenet 2001.)

zB für eine Verzögerung von 40 Sekunden:

PING -n 41 127.0.0.1>nul

QuelleAuszeit


timeoutLösung

Um nach 60 Sekunden zu beenden, notepadverwenden Sie den folgenden Befehl:

 timeout /t 60 && taskkill /im notepad.exe

Anmerkungen:

  • timeoutist unter Windows XP nicht verfügbar.
  • timeoutist schlecht implementiert. Wenn Sie ein „Timeout 1“ ausführen, wird bis zur „nächsten Sekunde“ gewartet, was in 0,1 Sekunden der Fall sein könnte. Versuchen Sie, „Timeout 1“ ein paar Mal auszuführen und beobachten Sie den Unterschied in der Verzögerung. Bei 5 Sekunden oder mehr ist es vielleicht keine große Sache, aber bei einer Verzögerung von 1 Sekunde funktioniert es schlecht.

Beispiel:

F:\test>time /t && timeout /t 60 && taskkill /im notepad.exe && time /t
18:07

Waiting for  0 seconds, press a key to continue ...
SUCCESS: Sent termination signal to the process "notepad.exe" with PID 5412.
18:08

Weitere Informationen

Antwort2

Versuchen Sie es mitAufgabenplanung.

  1. Konfigurieren Sie die Ereignisprotokollierung so, dass ein Ereignis ausgelöst wird, wenn das gewünschte Programm gestartet wird.
  2. Konfigurieren Sie eine geplante Aufgabe, die ausgeführt wird, wenn das bestimmte Ereignis aus Nr. 1 protokolliert wird. In der geplanten Aufgabe kann eine Verzögerung eingestellt werden (in Ihrem Fall 60 Sekunden) und beliebige Befehle/Skripte können gestartet werden.

Antwort3

Probieren Sie mein Beispiel aus:

choice /t 5 /d a /c ab /n >nul & taskkill /im URprocess.exe

Erklärung: „choice“ wartet 5 Sekunden und wird beendet, dann schließt Taskkill „URprocess“

Antwort4

Ich verwende scriptrunner.exe, das mit Windows 10 geliefert wird. Ich musste nach meinem suchen, es war nicht im Pfad. Dokumentation finden Sie unterhttps://ss64.com/nt/scriptrunner.html

Ich konvertiere oft eine Menge E-Books ins EPUB-Format, aber die Konvertierung bleibt oft auf halbem Weg hängen. Also habe ich einen Stapel mit dem folgenden Inhalt erstellt.

@echo off
for /F "delims=" %%a in (files.txt) do (
  if not exist "%%a.epub" ScriptRunner.exe -appvscript "c:\Program Files (x86)\calibre2\ebook-convert.exe" "%%a" "%%a.epub" -appvscriptrunnerparameters -timeout=60
  if exist "%%a.epub" del "%%a"
)

Files.txt enthält alle Dateien mit Pfaden, die konvertiert werden müssen. Ich verwende ebook-convert.exe von Calibre, um die Konvertierung durchzuführen. Das Argument -timeout=60 ist die Zeit in Sekunden (hier 60), nach der die Ausführung beendet wird. Wenn die Konvertierung früher fertig ist, wird die nächste Zeile ausgeführt.

Das alles funktioniert gut.

verwandte Informationen