divinefaith
Goto Top

Reminder nachdem Uhrzeit erreicht ist

Hey,
ich würde gerne ein skript erstellen, was einen reminder in form einer textnachricht ausgibt, sobald es 11:50 Uhr ist.
allerdings hat es bisher nicht so ganz geklappt.
Außerdem sollte das skript nur von Montag - Freitag laufen.

$time = Get-Date
$headline = "lunchtimer"  
$text     = "in 10 minutes is lunchtime"  

if ($time == get-date -hour 11 -minute 50 then

[System.Windows.Forms.MessageBox]::Show($text,$headline,0)
)
endif

Content-ID: 4235611082

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

Crusher79
Crusher79 11.10.2022 um 14:57:03 Uhr
Goto Top
Hallo, wo bist du? Bei welcher Sprache ^^

== find ich immer schön. Leider will PS sowas wie "-eq" etc.

$(...) wertet alles innerhalb vorher aus, damit es zum Vergleichen heranziehen kann.

$time = Get-Date
$headline = "lunchtimer"  
$text     = "in 10 minutes is lunchtime"  

if ($time -eq $(get-date -hour 14 -minute 56)) {

[System.Windows.Forms.MessageBox]::Show($text,$headline,0)

}
DivineFaith
DivineFaith 11.10.2022 um 15:50:58 Uhr
Goto Top
ja genau bei powershell bin ich.
leider funktioniert bei mir die lösung allerdings noch nicht.
erikro
erikro 11.10.2022 aktualisiert um 16:09:34 Uhr
Goto Top
Moin,

Zitat von @DivineFaith:

ja genau bei powershell bin ich.

Dann solltest Du Dich mal mit der Syntax dieser Sprache beschäftigen insbesondere den Vergleichsoperatoren. Und ENDIF gibbet da auch nicht. face-wink

leider funktioniert bei mir die lösung allerdings noch nicht.

Die Lösung von @Crusher79 ist auch nur fast richtig, face-wink

$time = Get-Date -DisplayHint Time
$headline = "lunchtimer"  
$text     = "in 10 minutes is lunchtime"  

if ($time -eq $(get-date -hour 14 -minute 56)) {

[System.Windows.Forms.MessageBox]::Show($text,$headline,0)

}

hth

Erik
Crusher79
Crusher79 11.10.2022 aktualisiert um 16:16:15 Uhr
Goto Top
Zitat von @erikro:
Die Lösung von @Crusher79 ist auch nur fast richtig, face-wink

Erik

Wegen der Uhrzeit jetzt oder wie? ^^ Ich war mir nicht sicher, ob nicht wegen "Windows" doch C# gefragt war. Auch wenn das einbinden auf PS hingewiesen hat.
erikro
erikro 11.10.2022 um 16:17:42 Uhr
Goto Top
Zitat von @Crusher79:

Zitat von @erikro:
Die Lösung von @Crusher79 ist auch nur fast richtig, face-wink

Erik

Wegen der Uhrzeit jetzt oder wie? ^^

Jo. Ohne den displayhint ist der Vergleich falsch und damit geht der TO doch nicht essen. face-wink Ich habe für sowas ja einen Kalender. Aber warum nicht auch per Skript. face-wink
Crusher79
Crusher79 11.10.2022 um 16:21:37 Uhr
Goto Top
@erikro wer weiß wozu es gut ist! Nur weil man mal sehen wollte, ob der Kaffee schon durchgelaufen ist gibt es Webcams. Wird vlt. ein großes Ding - und wir waren dabei.


$time = Get-Date -DisplayHint Time
$headline = "lunchtimer"  
$text     = "in 10 minutes is lunchtime"  

if ($time -eq $(get-date -hour 11-minute 50)) {

[System.Windows.Forms.MessageBox]::Show($text,$headline,0)

}
erikro
erikro 11.10.2022 um 16:26:07 Uhr
Goto Top
Zitat von @Crusher79:

@erikro wer weiß wozu es gut ist! Nur weil man mal sehen wollte, ob der Kaffee schon durchgelaufen ist gibt es Webcams. Wird vlt. ein großes Ding - und wir waren dabei.

Ich fange gleich mit dem RFC an: htltcp face-wink
Doskias
Doskias 11.10.2022 um 16:55:44 Uhr
Goto Top
Moin,

wie ich dir in dem Beitrag schon geschrieben habe Zeit bis Uhrzeit ist die Uhrzeit recht gefährlich.

Get-Date -DisplayHint Time ergibt zum Beispiel: 16:47:19
(get-date -hour 11-minute 50) ergibt: Dienstag, 11. Oktober 2022 16:47:19
Beachte, dass du hier immer die aktuellen Sekunden hast.

$time wird mit DisplayHint Time wird daher niemals identisch sein, da du unterschiedliche Formate miteinander vergleichst.
Vergleiche:
$zeit1=Get-Date -DisplayHint Time
$zeit2=(get-date -hour 16 -minute 51 -Second 40)
if ($zeit1 -eq $zeit2) {write-host "Zeit ist gleich"} else {write-host "Zeit ist anders"}  

Gruß
Doskias
erikro
erikro 11.10.2022 um 17:00:53 Uhr
Goto Top
Na dann formatieren wir das halt weg.

get-date -format HH:mm
Crusher79
Crusher79 11.10.2022 aktualisiert um 17:46:35 Uhr
Goto Top
Ups sorry, ich hats Stumpf übernommen. Normal mach ichi Date Diff immer so. Das Objekt enthält ja dann alle relevanten Werte.....

 $Diffobj = $(Get-Date) - $(Get-Date -Hour 17 -Minute 28)
 $Diffobj.TotalMinutes

So ginge es auch. Hatte kurz mal wie wild aktualsiert. Und auch je nach Datum sowas wie "250,00001669166" Minuten raus - Float. Dachte die Minuten wären von Haus aus immer ganze Zahlen...

Auch irgendwie tödlich wenn man hier immer ganze Minuten erwartet. Muss noch mal in die Objektbeschreibung schauen. Dachte aber Stunden, Minuten etc. wären ganze Zahlen.

zeit
bandit1976
bandit1976 11.10.2022 um 18:22:06 Uhr
Goto Top
In der Windows 10 Uhr App ist auch ein Wecker integriert! Der macht das auch alles ohne Programmierung!
NordicMike
NordicMike 12.10.2022 um 14:29:11 Uhr
Goto Top
In der Windows 10 Uhr App ist auch ein Wecker integriert! Der macht das auch alles ohne Programmierung!
Und Outlook (hat ja fast jeder) kann das auch, einfach einen neuen Kaleder hinzufügen, der den Hauptkalender nicht stört bzw. angezeigt wird.