94502
Goto Top

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

Content-Key: 153073

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

Printed on: April 19, 2024 at 14:04 o'clock

Member: Friemler
Friemler Oct 14, 2010 at 16:12:12 (UTC)
Goto Top
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
set /a var=%Wecker%-%Time%
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:
@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
Member: mathe172
mathe172 Oct 14, 2010 at 16:19:05 (UTC)
Goto Top
Hallo A14011997!

Zuerst malface-sadwenn ich es dir nicht sage, reklamiert sicher wieder TimoBeil face-wink) 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 face-wink
P.P.S Verwende bitte Code-Formatierungen an...
Member: mathe172
mathe172 Oct 14, 2010 at 16:20:39 (UTC)
Goto Top
Da war wohl jemand schneller ...
Member: miniversum
miniversum Oct 14, 2010 at 17:04:57 (UTC)
Goto Top
Ich hätte mir die ganze Rechnerei mit der Zeit gespart und dann lieber den AT Befehl benutzt....
Mitglied: 94502
94502 Oct 14, 2010 at 17:41:33 (UTC)
Goto Top
jetzt funktionirts aber es kommt immernoch fehlender opperator
code:
Color A
echo Stell den wecker ein (hh)
set /p Weckerh=
echo Stell den wecker ein (mm)
set /p Weckerm=
echo Stell den wecker ein (ss)
set /p Weckers=


:start
set Time1=%time:~0,-2%
set Time2=%time:~3,-2%
set Time3=%time:~6,-3%
set /a dif1=%Weckerh%-%Time1%
set /a dif2=%Weckerm%-%Time2%
set /a dif3=%Weckers%-%Time3%
echo %dif1% . %dif2% . %dif3%
if %dif1%==0 goto Start2
cls
goto start

:Start2
set Time1=%time:~0,-2%
set Time2=%time:~3,-2%
set Time3=%time:~6,-3%
set /a dif1=%Weckerh%-%Time1%
set /a dif2=%Weckerm%-%Time2%
set /a dif3=%Weckers%-%Time3%
echo %dif1% . %dif2% . %dif3%
if %dif2%==0 goto Start3
cls
goto Start2

:Start3
set Time1=%time:~0,-2%
set Time2=%time:~3,-2%
set Time3=%time:~6,-3%
set /a dif1=%Weckerh%-%Time1%
set /a dif2=%Weckerm%-%Time2%
set /a dif3=%Weckers%-%Time3%
echo %dif1% . %dif2% . %dif3%
cls
if %dif3%==0 goto Ende
goto Start3

: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
cls
goto Ende
EXIT
Member: mathe172
mathe172 Oct 14, 2010 at 17:55:09 (UTC)
Goto Top
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

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
Member: miniversum
miniversum Oct 14, 2010 at 17:59:47 (UTC)
Goto Top
Ja da stimme ich zu.
Es wäre evtl kürzer und weniger fehlerträchtig wenn du einfach bei der Weckzeit die : entfernst und dann in Schleife immer wieder bei %time% auch die : weg machst und vergleichst.
Member: Friemler
Friemler Oct 14, 2010 at 18:27:42 (UTC)
Goto Top
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?
Member: nEmEsIs
nEmEsIs Oct 14, 2010 at 19:26:48 (UTC)
Goto Top
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.


face-smile

MFG Nemesis
Member: Friemler
Friemler Oct 14, 2010 at 19:31:02 (UTC)
Goto Top
Hi!

Zitat von @nEmEsIs:
Vorsicht vll. programmiert er gerade den neuen Stutnext!!!

Wohl eher den neuen StussNext face-wink

Gruß
Friemler
Member: miniversum
miniversum Oct 14, 2010 at 19:46:17 (UTC)
Goto Top
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.
Mitglied: 94502
94502 Oct 15, 2010 at 07:48:09 (UTC)
Goto Top
Danke jetzt Funktioniert es fehlerfrei
Member: ProGamerFTW
ProGamerFTW Jul 16, 2014 at 02:02:20 (UTC)
Goto Top
ist vllt ein wenig spät, aber ich bin gerade auf dieses thema hier gestoßen und interessiere mich auch für diesen Wecker face-smile

wäre es möglich das du die fertige bat datei hier rein setzt ?
ich kenne mich leider so gut wie gar nicht damit aus und bin noch am lernen ^^