dax4fun
Goto Top

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

Content-Key: 223968

Url: https://administrator.de/contentid/223968

Printed on: April 19, 2024 at 07:04 o'clock

Member: colinardo
colinardo Dec 07, 2013 updated at 17:15:09 (UTC)
Goto Top
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
set tm=%time:~0,2%
set /a tm=%tm: =0%
oder das ganze direkt mit set /a in eine Zahl umwandeln:
set /a tm=%time:~0,2%
if "%tm%" lss "2" (goto start) else (goto woandershin)  
Grüße Uwe
Member: dax4fun
dax4fun Dec 07, 2013 updated at 17:35:36 (UTC)
Goto Top
Ich versuche es nochmals face-smile

Ich habe ein Batch das schon ständig rennt (ab Computerstart im Hintergrund) und da wollte ich nur ein paar Zeilen einfügen wenn es 2:05 ist führe ein weiteres Batch aus nur um die Uhrzeit einmal täglich

Danke
Member: colinardo
colinardo Dec 07, 2013 updated at 17:59:43 (UTC)
Goto Top
das kommt jetzt drauf an wie deine Batch aussieht..
@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
  )
)
Du musst dann den Counter halt dann auf 1 zurücksetzen wenn ein neuer Tag anbricht, den Uhrzeit-Vergleich kannst du ja genauso machen.
Member: dax4fun
dax4fun Dec 07, 2013 at 18:39:49 (UTC)
Goto Top
Ich glaube das schaut sehr gut aus ;) danke

theoretisch kann ich einen ping zum überbrücken auf 2:06 verwenden und dann den counter wieder auf 0 setzen

Danke
Member: colinardo
colinardo Dec 07, 2013 updated at 18:42:05 (UTC)
Goto Top
Zitat von @dax4fun:
den counter wieder auf 0 setzen
im Beispiel musst du Ihn auf 1 setzen...