traller
Goto Top

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
)
)

Content-Key: 187497

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: bastla
bastla Jul 04, 2012 updated at 22:17:31 (UTC)
Goto Top
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
Member: traller
traller Jul 06, 2012 at 21:10:01 (UTC)
Goto Top
Hallo,
wofür hast du setlocal gesetzt? ist das notwendig?
Member: bastla
bastla Jul 06, 2012 at 21:40:30 (UTC)
Goto Top
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
Member: Biber
Biber Jul 09, 2012 at 18:43:19 (UTC)
Goto Top
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