Bestimmten Wochentag im Monat berechnen
Wenn ein Script immer nur an einem bestimmten Wochentag ausgeführt werden soll
z.B. immer am 3. Montag im Monat
Dann könnt ihr dies Function dafür verwenden.
Das Script würde dann nur ausgeführt wenn das aktuelle Datum mit dem gewünschten Datum (3. Montag) zusammenpasst. Ansonsten wird es abgebrochen.
Clear-Host #Returns a date object of the Third Monday of the month for given moth and year #Gibt das Datum des dritten Montags im aktuellen Monat des aktuellen Jahres aus $Year = (Get-Date).Year # Berechnet das aktuelle Jahr $Month = (Get-Date).Month # Berechnet den aktuellen Monat $DayofWeek = "Monday" # Der Wochentag der gesucht wird $Repeat = "14" # 7 der 2. Wochentag, 14 der 3. Wochentag, 21 der 4 Wochentag $nowDate = (Get-Date).Date # Das heutige Datum function get-xDayofWeek ([int]$Month, [int]$Year, $DayofWeek) { [int]$Day = 1 while ((Get-Date -Day $Day -Hour 0 -Millisecond 0 -Minute 0 -Month $Month -Year $Year -Second 0).DayOfWeek -ne $DayofWeek) { $day++ } $day += $Repeat return (Get-Date -Day $Day -Hour 0 -Millisecond 0 -Minute 0 -Month $Month -Year $Year -Second 0) } $newDate = get-xDayofWeek $Month $Year $DayofWeek if ($nowDate -eq $newDate ) { write-host "Process ausführen" Write-Host $newDate } else { Write-Host "Prozess abbrechen" } Write-Host "Heute" $nowDate Write-Host "Gewuenschtes Datum " $newDate