Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Script Anzeige von mehreren Verzeichnisgrössen mit Auswertung

Frage Entwicklung Batch & Shell

Mitglied: buxi

buxi (Level 1) - Jetzt verbinden

23.01.2008, aktualisiert 24.01.2008, 6102 Aufrufe, 4 Kommentare

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
Mitglied: miniversum
23.01.2008 um 17:43 Uhr
Das wäre dann sowas wie das hier: http://www.administrator.de/batch_ordnergr%C3%B6%C3%9Fe_Berechnen.html

in einer For-Schleife.
Bitte warten ..
Mitglied: gemini
23.01.2008 um 17:43 Uhr
Hallo buxi,

hier ein kleines Script das von zwei Verzeichnissen die Größen addiert und anhand des ermittelten Wertes das weitere Vorgehen entscheidet.
01.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
02.
Set WshShell = WScript.CreateObject("WScript.Shell") 
03.
 
04.
' Die Befehlszeile für Robocopy inkl. Schalter (/JOB, /LOG etc.) (Anpassen!) 
05.
strCmd = "c:\...\Robocopy.exe ......" 
06.
 
07.
' Das erste Verzeichnis laden... (Pfad anpassen!) 
08.
Set objFolder = objFSO.GetFolder("C:\Programme\Adobe") 
09.
' ... dessen Größe in Bytes in eine Variable schreiben 
10.
Fld1 = objFolder.Size 
11.
' Dito für das zweite Verzeichnis (Pfad anpassen!) 
12.
Set objFolder = objFSO.GetFolder("C:\Programme\ASUS") 
13.
Fld2 = objFolder.Size 
14.
 
15.
' In GB umrechnen und entscheiden, ob Robocopy gestartet werden soll 
16.
If (Fld1 + Fld2)/1073741824 < 3.6 Then 
17.
	' Der Aufruf von Robocopy 
18.
	WshShell.Run strCmd 
19.
	' Damit der Benutzer erfährt wenn Robocopy fertig ist... 
20.
	MsgBox "Fertig!" 
21.
Else 
22.
	' ... oder warum nicht kopiert werden kann 
23.
	MsgBox "Kopiervorgang konnte nicht gestartet werden! " & vbCrLf & "Ordnergröße: " & (Fld1 + Fld2)/1073741824 & " GB" 
24.
End If
HTH,
gemini
Bitte warten ..
Mitglied: Biber
23.01.2008 um 18:22 Uhr
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
Diruse [-optionen] [Liste von Verzeichnissen]

Wenn davon das Wesentliche rausgefiltert wird, ergibt sich innerhalb von kurzer Zeit so etwas
01.
>diruse -s "y:\Eigene Dateien" d:\temp|find /i "  TOTAL" 
02.
    618280875   4982  TOTAL
... 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
Bitte warten ..
Mitglied: buxi
24.01.2008 um 14:05 Uhr
Hallo zusammen,

danke für die vielen Anregungen und Hinweise.
Ich poste falls ich die eine oder andere
Verständnisfrage habe.
Die kommen bestimmt ....

Gruß
Buxi
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
Script zum Auflösen einer Ordnerstruktur und zurück gesucht (12)

Frage von websolutions zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...