zorn89
Goto Top

Suche script was mich den zu suchen Ordner angeben lässt und ab welcher größe er angezeigt werden soll!

Hallo liebe Gleichgesinnte,

ich bin Speicheradministrator und suche ein script was mir im "User" verzeichnis alle Desktopordner angibt die > 1 mb sind.

Ich hatte es mir so vorgestellt, das ich dem script das laufwerk bekannt mache und ihm dann sage nach welchem Ordner er suchen soll und weiter wie groß die Ordner min. sein sollen damit sie angezeit werden. Das ganze soll am besten in eine .txt mit dem Pfad geschrieben werden wo die Desktopordner sich befinden.

Ich wäre euch sehr dankbar für eure Hilfe.

Content-Key: 181003

Url: https://administrator.de/contentid/181003

Printed on: April 16, 2024 at 19:04 o'clock

Member: bastla
bastla Feb 24, 2012 at 18:08:45 (UTC)
Goto Top
Hallo zorn89 und willkommen im Forum!

Ein VBScript könnte etwa so aussehen:
StartFolder = WScript.Arguments(0)
FolderName = "Desktop" 'gesuchter Ordnername  
Limit = 1000000 'Untergrenze Ordnergröße in Bytes  

Result = ""  
Set fso = CreateObject("Scripting.FileSystemObject")  
DoSubFolders fso.GetFolder(StartFolder)
WScript.Echo Result

Sub DoSubFolders(Folder)
    For Each SubFolder in Folder.SubFolders
        If LCase(SubFolder.Name) = LCase(FolderName) Then ' Groß-/Kleinschreibung bei der Prüfung des Ordnernamens ignorieren          
            If SubFolder.Size > Limit Then
                Result = Result & Chr(34) & SubFolder.Path & Chr(34) & ";" & SubFolder.Size & vbCrLF  
            End If
        Else 'weitersuchen  
            DoSubFolders SubFolder 'Rekursion  
        End If
    Next
End Sub
Dieses Script (beispielsweise gespeichert als "D:\Scripts\ListBigFolders.vbs ") erwartet den Startordner als Aufrufparameter und wäre daher aus einem CMD-Fenster etwa so zu starten:
cscript //nologo D:\Scripts\ListBigFolders.vbs D:\Users
Um eine Textdatei zu erstellen, genügt es, die Ausgabe umzuleiten:
cscript //nologo D:\Scripts\ListBigFolders.vbs D:\Users >D:\BigFolders.txt
Es kann natürlich auch der Startordner in Zeile 1 fest verdrahtet werden:
StartFolder = "D:\Users"
Auch das Erstellen der Datei lässt sich in das Script aufnehmen - dazu nach (oder anstatt) Zeile 8 einfügen:
fso.CreateTextFile("D:\BigFolders.txt").Write Result
Grüße
bastla
Member: zorn89
zorn89 Mar 20, 2012 at 07:00:09 (UTC)
Goto Top
Hi Bastla,

erst mal vielen dank für deine Antwort.

Ich hab mal ein wenig gesucht, weil immer in zeile 7 ein fehler geworfen wird "Laufzeitfehler in MS VBScript: Der Pfad wurde nicht gefunden." und dabei festgestellt, dass ich die FSO's erstmal iwo global bkanntmachen muss. Ich schreibe in notepad++, aber da kann ich das iwie nicht finden. Weiß jemand von euch einen Tip oder die Lösung?
Member: bastla
bastla Mar 20, 2012 at 08:47:57 (UTC)
Goto Top
Hallo zorn89!

Wie startest Du denn das Script? Die Fehlermeldung deutet eher darauf hin, dass Du den Startordner nicht (richtig) übergibst (denn das "FileSystemObject" kennt das Script schon seit Zeile 6) ...

Grüße
bastla
Member: zorn89
zorn89 Mar 20, 2012 at 10:07:36 (UTC)
Goto Top
Ich habe insgesamt zwei Dateien, einmal das Script an sich und eine "start.bat," inder der Aufruf des Scripts vorgenommen wird.

'Start.bat

call cscript C:\Scripts\ListBigFolders.vbs W:\Users >C:\Temp\BigFolders.txt
pause


Das ist eig. alles und ich muss es leider so aufrufen, da die Assoziation auf .vbs Datei per gpo Richtline entfernt wurde. ^^
Member: bastla
bastla Mar 20, 2012 at 10:47:40 (UTC)
Goto Top
Hallo zorn89!

Besser wäre zwar
cscript //nologo C:\Scripts\ListBigFolders.vbs W:\Users >C:\Temp\BigFolders.txt
aber daran soll's nicht scheitern - damit bleibt die Frage, ob es beim Start des Scripts den Pfad "W:\Users" gibt (Mapping?) und ob Du auch die nötigen Berechtigungen für alle zu prüfenden Ordner hast (sollte ggf allerdings zu "Permission denied" führen) ...

Grüße
bastla

P.S.:
ich muss es leider so aufrufen
Über "WScript.exe" würdest Du das ohnehin nicht wollen ... face-wink
Member: zorn89
zorn89 Mar 20, 2012 at 10:55:35 (UTC)
Goto Top
Hallo Bastla,

ich glaubs ja nicht, es läuft durch! Super ich danke dir! Aber eig. sollte es nicht daran liegen! Aber es läuft, vielen Dank!

Eine kleine frage hätte ich noch, kann ich im script gleich die umrechnung in MB mit einbeiehen, sodass in der txt die Größe in MB steht?

Vielen Dank!

Zorn
Member: bastla
bastla Mar 20, 2012 at 11:04:59 (UTC)
Goto Top
Hallo zorn89!

Etwa so:
Result = Result & Chr(34) & SubFolder.Path & Chr(34) & ";" & FormatNumber(SubFolder.Size / 1048576, 2) & vbCrLF
- passend dazu: http://technet.microsoft.com/en-us/library/ee176975.aspx

Grüße
bastla
Member: zorn89
zorn89 Mar 20, 2012 at 11:23:00 (UTC)
Goto Top
Hallo Bastla,

Vielen Dank für deine super Hilfe!

LG