www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



Verzeichnisse auslesen mit Größe klappt nicht ganz
Autor:  AndreasMünzberg
E-mail:  Antworten bitte nur in das Forum!
Datum:  01.08.2008 12:54:12
Subject:  Verzeichnisse auslesen mit Größe klappt nicht ganz
Bezug zum Buch: 
Message:  Hallo zusammen,

ich habe ein kleines Script welches mir ausgehend von einem Anfangsverzeichnis alle Unterverzeichnisse und deren Größe anzeigt. Leider hat sich beim Scripten ein Fehler eingeschlichen - so wird immer schon bei der ersten Verzeichnisebene die Größe angezeigt selbst wenn der Ordner mit den größten Dateien ein oder mehrere Ebenen darunter liegt.

Hier das Script - ich lasse mal die unwesentlichen Teile weg...

Ordner = "H:\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set Fld = fso.GetFolder(Ordner)
'erstelle Objekt-Variable zum Zugriff auf Excel...
Set objxl = CreateObject("Excel.Application")

     With objxl
' Formatiere das Blatt und informiere den Nutzer das er bis zum Ergebnis noch etwas warten muss...     
     .Workbooks.Add(1)
     .activesheet.Name = "uebersicht"
     .visible = True
      Titel = "CD-Uebersicht wird erstellt. Bitte warten..."
     .caption = Titel
     .cells(5,3).value = "Bitte warten..."
     .ActiveWindow.DisplayGridlines = False

'ermittle aktuell letzte Zeile die benutzt wird...
intzeile = .activesheet.usedrange.rows.count + 1
.range("A" &intzeile).activate
intzeile = intzeile + 1



            'erstelle Hilfstabelle für Diagram
            .activesheet.name="uebersicht"

     .range("A1").value="Ordner"
     .range("B1").value="Ordnergröße"
     intzeile2 = 2
End With
DoFolders(Fld)



Sub DoFolders(Folder)

With objxl
For Each SubFolder In Folder.SubFolders
          .range("A" & intzeile2).value=subfolder.path
           .range("B" & intzeile2).value= GetMB(subfolder.Size)
               .range("B" & intzeile2).value= .range("B" & intzeile2).value * 1
               .range("B" & intzeile2).NumberFormat = "0.00 "" MB"""
     intzeile2 = intzeile2 + 1
     
     DoFolders(SubFolder)
Next

For Each File In Folder.Files
     fi1 = fi1 + file.size
     
     
Next
.range("a" & intzeile2).value="Dateien in H:\"
     .range("B" & intzeile2).value=GetMB(fi1)
     .range("B" & intzeile2).value= .range("B" & intzeile2).value * 1
     .range("B" & intzeile2).NumberFormat = "0.00 "" MB"""
End With

End Sub

Ein Beispiel:

H:\Ordner1\Ordner2\Ordner3

Ordner1 und Ordner2 sind leer - Ordner3 enthält 50 MB
Das Script zeigt dann sowohl in Ordner1, Ordner2 und Ordner3 die 50 MB an.

Ich habe schon einiges versucht - allerdings schein ich den Wald vor lauter Bäumen nicht mehr zu sehen...

Kann mir jemand helfen?

schöne Grüße

Andreas Münzberg

Antworten

  Zurück zum Forum



 Klassische Programmierung (Scripting, COM) -- Windows Scripting, VBScript, VB6, u.a.
 Verzeichnisse auslesen mit Größe klappt nicht ganz von AndreasMünzberg  am 1.8.2008 12:54:12 PM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019