none
Ordnergröße > 1 TB wird nicht möglich RRS feed

  • Frage

  • Hallo zusammen,

    ich habe ein kleines quick & dirty script geschrieben um mir ordnergrößen für eine Filemigration auszulesen.

    Ich weiß es ist nicht perfekt unf Fehleranfällig ( z.B wenn der User der das script ausführt keine Berechtigungen auf den Ordner hat, oder der Pfad falsch ist wird trotzdem der vorherige Wert angegeben) aber darum geht es gar nicht.

    Das Problem ist eher es gibt da einen Ordner mit mehreren Terrabyte ( Grafikerabteilung), der dann aber auch als 0,00 augegeben wird.

    Hat jemand eine Idee warum in der Ausgabe trotzdem 0,00 erscheint?

    Hier das Script:

    Es wird eine Liste eingelesen in der die Pfadnamen angegeben sind.

    Ausgegeben werden 2 Listen Eine nur mit Zahlen, also den Ordnergrößen, eine mit Pfad und Ordnergröße in GB.

    $liste = Get-content C:\TEMP\test.txt
    Foreach ($item in $liste)
    {
    $objFSO = New-Object -com  Scripting.FileSystemObject 
    $Ordner = Get-Item $item
    $Groesse = $objFSO.GetFolder($Ordner.FullName).Size 
    $GroesseFormatiert = "{0:N2}" -f ($Groesse/1GB) 
    $item,$GroesseFormatiert | Out-file C:\TEMP\pathsize.txt -Append
    $GroesseFormatiert | Out-file C:\TEMP\sizeonly.txt -Append
    }

    Danke vorab.

    Thomas

    Sonntag, 27. April 2014 17:34

Antworten

  • Warum das Konkret fehlschlägt kann ich dir nicht sagen.
    Das kann an mehreren Dingen liegen.

    Zum einen könnte die Pfadlänge zu lang werden.
    Auch das FSO Objekt unterstützt nur Pfade bis 255 Zeichen!

    Zum anderen könnte es sein das die Variable im FSO Folder Object einfach nicht mit so Grossen Zahlen klarkommt.

    Hast du schon mal eine Ausgabe ohne Berechnung gemacht ?

    $objFSO = New-Object -com  Scripting.FileSystemObject 
    $objFSO.GetFolder("\\Pfad\zum\zu großen\Ordner").Size 

    Wenn die Pfadlänge zu lang ist kannst du Robocopy als Workaroung nehmen.

    Der folgende Befehl Kopiert keine Dateien, alle Aktionen werden nur im Speicher Simuliert.

    Trotzdem zeigt dir Robocopy die Größe des Ordners an!

    # Pfad zum Ordner der Untersucht werden soll
    $Path = 'c:\windows'
    
    # Ordner mit Robocopy einlesen und Grösse in Bytes auslesen
    (Robocopy.exe $Path $env:Temp /e /l /r:1 /w:1 /nfl /ndl /nc /fp /bytes /np /njh | Where-Object {$_ -match "Bytes\s*:"}).trim().split(" ")[2]


    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Montag, 28. April 2014 08:22

Alle Antworten

  • Warum das Konkret fehlschlägt kann ich dir nicht sagen.
    Das kann an mehreren Dingen liegen.

    Zum einen könnte die Pfadlänge zu lang werden.
    Auch das FSO Objekt unterstützt nur Pfade bis 255 Zeichen!

    Zum anderen könnte es sein das die Variable im FSO Folder Object einfach nicht mit so Grossen Zahlen klarkommt.

    Hast du schon mal eine Ausgabe ohne Berechnung gemacht ?

    $objFSO = New-Object -com  Scripting.FileSystemObject 
    $objFSO.GetFolder("\\Pfad\zum\zu großen\Ordner").Size 

    Wenn die Pfadlänge zu lang ist kannst du Robocopy als Workaroung nehmen.

    Der folgende Befehl Kopiert keine Dateien, alle Aktionen werden nur im Speicher Simuliert.

    Trotzdem zeigt dir Robocopy die Größe des Ordners an!

    # Pfad zum Ordner der Untersucht werden soll
    $Path = 'c:\windows'
    
    # Ordner mit Robocopy einlesen und Grösse in Bytes auslesen
    (Robocopy.exe $Path $env:Temp /e /l /r:1 /w:1 /nfl /ndl /nc /fp /bytes /np /njh | Where-Object {$_ -match "Bytes\s*:"}).trim().split(" ")[2]


    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Montag, 28. April 2014 08:22
  • Bitte entschuldigt die späte Antwort, aber es gab viel zu tun.

    Die Robocopy Lösung hat natürlich wie alles von Peter Kriegel einwandfrei funktioniert.

    Dankesehr

    Montag, 5. Mai 2014 16:06