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

Größe eines bestimmten Ordners bestimmen, der in div. Unterordnern vorkommt

Frage Entwicklung Batch & Shell

Mitglied: kugman

kugman (Level 1) - Jetzt verbinden

04.01.2012 um 08:54 Uhr, 2826 Aufrufe, 2 Kommentare

Hallo zusammen.

zuerst mal wünsch ich Euch allen ein gutes und erfolgreiches neues Jahr!

Ich habe auf einem Netzwerklaufwerk folgende Struktur:
Jeder Kunde(ca. 500) hat sein eigenes Verzeichnis, die Verzeichnisstruktur unterhalb des Kundennamen ist für alle Kunden identisch. Das bedeutet, es gibt in jedem Kundenordner die selben 20 Unterordner.
Nun möchte ich gerne in einem ersten Schritt für jeden Kunden die Größe eines bestimmten (immer gleich heißenden) Unterordners ermitteln.
In einem zweiten Schritt möchte ich die Dateien nach Erstellungsjahr in 7z-Archive packen (also ein Archiv für 2001, eines für 2002, etc...)

wie kann ich das am besten anstellen?

Vielen Dank schon mal
Mitglied: scan5415
04.01.2012 um 10:13 Uhr
Hallo

Hast du Google bereits mal gefragt?

Ich würde für ein solches Script VBS verwenden.

Dazu gibt es für die Ordnergrösse folgendes Script:
http://www.mcseboard.de/windows-forum-scripting-71/ordnergroesse-vbs-er ...

Ein 7-zip kannst du über das Consolenprogramm erstellen:
http://www.dotnetperls.com/7-zip-examples

Damit du das Alter der Files prüfen kannst musst du mit einer FOR Schleife jede Datei im Ordner durchgehen. Hilfe dazu findest du hier:
http://www.vb-magazin.de/forums/forums/p/4054/15505.aspx

Und ich denke mit ein bisschen googlen findest du auch noch raus wie man das Alter einer Datei bestimmen kann.

Das alles einbisschen durchrühren und zusammenmischen und du hast dein Script. ;)
Bitte warten ..
Mitglied: bastla
04.01.2012 um 10:57 Uhr
Hallo kugman!

Da Du in Deiner Beschreibung sehr allgemein bleibst, muss ich das auch in meinem (ungetesteten) Batch-Ansatz:
01.
@echo off & setlocal 
02.
set "Basis=D:\Alle Kunden" 
03.
set "Ordner=Name des Unterordners" 
04.
set "Ziel=Ordner fuer gapackte Daten" 
05.
set "Sammel=%temp%\Jahre" 
06.
 
07.
for /d %%i in ("%Basis%\*") do call :ProcessDir "%%i" 
08.
goto :eof 
09.
 
10.
:ProcessDir 
11.
for /f "tokens=3" %%a in ('dir /s "%~1\%Ordner%"^|findstr "Datei(en)"') do set "Bytes=%%a" 
12.
echo %%a Bytes fuer %~nx1 
13.
goto :eof
Nach dem selben Schema kannst Du im Unterprogramm ":ProcessDir" mit
01.
for /f "delims=" %%a in ('dir /s/b/a-d "%~1\%Ordner%"') do for /f "tokens=3 delims=. " %%d in ("%%~ta") do ( 
02.
    md "%Sammel%\%%~nxd" 2>nul 
03.
    copy "%%a" "%Sammel%\%%~nxd" 
04.
05.
for /d %%d in ("%Sammel%\*") do echo 7z a "%Ziel%\%~nx1\%%~nxd" "%%d\*.*" 
06.
rd /s /q "%Sammel%" 2>nul 
07.
goto :eof
das Aufteilen und Packen versuchen.

Die Zeile 5 zeigt übrigens (wegen des "echo") die Packbefehle nur einmal an ...
Zum Ablauf: Es werden zunächst im Ordner "%Sammel%" Unterordner für die einzelnen Jahre gebildet, in diese Ordner die Dateien kopiert, danach diese Jahresordner komprimiert und wieder gelöscht.

Der obige Ansatz geht vom Änderungsdatum aus - soll tatsächlich das Erstellungsdatum verwendet werden, wäre die erste Zeile durch
for /f "delims=" %%a in ('dir /s/b/a-d "%~1\%Ordner%"') do for /f "tokens=3 delims=. " %%d in ('dir /tc "%%a"^|findstr /i /e "%%~nxa"') do (
zu ersetzen ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Ubuntu
gelöst Schattenkopien eines bestimmten Ordners speichern (2)

Frage von Brombaermetzger zum Thema Ubuntu ...

Windows Tools
Netzwerkkarte pro Software bestimmen (19)

Frage von SirTobi27 zum Thema Windows Tools ...

Batch & Shell
gelöst Batch: alle Ordner mit einem bestimmten Namen kopieren (4)

Frage von Remsboys zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...