Dateigröße vergleichen. mit Ober und Untergrenze -Status per Email
Hallo Community,
ich bin derzeit dabei ein Powershell Script zu schreiben.
Dieses Script soll Vergleichen, ob die Datei älter als 1 Tag ist. Wenn ja: $status="Änderungsdatum stimmt nicht" -andernfalls, Springt er in die folgende IF Schleife.
Wenn Dateigrößer > Untergrenze & Dateigröße <Obergrenze: $status= "erfolgreich"
andernfalls $status= "Dateigröße stimmt nicht".
Jetzt ist bei mir das Problem, dass ich nicht weiß wie ich die Dateigröße Optimal vergleiche. Einen Spielraum von 15% möchte ich dem ganzen schon geben.
Mein Gedanke war es, die Dateigröße des Vortages zu vergleichen.
$DateigrößeVortag = "{0:N3} GB" -f ((gci $DateiVortag | measure Length -s).Sum /1024000000) # Leider nur mit 1024000000 den Wert raus bekommen, der mich auch im Explorer angezeigt wird.
$puffer = 0,15
$untergrenze = ($DateigrößeVortag - ($DateigrößeVortag*$putter))
$obergrenze = ($DateigrößeVortag + ($DateigrößeVortag*$putter))
Leider kann ich aber diese Variablen nicht miteinander verrechnen. Welchen Fehler habe ich da gemacht? Stimmt etwas mit dem Format nicht?
Auch möchte ich diesen Status mir als Email senden lassen. Falls da jemand bescheid weiß, was sind hierfür die Anforderungen an mich. Brauche ich da etwas besonderes?
(Derzeit Office365 im einsatz)
Beste Grüße
ich bin derzeit dabei ein Powershell Script zu schreiben.
Dieses Script soll Vergleichen, ob die Datei älter als 1 Tag ist. Wenn ja: $status="Änderungsdatum stimmt nicht" -andernfalls, Springt er in die folgende IF Schleife.
Wenn Dateigrößer > Untergrenze & Dateigröße <Obergrenze: $status= "erfolgreich"
andernfalls $status= "Dateigröße stimmt nicht".
Jetzt ist bei mir das Problem, dass ich nicht weiß wie ich die Dateigröße Optimal vergleiche. Einen Spielraum von 15% möchte ich dem ganzen schon geben.
Mein Gedanke war es, die Dateigröße des Vortages zu vergleichen.
$DateigrößeVortag = "{0:N3} GB" -f ((gci $DateiVortag | measure Length -s).Sum /1024000000) # Leider nur mit 1024000000 den Wert raus bekommen, der mich auch im Explorer angezeigt wird.
$puffer = 0,15
$untergrenze = ($DateigrößeVortag - ($DateigrößeVortag*$putter))
$obergrenze = ($DateigrößeVortag + ($DateigrößeVortag*$putter))
Leider kann ich aber diese Variablen nicht miteinander verrechnen. Welchen Fehler habe ich da gemacht? Stimmt etwas mit dem Format nicht?
Auch möchte ich diesen Status mir als Email senden lassen. Falls da jemand bescheid weiß, was sind hierfür die Anforderungen an mich. Brauche ich da etwas besonderes?
(Derzeit Office365 im einsatz)
Beste Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 589262
Url: https://administrator.de/forum/dateigroesse-vergleichen-mit-ober-und-untergrenze-status-per-email-589262.html
Ausgedruckt am: 09.04.2025 um 12:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
https://social.technet.microsoft.com/Forums/windowsserver/de-DE/6fcc557a ...
https://www.powershell-user.de/die-uhrzeit/
https://www.msxfaq.de/code/powershell/psdatetime.htm
https://asciich.ch/wordpress/rechnen-in-der-powershell/
Gruß,
Peter
Zitat von @TilBum:
Leider kann ich aber diese Variablen nicht miteinander verrechnen. Welchen Fehler habe ich da gemacht? Stimmt etwas mit dem Format nicht?
Vermutung: Zieh von der jetzigen Uhrzeit mal 27 Stunden ab. Geht. Zieh von 09:00 Uhr 27 Stunden ab. Geht , aber nur als Mensch.Leider kann ich aber diese Variablen nicht miteinander verrechnen. Welchen Fehler habe ich da gemacht? Stimmt etwas mit dem Format nicht?
Auch möchte ich diesen Status mir als Email senden lassen. Falls da jemand bescheid weiß, was sind hierfür die Anforderungen an mich. Brauche ich da etwas besonderes?
https://social.technet.microsoft.com/Forums/windows/de-DE/e18bc9aa-fbac- ...https://social.technet.microsoft.com/Forums/windowsserver/de-DE/6fcc557a ...
https://www.powershell-user.de/die-uhrzeit/
https://www.msxfaq.de/code/powershell/psdatetime.htm
https://asciich.ch/wordpress/rechnen-in-der-powershell/
Gruß,
Peter
Moin,
Die Zuordnungsgröße ist 1024, das bedeutet jedoch, wenn du die Zahl durch 1024 teilst, würderst du nur das raus bekommen, was im Explorer als "KB" angezeigt wird. Bei MiB müsstest du nämlich schon 2x durch 1024 teilen, bei GiB schon 3x durch 1024 usw.
Um also den Wert zu bekommen, den der Explorer als "GB" anzeigt, müsstest du nicht durch 1024000000, sondern durch 1073741824 teilen.
Siehe Vergleichstabelle Datengrößen
eine Variable vom Typ [string], mit dieser kannst du nicht rechnen. Ohnehin sei hier gefragt, warum teilst du die Zahl überhaupt, statt einfach mit der Größe in Byte weiter zu rechnen?!
Zudem noch bei Dezimalzahlen immer ein Punkt statt Komma verwenden
Dann funktioniert das Rechnen von Ober- und Untergrenze auch.
Gruß Thomas
Zitat von @TilBum:
Leider nur mit 1024000000 den Wert raus bekommen, der mich auch im Explorer angezeigt wird.
Falsch. Was bei Windows im Explorer fälschlicher Weise als Kilobytes (KB) / Megabytes (MB) / Gigabytes (GB) / Terabytes (TB) angezeigt wird, sind eigentlich Kibibytes (KiB) / Mebibytes (MiB) / Gibibytes (GiB) / Tebibytes (TiB).Leider nur mit 1024000000 den Wert raus bekommen, der mich auch im Explorer angezeigt wird.
Die Zuordnungsgröße ist 1024, das bedeutet jedoch, wenn du die Zahl durch 1024 teilst, würderst du nur das raus bekommen, was im Explorer als "KB" angezeigt wird. Bei MiB müsstest du nämlich schon 2x durch 1024 teilen, bei GiB schon 3x durch 1024 usw.
Um also den Wert zu bekommen, den der Explorer als "GB" anzeigt, müsstest du nicht durch 1024000000, sondern durch 1073741824 teilen.
Siehe Vergleichstabelle Datengrößen
Leider kann ich aber diese Variablen nicht miteinander verrechnen. Welchen Fehler habe ich da gemacht? Stimmt etwas mit dem Format nicht?
Du erhälst durch$DateigrößeVortag = "{0:N3} GB" -f ((gci $DateiVortag | measure Length -s).Sum /1024000000)
$DateigrößeVortag = (gci $DateiVortag | measure Length -s).Sum
$puffer = 0.15
Gruß Thomas