m0n0wall-neuling
Goto Top

Batchdatei soll je nach Uhrzeit bestimmten Befehl ausführen

Hallo,
folgendes bekomme ich leider nicht hin:

Es soll in der Batchdatei eine Uhrzeit gesetzt werden.

Wird die Batchdatei exakt zu dieser Zeit oder vor der gesetzten Zeit gestartet soll "Befehl1" ausgeführt werden
Wird die Batchdatei nach der gesetzten Zeit gestartet soll "Befehl2" ausgeführt werden

Diese Datei will ich unter Win10 ausführen

Vielen Dank für die Hilfe !

Content-ID: 421319

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

Ausgedruckt am: 19.11.2024 um 15:11 Uhr

138810
138810 23.02.2019 aktualisiert um 10:56:04 Uhr
Goto Top
Solltest du dir dazu dringend mal durchlesen...
Windows 10: Aufgabenplanung richtig nutzen - so geht's

powershell -ExecutionPolicy ByPass -Command "exit @{$true=0;$false=1}[((get-date) -le (get-date 10:55))]" >nul && (  
   echo Befehl1
) || (
  echo Befehl2
)
bastla
bastla 23.02.2019, aktualisiert am 24.02.2019 um 18:13:12 Uhr
Goto Top
Hallo m0n0wall-neuling!

Gänzlich ungetestet etwa so:
@echo off & setlocal
REM Gewünschten Zeitpunkt für Vergleichswert setzen (Format "hh:mm")  
set "Zeitpunkt=08:00"  

REM aktuelle Uhrzeit in Variable setzen und führendes Leerzeichen bei Zeiten vor 10:00 in "0" umwandeln  
set "Zeit_akt=%time: =0%"  
REM auf hh:mm verkürzen (erste 5 Stellen)
set "Zeit_akt=%Zeit_akt:~,5%"  

if "%Zeit_akt%" leq "%Zeitpunkt%" (  
    echo Befehl1
) else (
    echo Befehl2
)
Anstelle von "echo Befehl1" oder "echo Befehl2" kannst Du jeweils auch mehrere Anweisungen unterbringen ...

Grüße
bastla

Edit: Fehlendes Prozentzeichen in Zeile 10 hinzugefügt.
m0n0wall-neuling
m0n0wall-neuling 24.02.2019 um 12:47:17 Uhr
Goto Top
Hallo bastla,
vielen Dank für die Hilfe !

Bei Deinem Code wird immer "Befehl1"

Eines habe ich vergessen / ungenau geschrieben .... sorry
Perfekt wäre es, wenn ich denb Zeitraum vorgeben könnte:
Zeitraum von 22:00:00 abends bis 08:00:00 morgens > "Befehl1"
Zeitraum nach 08:00:00 bis 21:59:59 "Befehl2"

Nochmals vielen Dank für die Hilfe hier im Board !
rubberman
rubberman 24.02.2019 um 16:24:33 Uhr
Goto Top
Ist nicht wesentlich anders.
@echo off &setlocal

set "now=%time: =0%"  
set "flag=0"  
if "%now:~,8%" geq "08:00:00" if "%now:~,8%" lss "22:00:00" set "flag=1"  

if %flag% equ 0 (
  echo Befehl 1
) else (
  echo Befehl 2
)

pause
Steffen
m0n0wall-neuling
m0n0wall-neuling 24.02.2019 um 16:58:17 Uhr
Goto Top
Vielen Dank für die HILFE !
bastla
bastla 24.02.2019 um 18:11:53 Uhr
Goto Top
Hallo m0n0wall-neuling!

Nachdem ich das fehlende Prozentzeichen in Zeile 10 ergänzt habe, sollte es zumindest funktonieren - mit rubbermans Version hast Du aber ohnehin schon eine bessere Version.

Grüße
bastla
m0n0wall-neuling
m0n0wall-neuling 24.02.2019 um 18:26:39 Uhr
Goto Top
Auch Dir vielen Dank !