| 

.NET C# Java Javascript Exception

1
Hallo,

ich hab ein Problem, ich möchte in Batch den Computer anweisen dass es wenn time größer als 20
eine Nachricht ausgibt das es nach 20 uhr ist.

for %%i in ( %time:0,2% GTR 20 ) do (echo es ist %time:0,4% Uhr, hast du die Nachrichten gesehen ? )
for %%i in ( %time:0,2% == 20 ) do (echo es ist %time:0,4% Uhr, hast du die Nachrichten gesehen ? )



Nebenbei: Kann ich in for verschiedene Variationen (6 uhr, 12 uhr, 18 uhr, 20 uhr...) überprüfen und dann je nach Uhrzeit unterschiedliche Meldungen geben ?
08.11.2011
vicon 308 1 8
2 Antworten
0
Hallo vicon,

ich habe jetzt FOR nicht im Kopf aber, %time != %time%?

Wenn ich auf der Konsole "echo %time%" eingebe, bekomme ich die aktuelle Uhrzeit angezeigt. Bei %time .... eigentlich nix ;)

Gruß Karl

[Edit]Wieso benutzt du nicht den Scheduler?[/Edit]
08.11.2011
Karl 958 8
0
Hi,

versuche es mal folgendermaßen:

if %time:~0,2% EQU 20 echo Es ist zwischen 20 und 21 Uhr
if %time:~0,2% GEQ 20 echo Es ist nach 20 Uhr
if %time:~0,2% GTR 20 echo Es ist nach 21 Uhr

Was bei dir fehlte, war die Tilde (~) nach dem Doppelpunkt.
Wozu du den FOR Befehl da verwenden möchtest, bleibt mir aber ein Rätsel.

Falls du damit das Batch auf 20 Uhr warten lassen möchtest, ginge das z.B. so:
:loop

if %time:~0,2% EQU 20 (
echo Es ist jetzt 20 Uhr
goto exitLoop
)
echo es ist immer noch nicht 20 Uhr....

REM das Ping dient dazu eine Minute zu warten...
REM es pingt ohne Ausgabe 61 mal, das erste Mal sofort,
REM die weiteren 60x nach je einer Sekunde.
ping -n 61 localhost >nul

goto loop
:exitLoop
08.11.2011
alex.enjoy 86 1 4

Stelle deine Batch-Frage jetzt!