Script Anzeige von mehreren Verzeichnisgrössen mit Auswertung
Script soll Grösse von mehr. Verz. anz. und bei Überschreitung einer def. eine Aktion ausf.
Hallo und ein gutes neues Jahr :- );
Folgendes hätte ich heute als Frage anzubieten:
Es soll auf einem XP-Rechner die Grösse von mehreren Verzeichnissen
ermittelt werden ( z. B. C:\data und C: Programme\test etc. ).
Dies per Script.
Die Grössen sollen dann addiert werden und einen bestimmten Wert
( z. B. 3,6 GB ) nicht überschreiten.
Falls dies Grössenüberschreitung geschieht soll eine Meldung erfolgen
( geht das per Kommandozeile oder auch per normalen WSH-Script vbs-File ?)
und eine nachfolgende Batch nicht ausgeführt werden.
Es wird dieser Script benötigt,
weil auf ein ext. Sicherungsmedium (USB-Stick max. 4 GB)
Dateien per MS-robocop* zu
kopieren sind ( die Batch dafür ist schon fertig und würde
die Dateien aus den o. g. Verzeichnissen kopieren ).
Dafür darf die Menge der zu sichernden Dateien nicht mehr als
3,6 GB sein und man braucht vorher eine Ermittlung.
Hat jemand eine einigermassen simple Lösung die auch
im Script mit Anmerkungen zum Verständnis ist ?
Many thanks in advance
Buxi
Hallo und ein gutes neues Jahr :- );
Folgendes hätte ich heute als Frage anzubieten:
Es soll auf einem XP-Rechner die Grösse von mehreren Verzeichnissen
ermittelt werden ( z. B. C:\data und C: Programme\test etc. ).
Dies per Script.
Die Grössen sollen dann addiert werden und einen bestimmten Wert
( z. B. 3,6 GB ) nicht überschreiten.
Falls dies Grössenüberschreitung geschieht soll eine Meldung erfolgen
( geht das per Kommandozeile oder auch per normalen WSH-Script vbs-File ?)
und eine nachfolgende Batch nicht ausgeführt werden.
Es wird dieser Script benötigt,
weil auf ein ext. Sicherungsmedium (USB-Stick max. 4 GB)
Dateien per MS-robocop* zu
kopieren sind ( die Batch dafür ist schon fertig und würde
die Dateien aus den o. g. Verzeichnissen kopieren ).
Dafür darf die Menge der zu sichernden Dateien nicht mehr als
3,6 GB sein und man braucht vorher eine Ermittlung.
Hat jemand eine einigermassen simple Lösung die auch
im Script mit Anmerkungen zum Verständnis ist ?
Many thanks in advance
Buxi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78953
Url: https://administrator.de/forum/script-anzeige-von-mehreren-verzeichnisgroessen-mit-auswertung-78953.html
Ausgedruckt am: 29.12.2024 um 10:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo buxi,
hier ein kleines Script das von zwei Verzeichnissen die Größen addiert und anhand des ermittelten Wertes das weitere Vorgehen entscheidet.
HTH,
gemini
hier ein kleines Script das von zwei Verzeichnissen die Größen addiert und anhand des ermittelten Wertes das weitere Vorgehen entscheidet.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
' Die Befehlszeile für Robocopy inkl. Schalter (/JOB, /LOG etc.) (Anpassen!)
strCmd = "c:\...\Robocopy.exe ......"
' Das erste Verzeichnis laden... (Pfad anpassen!)
Set objFolder = objFSO.GetFolder("C:\Programme\Adobe")
' ... dessen Größe in Bytes in eine Variable schreiben
Fld1 = objFolder.Size
' Dito für das zweite Verzeichnis (Pfad anpassen!)
Set objFolder = objFSO.GetFolder("C:\Programme\ASUS")
Fld2 = objFolder.Size
' In GB umrechnen und entscheiden, ob Robocopy gestartet werden soll
If (Fld1 + Fld2)/1073741824 < 3.6 Then
' Der Aufruf von Robocopy
WshShell.Run strCmd
' Damit der Benutzer erfährt wenn Robocopy fertig ist...
MsgBox "Fertig!"
Else
' ... oder warum nicht kopiert werden kann
MsgBox "Kopiervorgang konnte nicht gestartet werden! " & vbCrLf & "Ordnergröße: " & (Fld1 + Fld2)/1073741824 & " GB"
End If
gemini
Moin buxi,
wobei ich trotz meiner eigenen Vorliebe zum Selber-Zusammenschroten fairerweise darauf hinweisen möchte, dass manche Räder schon erfunden worden sind.
Und zu allem Überfluss sind die auch sauschnell manchmal.
Es gibt tonnenweise Freeware-Utilities namens "DirUse.exe", "DU.exe", also von Unix portierte liebgewonnene Helferchen, die Verzeichnisgrößen aufsummieren.
Deren Syntax ist in der Regel
Wenn davon das Wesentliche rausgefiltert wird, ergibt sich innerhalb von kurzer Zeit so etwas
... also eine einzige Zeile/eine einzige Zahl, die verglichen werden muss.
Weswegen ich übrigens eigentlich poste: Diese Floskel "Many thanks in advance" erkenne ich auch auf ausländisch wieder... bitte gib lieber (wie gewohnt) Rückmeldung statt vorauseilend zu danken.
Siehe dazu auch das Negativbeispiel oben (miniversums Link).
Grüße
Biber
wobei ich trotz meiner eigenen Vorliebe zum Selber-Zusammenschroten fairerweise darauf hinweisen möchte, dass manche Räder schon erfunden worden sind.
Und zu allem Überfluss sind die auch sauschnell manchmal.
Es gibt tonnenweise Freeware-Utilities namens "DirUse.exe", "DU.exe", also von Unix portierte liebgewonnene Helferchen, die Verzeichnisgrößen aufsummieren.
Deren Syntax ist in der Regel
Diruse [-optionen] [Liste von Verzeichnissen]
Wenn davon das Wesentliche rausgefiltert wird, ergibt sich innerhalb von kurzer Zeit so etwas
>diruse -s "y:\Eigene Dateien" d:\temp|find /i " TOTAL"
618280875 4982 TOTAL
Weswegen ich übrigens eigentlich poste: Diese Floskel "Many thanks in advance" erkenne ich auch auf ausländisch wieder... bitte gib lieber (wie gewohnt) Rückmeldung statt vorauseilend zu danken.
Siehe dazu auch das Negativbeispiel oben (miniversums Link).
Grüße
Biber