traller

Zeitprüfung mit if else

Hallo,
auf einem Windows 7 Computer soll in einem Batch-Script folgendes geprüft werden:
Prüfe Uhrzeit ob diese >=18:10 ist und mache X sonst prüfe Uhrzeit <= 22:00 und mache Y sonst Z.
was habe ich falsch geschrieben, da dieses hier so nicht funktioniert:
if time>=18:10 (
X
) else (
if time<=22:00 (
Y
) else (
Z
)
)
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 187497

Url: https://administrator.de/forum/zeitpruefung-mit-if-else-187497.html

Ausgedruckt am: 06.07.2025 um 00:07 Uhr

bastla
bastla 05.07.2012 aktualisiert um 00:17:31 Uhr
Hallo traller!

Vorweg zur Abfragekonstruktion: Wenn die Zeit schon nicht >=18:10 ist dann nochmals zu fragen, ob sie denn <=22:00 wäre ist relativ sinnfrei - vermutlich meinst Du eher
  • vor 18:10 Aktion "X"
  • zwischen 18:10 und 22:00 Aktion "Y" und
  • nach 22:00 Aktion "Z"

Wenn ja, dann etwa so:
@echo off & setlocal
set "T=%time: =0%"  
set "T=%T:~,5%"  
if %T% lss 18:10 (
    echo X
) else (
    if %T% leq 22:00 (
        echo Y
    ) else (
        echo Z
    )
)
Schau Dir in diesem Zusammenhang mal "if /?" an ...

Grüße
bastla
traller
traller 06.07.2012 um 23:10:01 Uhr
Hallo,
wofür hast du setlocal gesetzt? ist das notwendig?
bastla
bastla 06.07.2012 um 23:40:30 Uhr
Hallo traller!
wofür hast du setlocal gesetzt?
Weil damit Veränderungen an Variablen (gilt auch für das Erstellen) auf den aktuellen Batch beschränkt bleiben ...
ist das notwendig?
Das kommt auf den Einzelfall an - aber solange ich keinen guten Grund finde, der gegen die Verwendung von "setlocal" spricht, setze ich es zur Sicherheit ein ...

Grüße
bastla
Biber
Biber 09.07.2012 um 20:43:19 Uhr
Moin traller,

was mache die Zeiten, was macht Else, was macht die Prüfung?

Sind noch Fragen offen oder können wir den Beitrag abhaken?

Grüße
Biber