frontendler
Goto Top

Batch um 0 Uhr Batch Schließen und die selber erneut öffnen

Moin moin,

ich wollte meine Aktuelle Batch etwas verbessern, sodass ich eigentlich fast nichts mehr tun brauch.
1.
Nun möchte ich aber, das die Batch die ich öffne, um 0 Uhr sich automatisch schließt und die selbe sich dann erneut öffnet.
(Die läuft dann wieder bis 0 Uhr und so weiter..)
Nun ist aber die frage wie?
Weil ich zwar Beiträge gefunden habe, aber die waren für eine Zeit Eingabe, nur dies ist ja leider etwas anderes wie ich es haben möchte.
Ich hoffe mir kann da jemand helfen
Vielen Dank.

2.
Außerdem habe ich noch eine frage:
Ist es möglich eine Batch ebenfalls Neu starten zu lassen, nachdem sie einen befehlt erfolgreich ausgeführt hat?
Denn dann würde ich zusätzlich einen Dienst abfragen und wenn dieser erfolgreich war, das dies dann ebenfalls neu gestartet wird.
(Zb.
streamlink -o "C:\Users\BLABLA\Documents\TOOLS\CMD\xREC\[%fullstamp%]__{title}__{category}.mp4"
Wenn dieser erfolgreich einen stream aufgenommen hat, das dies danach ebenfalls Neu startet?)
Aber am meisten geht es grad eher um Punkt 1.
Ebenfalls vielen Dank

Greetz

Content-ID: 7312874157

Url: https://administrator.de/forum/batch-um-0-uhr-batch-schliessen-und-die-selber-erneut-oeffnen-7312874157.html

Ausgedruckt am: 22.12.2024 um 06:12 Uhr

DarkZoneSD
DarkZoneSD 26.05.2023 aktualisiert um 13:22:43 Uhr
Goto Top
Moin,

über die Aufgabenplanung mit einer neuen Batch die um 00:00 Uhr ausgeführt wird sollte das mit diesen befehlen gehen.
tasklist /fi "imagename eq <DeineBatch.bat>" |find ":" > nul  
if errorlevel 1 taskkill /f /im "<DeineBatch.bat>"  
danach dann wieder normal die Batch starten.

2.

Die erfolgreiche Ausführung solltest Du mit
if %errorlevel%
überprüfen können,

0 = successful, 1 = failed.

ss64.com/nt/errorlevel.html

Grüße

Florian
7010350221
7010350221 26.05.2023 aktualisiert um 15:23:08 Uhr
Goto Top
Powershell in der Aufgabenplanung
# path to batch
$batch = 'D:\mybatch.cmd'  
# stop batch
Get-CimInstance Win32_Process -Filter "Commandline like '%$($batch.replace('\','\\'))%'" | %{Stop-Process -Id $_.ProcessId}  
# start batch
start-process $batch

Gruß
Crusher79
Crusher79 30.05.2023 um 00:43:46 Uhr
Goto Top
Zitat von @7010350221:

Powershell in der Aufgabenplanung

+1 für PS.

In einer Schleife kann man auch die Uhrzeit prüfen und Schleife + Script verlassen.

Alternativ .lck Datei erstellen. Datumsvergleich ist sehr stark in PowerShell. Vergleicht man die 2 Objekte erhält man was man will: Sekunden, Minuten, Stunden.

Ist Abstand größer als 23 Std und 55 Min. dann verlasse Schleife/ Script. Mit .lck Dummy-Datei könnte man auch doppelte Ausführung verinden u.ä. Kann man weiterspinnen....

PS kann auch Logfiles auswerten. Was ist denn ERFOLGREICH aufgenommen? Es liegt was mit mehr als 0 Kb da?

--loglevel LEVEL

    Set the log message threshold.

    Valid levels are, in order of increasing verbosity:

    none, critical, error, warning, info, debug, trace, all

    Default is: "info".  

Hab damit noch nichts aufgenommen. Würde sich aber anbieten vollständigen record mit Logfile zu prüfen und dann auf den nächsten zu gehen.