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:
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
)
)
Please also mark the comments that contributed to the solution of the article
Content-Key: 187497
Url: https://administrator.de/contentid/187497
Printed on: April 24, 2024 at 19:04 o'clock
4 Comments
Latest comment
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
Wenn ja, dann etwa so:
Schau Dir in diesem Zusammenhang mal "
Grüße
bastla
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
)
)
if /?
" an ...Grüße
bastla
Hallo traller!
Grüße
bastla
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