
94502
14.10.2010
Wecker per Batch?
ich will mir per Batch eine art wecker Programmieren
mein Code:
@echo OFF
Color A
echo Stell den wecker ein (hh:mm:ss)
set /p Wecker=
set %time%=hh:mm:ss
:start
set var=
set /a var=%Wecker%-%Time%
echo noch %var%
if '%var%'=='00:00:00' goto Ende
cls
goto start
:Ende
echo Beep
echo
echo
echo
echo
echo
ping localhost -n 0,5 >nul
echo Beep
echo
echo
echo
echo
echo
ping localhost -n 0,5 >nul
goto Ende
EXIT
Aber wenn ich es öffne sagt der Computer etwas wie Fehlender Operator
mein Code:
@echo OFF
Color A
echo Stell den wecker ein (hh:mm:ss)
set /p Wecker=
set %time%=hh:mm:ss
:start
set var=
set /a var=%Wecker%-%Time%
echo noch %var%
if '%var%'=='00:00:00' goto Ende
cls
goto start
:Ende
echo Beep
echo
echo
echo
echo
echo
ping localhost -n 0,5 >nul
echo Beep
echo
echo
echo
echo
echo
ping localhost -n 0,5 >nul
goto Ende
EXIT
Aber wenn ich es öffne sagt der Computer etwas wie Fehlender Operator
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153073
Url: https://administrator.de/forum/wecker-per-batch-153073.html
Ausgedruckt am: 06.04.2025 um 07:04 Uhr
13 Kommentare
Neuester Kommentar
Hallo,
die Variable %time% ist eine vordefinierte Umgebungsvariable von CMD.exe, die die aktuelle Zeit enthält, außer man beschreibt sie mit eigenen Werten. Deshalb solltest Du %time% nicht zum speichern der gewünschten Weckzeit verwenden. Der Ausdruck
funktioniert nicht, der verursacht höchst wahrscheinlich die Fehlermeldung. Durch die enthaltenen Doppelpunkte kann die Subtraktion nicht ausgeführt werden. So schlau ist der Befehlsinterpreter nicht, das er versteht, was Du damit meinst. Der Befehl ping -n 0,5 ist schlichtweg Unfug, Du kannst keinen halben Ping absetzen.
Folgender Code wird das Problem wohl lösen:
Die Zeichen ^G erzeugst Du durch drücken von STRG+G, das erzeugt den ASCII-Code 7, der einen Piepston bei der Ausgabe erzeugt. Der Wecker lässt sich durch STRG+C ausschalten.
Gruß
Friemler
die Variable %time% ist eine vordefinierte Umgebungsvariable von CMD.exe, die die aktuelle Zeit enthält, außer man beschreibt sie mit eigenen Werten. Deshalb solltest Du %time% nicht zum speichern der gewünschten Weckzeit verwenden. Der Ausdruck
set /a var=%Wecker%-%Time%
Folgender Code wird das Problem wohl lösen:
@echo off
setlocal
set /p "AlarmTime=Geben Sie die gewünschte Weckzeit ein (hh:mm): "
:Loop
for /f "delims=" %%t in ('time /t') do (
if "%%t" equ "%AlarmTime%" goto Ring
)
goto Loop
:Ring
echo ^G
echo ^G
echo ^G
ping -n 1 127.0.0.1 > NUL
goto Ring
Die Zeichen ^G erzeugst Du durch drücken von STRG+G, das erzeugt den ASCII-Code 7, der einen Piepston bei der Ausgabe erzeugt. Der Wecker lässt sich durch STRG+C ausschalten.
Gruß
Friemler
Hallo A14011997!
Zuerst mal
wenn ich es dir nicht sage, reklamiert sicher wieder TimoBeil
) Lass bei unfertigen Batches das echo off weg und starte die Datei bei Abstürzen mit "call MeineBatch.bat"
Die Zeile "set %time%=...." bringt nichts, da du damit einer Variable mit dem Namen der aktuellen Zeit den Wert "hh:mm:ss" zuweist. Ausserdem kann man meines Wissens nach nicht einfach so mit Zeiten rechnen.
Das Problem mit dem Vergleich sollte trotzdem lösbar sein, wenn du nur auf das Format der Zeit schaust (bei mir ist es z.B. hh:mm:ss.hh),
die Subtraktion wird schwierig werden.
Was die Fehlermeldung angeht, der kommt wahrscheinlich von der Subtraktion.
Mathe172
P.S:Ich will dir jetzt keine vollständige Lösung geben, das solltest du selbst hinbekommen
P.P.S Verwende bitte Code-Formatierungen an...
Zuerst mal
Die Zeile "set %time%=...." bringt nichts, da du damit einer Variable mit dem Namen der aktuellen Zeit den Wert "hh:mm:ss" zuweist. Ausserdem kann man meines Wissens nach nicht einfach so mit Zeiten rechnen.
Das Problem mit dem Vergleich sollte trotzdem lösbar sein, wenn du nur auf das Format der Zeit schaust (bei mir ist es z.B. hh:mm:ss.hh),
die Subtraktion wird schwierig werden.
Was die Fehlermeldung angeht, der kommt wahrscheinlich von der Subtraktion.
Mathe172
P.S:Ich will dir jetzt keine vollständige Lösung geben, das solltest du selbst hinbekommen
P.P.S Verwende bitte Code-Formatierungen an...
Hallo A14011997!
Ich glaube das Minus in "%time:~0,-2%" löst den fehler aus. Schau doch mal wo der Code stehenbleibt(im Fenster). Und anstatt den 3 Startblöcken würde ich
als Prüfzeile verwenden.
Das mit den Differenzen kann meiner Meinung nicht funktionieren: Was wenn ich auf 00:01:10
warte und es ist 00:00:30? Da käme ja 00.01.-20 raus!?
Mathe172
Ich glaube das Minus in "%time:~0,-2%" löst den fehler aus. Schau doch mal wo der Code stehenbleibt(im Fenster). Und anstatt den 3 Startblöcken würde ich
if %dif1%=0 if %dif2%=0 if %dif3%=0 goto Ende
als Prüfzeile verwenden.
Das mit den Differenzen kann meiner Meinung nicht funktionieren: Was wenn ich auf 00:01:10
warte und es ist 00:00:30? Da käme ja 00.01.-20 raus!?
Mathe172
Ist hier eigentlich noch niemandem aufgefallen, das der TO einen halben Ping absetzen will? Wahrscheinlich um eine halbe Sekunde Verzögerung zwischen den Pieptönen zu erzeugen. Hatte ich ja schon in meinem ersten Posting erwähnt, was aber anscheinend keiner, und besonders nicht der, den es am meisten anginge, gelesen hat... Stattdessen ist der #*$*&?-Code jetzt 63 Zeilen lang. Oder sollte man "Code" durch seine deutsche phonetische Entsprechung ersetzen?
Hi
Vorsicht vll. programmiert er gerade den neuen Stutnext!!!
(Email programmieren, also soll er sich per Mail verbreiten,
dann kommt der Wecker (Wecker per Batch?) zum Einsatz,
dann das hier "Batch beim start von z.b. iexplorer starten"
und zum Schluss kommt der Tipp "Farben bei Batch")
Mal sehen was das ergibt.

MFG Nemesis
Vorsicht vll. programmiert er gerade den neuen Stutnext!!!
(Email programmieren, also soll er sich per Mail verbreiten,
dann kommt der Wecker (Wecker per Batch?) zum Einsatz,
dann das hier "Batch beim start von z.b. iexplorer starten"
und zum Schluss kommt der Tipp "Farben bei Batch")
Mal sehen was das ergibt.
MFG Nemesis
Hi!
Wohl eher den neuen StussNext
Gruß
Friemler
Wohl eher den neuen StussNext
Gruß
Friemler
Interessant auf was für ideen die Leute kommen bei dieser Kombination.
Ich würde da eher als eine Einfache Surfüberwachung um daran erinnert zu werden wenn man einen Termin hat oder einfach nicht zu lange im Internet ist, bzw. nach einer bestimmten Zeit nicht mehr. Das ganze dann mit Farben etwas aufgehübscht.
Ich würde da eher als eine Einfache Surfüberwachung um daran erinnert zu werden wenn man einen Termin hat oder einfach nicht zu lange im Internet ist, bzw. nach einer bestimmten Zeit nicht mehr. Das ganze dann mit Farben etwas aufgehübscht.