Batch Zeitabfrage mit else Anweisung
Wie in der Überschrift habe ein Batch ständig am rennen nur kann ich nicht die Zeit Bestimmen wann es wahr ist (z.B. 2:05 Uhr) das eine weitere Batch ausgeführt wird, hab es mit dem hier versucht :
if %time:~-11,2% lss 2 goto start
doch das rennt immer in schleife 2 Std. und ich müsste immer eine txt verwenden wann die Batch schon ausgeführt wurde damit sie nicht wieder ausgeführt wird
kennt wer eine elegante Lösung, da eine Batch schon rennt brauche ich keine AT Lösung
danke
if %time:~-11,2% lss 2 goto start
doch das rennt immer in schleife 2 Std. und ich müsste immer eine txt verwenden wann die Batch schon ausgeführt wurde damit sie nicht wieder ausgeführt wird
kennt wer eine elegante Lösung, da eine Batch schon rennt brauche ich keine AT Lösung
danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 223968
Url: https://administrator.de/contentid/223968
Ausgedruckt am: 18.11.2024 um 07:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo dax4fun,
die Beschreibung deines Vorhabens wird hier nicht ganz klar, deshalb wende mich erst mal nur an deinen Versuch der nicht funktioniert:
Dein Vergleich funktioniert nicht, da du bei der Ausgabe von Time ein Leerzeichen vor einer einstelligen Stunde bekommst. Dieses musst du entweder erst durch eine 0 ersetzen
oder das ganze direkt mit
Grüße Uwe
die Beschreibung deines Vorhabens wird hier nicht ganz klar, deshalb wende mich erst mal nur an deinen Versuch der nicht funktioniert:
Dein Vergleich funktioniert nicht, da du bei der Ausgabe von Time ein Leerzeichen vor einer einstelligen Stunde bekommst. Dieses musst du entweder erst durch eine 0 ersetzen
set tm=%time:~0,2%
set /a tm=%tm: =0%
set /a
in eine Zahl umwandeln:set /a tm=%time:~0,2%
if "%tm%" lss "2" (goto start) else (goto woandershin)
das kommt jetzt drauf an wie deine Batch aussieht..
Du musst dann den Counter halt dann auf 1 zurücksetzen wenn ein neuer Tag anbricht, den Uhrzeit-Vergleich kannst du ja genauso machen.
@echo off & setlocal ENABLEDELAYEDEXPANSION
set counter=1
set /a hours=%time:~0,2%
set /a minutes=%time:~3,2%
if "%hours%:%minutes%" == "2:5" (
if "!counter!" == "1" (
call anderebatch.cmd
set /a counter +=1
)
)
im Beispiel musst du Ihn auf 1 setzen...