2017-11-20 2 views
0

Gibt es einen PowerShell-Befehl, der einen bestimmten Pfad durchlaufen kann, um Verzeichnisse zu finden, die größer als n sind? Ich weiß, ich kann Dateien größer als n Größe finden, aber ich muss Verzeichnis Größe überprüfen, da gibt es Situationen, wo in einem Ordner gibt es 1000 Dateien, jeder von 1   MB, so die Summe des Verzeichnisses ist 1   GB. Und das geschah unter C: \ Windows.Suchverzeichnis größer als n Größe

Antwort

1

Die Powershell-Cmdlets akkumulieren nicht die Größen von verschachtelten Elementen in einem Verzeichnis, aber Sie können das FileSystemObject COM-Objekt für diesen Einsatz:

$threshold = 1GB 

$fso = New-Object -COM 'Scripting.FileSystemObject' 

Get-ChildItem 'C:\root\folder' -Recurse -Directory | Where-Object { 
    $fso.GetFolder($_.FullName).Size -gt $threshold 
} 

Die -Directory Parameter mit Powershell v3 eingeführt wurden. Wenn Sie dies für die Arbeit mit PowerShell v2 benötigen, müssen Sie Verzeichnisse mit einem Where-Object Filter auswählen.

Get-ChildItem 'C:\root\folder' -Recurse | Where-Object { 
    $_.PSIsContainer -and 
    $fso.GetFolder($_.FullName).Size -gt $threshold 
} 
+0

Danke, aber es ist ein bisschen seltsam. Können Sie mir sagen, welche Maßeinheit es benutzt? weil ich es getestet habe ... und für die $ threshold = 10000000 zeigt es mir sogar Verzeichnisse, die insgesamt 25 MB sind. – catalin

+0

Die Einheit ist Bytes, Ihr Ergebnis ist also nicht überraschend, da 10.000.000 Bytes nur 10 MB groß sind, also weniger als 25 MB. Die Eigenschaft 'Size' sollte denselben Wert anzeigen, den Sie in Klammern sehen, wenn Sie das Eigenschaftendialogfeld eines Ordners öffnen. Sie können die [Bytekonvertierungskonstanten] von PowerShell (https://technet.microsoft.com/en-us/library/ee692684.aspx) verwenden, um den Schwellenwert lesbarer zu machen (z. B. $ threshold = 1GB). –

+0

Es funktioniert nur für Powershell 3 oder höher. scheint auf 2 kann nicht enthalten -Directory Argument. Ist es möglich, etwas zu ändern, um auch mit powershell v2 arbeiten zu können? Vielen Dank! – catalin

Verwandte Themen