Ankündigung

Einklappen
Keine Ankündigung bisher.

Powershell

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage: Powershell

    Hi Leutz!

    Ich versuche mit PowerShell in diversen Verzeichnissen Dateien auszulesen, die älter als 30 Tage sind.
    Leider kriege ich es nicht hin, dass PowerShell mir ausrechnet(in GB) wie viele Daten (die restlichen, über 500000 Ordner) es sind.


    Ich erlaube mir hier mein Script hin zu stellen und bin auf jede Hilfestellung sehr dankbar.

    Get-ChildItem "mein Pfad" | Where-Object {$_.LastWriteTime -le (Get-Date).AddMonths(-3)} | select-object length

    Ich bin absoluter beginner und bitte um Verständnis.

    Beste Grüsse
    corsano75

  • #2
    AW: Powershell

    Das erste Problem ist wohl, dass Get-ChildItem nur die Elemente eines Ordners zurück gibt. Damit Get-ChildItem auch rekursiv die Unterordner und deren Dateien ausgibt, gibst du einfach "-Recurse" an.

    Um dann die Summe zu bilden kannst Du ForEach-Object verwenden (oder kurz %). Da gibt es drei Blöcke, einer welcher beim Start ausgeführt wird um den Zähler zu initialisieren (-Begin), der zweite welcher für jedes Objekt in der Collection aufgerufen wird (-Process) und der Dritte welcher für die abschliessenden Berechnungen verwendet werden kann (-End) z.B. um die Grösse in Bytes nach GB umzurechnen (GB = Bytes / 1000^3, Falls du GiB benötigst: einfach 1000 durch 1024 ersetzen).

    Ich denke so sollte es funktionieren (Ich prüfe mit "-not PSIsContainer" zusätzlich noch dass es kein Ordner ist):

    Code:
    Get-ChildItem -Recurse "mein Pfad" | Where-Object  {-not $_.PSIsContainer -and $_.LastWriteTime -le (Get-Date).AddMonths(-3)} | ForEach-Object -Begin {$total = 0} -Process {$total += $_.Length } -End {$total / [Math]::Pow(1000,3)}

    Kommentar


    • #3
      AW: Powershell

      Hallo vstm

      Vielen Dank für die Unterstützung!
      Dein Code funktioniert einwandfrei und schnell.
      Ich hatte bei den Berechnungen enorm Probleme und eine hohe Memory Auslast.

      Nochmals vielen Dank!

      @Alle
      Geniales Forum!

      Mit Gruss
      corsano75

      Kommentar

      Lädt...
      X