verzeichnisstruktur auslesen und ordnergroesse anzeigen
meckatzermichel (Level 1) - Jetzt verbinden
09.08.2006, aktualisiert 11.08.2006, 23410 Aufrufe, 9 Kommentare
hallo,
ich suche ein batch, dass mir die die verzeichnissstruktur ausliest (also ähnlich befehl tree) und zu den jeweiligen ordnern die grösse (in MB) anzeigt.
das ganze sollte ab einem zu bestimmenden ordner starten und mind. 2 ebenen tief gehen.
hat hier jemand sowas schon gemacht?
geht das mit batch?
die tools die es so gibt, verlangen leider immer, dass man jeden ordner einzeln anklickt.
danke und gruss
michel
ich suche ein batch, dass mir die die verzeichnissstruktur ausliest (also ähnlich befehl tree) und zu den jeweiligen ordnern die grösse (in MB) anzeigt.
das ganze sollte ab einem zu bestimmenden ordner starten und mind. 2 ebenen tief gehen.
hat hier jemand sowas schon gemacht?
geht das mit batch?
die tools die es so gibt, verlangen leider immer, dass man jeden ordner einzeln anklickt.
danke und gruss
michel
9 Antworten
- LÖSUNG MonsterX schreibt am 09.08.2006 um 16:13:14 Uhr
- LÖSUNG meckatzermichel schreibt am 09.08.2006 um 17:07:10 Uhr
- LÖSUNG geTuemII schreibt am 09.08.2006 um 17:23:01 Uhr
- LÖSUNG Biber schreibt am 09.08.2006 um 17:43:58 Uhr
- LÖSUNG Biber schreibt am 09.08.2006 um 20:09:07 Uhr
- LÖSUNG meckatzermichel schreibt am 10.08.2006 um 11:31:01 Uhr
- LÖSUNG Biber schreibt am 10.08.2006 um 13:12:59 Uhr
- LÖSUNG meckatzermichel schreibt am 11.08.2006 um 13:20:31 Uhr
- LÖSUNG Biber schreibt am 11.08.2006 um 13:53:48 Uhr
- LÖSUNG meckatzermichel schreibt am 11.08.2006 um 13:20:31 Uhr
- LÖSUNG Biber schreibt am 10.08.2006 um 13:12:59 Uhr
- LÖSUNG meckatzermichel schreibt am 10.08.2006 um 11:31:01 Uhr
- LÖSUNG geTuemII schreibt am 09.08.2006 um 17:23:01 Uhr
- LÖSUNG meckatzermichel schreibt am 09.08.2006 um 17:07:10 Uhr
LÖSUNG 09.08.2006 um 16:13 Uhr
die tools die es so gibt, verlangen leider immer, dass man jeden ordner einzeln anklickt.
Bitte? Schau dir das mal an:
http://www.spillett.net/~dirgraph/
MFG,
Denis Hierholzer
LÖSUNG 09.08.2006 um 17:07 Uhr
hi denis,
nicht schlecht.
(allerdings funktioniert die directory properties funktion bei mir nicht (winxp))
gruss
michel
nicht schlecht.
(allerdings funktioniert die directory properties funktion bei mir nicht (winxp))
gruss
michel
LÖSUNG 09.08.2006 um 17:23 Uhr
LÖSUNG 09.08.2006 um 17:43 Uhr
...und bei einer Forumssuche nach "DirSize" findest du auch ein paar reine Batchansätze.
Und da das Thema ein sehr beliebtes Übungsfeld speziell für VB/VBS-Einsteiger ist ( so mit FileSystemObjects und Rekursion...boah eyy..).. findest Du bestimmt in Suchmaschinen auch TreeSize.vbs'se oder DirSize.vbs'se.
HTH Biber
Und da das Thema ein sehr beliebtes Übungsfeld speziell für VB/VBS-Einsteiger ist ( so mit FileSystemObjects und Rekursion...boah eyy..).. findest Du bestimmt in Suchmaschinen auch TreeSize.vbs'se oder DirSize.vbs'se.
HTH Biber
LÖSUNG 09.08.2006 um 20:09 Uhr
Aber wenn es eine 7-Zeilen-Gratis-Variante als Batch sein soll:
Output:
HTH Biber
P.S. Anmerkung: "Verzeichnisnamen mit Leerzeichen" als Parameter müssen in Anführungszeichen.
P.P.S. Habe hier im Forum Unterstriche "_" statt Leerzeichen genommen, das Leerzeichen hier zu verzerrter Darstellung führen.
Beispiel: DirSize "%userprofile%" ...oder DirSize "c:\Dokumente und Einstellungen" /R
::------snipp Dirsize.bat (Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv]
@echo off & setlocal & Set DIRCMD=
IF /i [%2]==[/R] for /R "%~1" %%a in (.) do @%0 "%%a"
If exist "%1" (
for /f "tokens=3" %%c in ('dir "%~1" /-c /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c
)
if defined DirSize set "Dirsize=__________%Dirsize%"
if defined DirSize echo %DirSize:~-10% %~f1
::------snapp Dirsize.bat
>dirsize %windir%\System32\wbem /R
__36521657 C:\WINDOWS\system32\wbem
___7122572 C:\WINDOWS\system32\wbem\AutoRecover
____196025 C:\WINDOWS\system32\wbem\Logs
_____73689 C:\WINDOWS\system32\wbem\mof
_________0 C:\WINDOWS\system32\wbem\mof\bad
_____73689 C:\WINDOWS\system32\wbem\mof\good
______2929 C:\WINDOWS\system32\wbem\Performance
__10607952 C:\WINDOWS\system32\wbem\Repository
__10607932 C:\WINDOWS\system32\wbem\Repository\FS
_________0 C:\WINDOWS\system32\wbem\snmp
_____66942 C:\WINDOWS\system32\wbem\xml
(=20:00:55 D:\temp=)
>dirsize %windir%\System32\wbem
__36521657 C:\WINDOWS\system32\wbem
(=20:00:57 D:\temp=)
HTH Biber
P.S. Anmerkung: "Verzeichnisnamen mit Leerzeichen" als Parameter müssen in Anführungszeichen.
P.P.S. Habe hier im Forum Unterstriche "_" statt Leerzeichen genommen, das Leerzeichen hier zu verzerrter Darstellung führen.
Beispiel: DirSize "%userprofile%" ...oder DirSize "c:\Dokumente und Einstellungen" /R
LÖSUNG 10.08.2006 um 11:31 Uhr
hi all,
@Denis
also, dirgraph ist nicht schlecht wenn ich es interaktiv nutze, aber als liste ist nicht geeignet, weil ich das ergebnis nur als bild abspeichern kann.
@geTuemII
ich kenn treesize pro, aber ich krieg kein geld für sowas.
@Biber
also vb ist gar nicht meine welt. der batch reicht mir eigentlich. vielen dank.
kannst du mir noch einen tipp geben, wie ich die tiefe der rekursion beschränken kann? also z.b. soll er nur 3 ebenen runtergehen.
bin froh dass ich dein script so einigermassen verstehen.
gruss
meckatzermichel
achja, wenn ich das /-c rauslasse damit er das tausendertrenner anzeigt, dann stimmt das ergebnis nicht mehr. hast du das schon mal gesehen ?
@Denis
also, dirgraph ist nicht schlecht wenn ich es interaktiv nutze, aber als liste ist nicht geeignet, weil ich das ergebnis nur als bild abspeichern kann.
@geTuemII
ich kenn treesize pro, aber ich krieg kein geld für sowas.
@Biber
also vb ist gar nicht meine welt. der batch reicht mir eigentlich. vielen dank.
kannst du mir noch einen tipp geben, wie ich die tiefe der rekursion beschränken kann? also z.b. soll er nur 3 ebenen runtergehen.
bin froh dass ich dein script so einigermassen verstehen.
gruss
meckatzermichel
achja, wenn ich das /-c rauslasse damit er das tausendertrenner anzeigt, dann stimmt das ergebnis nicht mehr. hast du das schon mal gesehen ?
LÖSUNG 10.08.2006 um 13:12 Uhr
na, dann wird aber aber bald ein 10-Zeiler daraus...
Output:
HTH
Biber
[Edit] @meckatzermichel
Ich hatte extra die Tausender-Punkte unterdrückt, damit es am Ende bei der Anzeige einfacher ist, den Krempel mit..
If defined DirSize Set /a Dirsize=%Dirsize%/1048576
.. in MegaByte umzurechen.
[/Edit]
---
P.S. Habe hier im Forum Unterstriche "_" statt Leerzeichen genommen, da Leerzeichen hier zu verzerrter Darstellung führen.
[Edit 21.7.2007] Erweiterte, robustere Version wurde hier im Forum entwickelt. [/Edit]
::------snipp Dirsize.bat (Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv] /opt. par3 =Ebenen
@echo off & setlocal & Set DIRCMD=
IF /i [%2]==[/R] for /R "%~1" %%a in (.) do @%0 "%%a" %3
if not [%2]==[] Set /a "Level=%2+2"
if defined level for /f "delims=\ tokens=1,%level%" %%i in ("%~1") do if not [%%j]==[] goto :eof
If exist "%1" (
for /f "tokens=3" %%c in ('dir "%~1" /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c
)
set "space20=____________________"
if defined DirSize set "Dirsize=%space20%%Dirsize%"
if defined DirSize echo %DirSize:~-15% %~f1
::------snapp Dirsize.bat
(=13:09:32 D:\temp=)
>dirsize %windir%\System32\wbem /R 4
_____36.531.418 C:\WINDOWS\system32\wbem
(=13:09:35 D:\temp=)
>dirsize %windir%\System32\wbem /R 6
_____36.531.418 C:\WINDOWS\system32\wbem
______7.122.572 C:\WINDOWS\system32\wbem\AutoRecover
________205.786 C:\WINDOWS\system32\wbem\Logs
_________73.689 C:\WINDOWS\system32\wbem\mof
_____________ 0 C:\WINDOWS\system32\wbem\mof\bad
_________73.689 C:\WINDOWS\system32\wbem\mof\good
__________2.929 C:\WINDOWS\system32\wbem\Performance
_____10.607.952 C:\WINDOWS\system32\wbem\Repository
_____10.607.932 C:\WINDOWS\system32\wbem\Repository\FS
______________0 C:\WINDOWS\system32\wbem\snmp
_________66.942 C:\WINDOWS\system32\wbem\xml
(=13:10:16 D:\temp=)
>dirsize %windir%\System32\wbem /R 5
_____36.531.418 C:\WINDOWS\system32\wbem
______7.122.572 C:\WINDOWS\system32\wbem\AutoRecover
________205.786 C:\WINDOWS\system32\wbem\Logs
_________73.689 C:\WINDOWS\system32\wbem\mof
__________2.929 C:\WINDOWS\system32\wbem\Performance
_____10.607.952 C:\WINDOWS\system32\wbem\Repository
______________0 C:\WINDOWS\system32\wbem\snmp
_________66.942 C:\WINDOWS\system32\wbem\xml
HTH
Biber
[Edit] @meckatzermichel
Ich hatte extra die Tausender-Punkte unterdrückt, damit es am Ende bei der Anzeige einfacher ist, den Krempel mit..
If defined DirSize Set /a Dirsize=%Dirsize%/1048576
.. in MegaByte umzurechen.
[/Edit]
---
P.S. Habe hier im Forum Unterstriche "_" statt Leerzeichen genommen, da Leerzeichen hier zu verzerrter Darstellung führen.
[Edit 21.7.2007] Erweiterte, robustere Version wurde hier im Forum entwickelt. [/Edit]
LÖSUNG 11.08.2006 um 13:20 Uhr
danke biber.
echt genial....
muss dir doch mal ein bier schicken...
gruss
michel
echt genial....
muss dir doch mal ein bier schicken...
gruss
michel
LÖSUNG 11.08.2006 um 13:53 Uhr
muss dir doch mal ein bier schicken
Gerne! Im Moment wäre es sogar sinnvoll, ein paar Flaschen Becks zu mir nach Bremen zu schicken...
Durch die Fussball-WM gibt es immer noch Lieferengpässe (angeblich nur in Bremen selbst).
Aber ich habe auch keine Berührungsängste mit Hefe-, Kristall- oder Weizenbier...
Danke und schönes Wochenende
Biber
P.S. Setz bitte den Beitrag auf "Gelöst", wenn keine Fragen mehr offen sind.