gelöst verzeichnisstruktur auslesen und ordnergroesse anzeigen
meckatzermichel (Level 1) - Jetzt verbinden
09.08.2006, aktualisiert 11.08.2006, 22636 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
01.
::------snipp Dirsize.bat (Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv]
02.
@echo off & setlocal & Set DIRCMD=
03.
IF /i [%2]==[/R] for /R "%~1" %%a in (.) do @%0 "%%a"
04.
If exist "%1" (
05.
for /f "tokens=3" %%c in ('dir "%~1" /-c /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c
06.
)
07.
if defined DirSize set "Dirsize=__________%Dirsize%"
08.
if defined DirSize echo %DirSize:~-10% %~f1
09.
::------snapp Dirsize.bat
01.
>dirsize %windir%\System32\wbem /R
02.
__36521657 C:\WINDOWS\system32\wbem
03.
___7122572 C:\WINDOWS\system32\wbem\AutoRecover
04.
____196025 C:\WINDOWS\system32\wbem\Logs
05.
_____73689 C:\WINDOWS\system32\wbem\mof
06.
_________0 C:\WINDOWS\system32\wbem\mof\bad
07.
_____73689 C:\WINDOWS\system32\wbem\mof\good
08.
______2929 C:\WINDOWS\system32\wbem\Performance
09.
__10607952 C:\WINDOWS\system32\wbem\Repository
10.
__10607932 C:\WINDOWS\system32\wbem\Repository\FS
11.
_________0 C:\WINDOWS\system32\wbem\snmp
12.
_____66942 C:\WINDOWS\system32\wbem\xml
13.
(=20:00:55 D:\temp=)
14.
>dirsize %windir%\System32\wbem
15.
__36521657 C:\WINDOWS\system32\wbem
16.
(=20:00:57 D:\temp=)
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]
01.
::------snipp Dirsize.bat (Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv] /opt. par3 =Ebenen
02.
@echo off & setlocal & Set DIRCMD=
03.
IF /i [%2]==[/R] for /R "%~1" %%a in (.) do @%0 "%%a" %3
04.
if not [%2]==[] Set /a "Level=%2+2"
05.
if defined level for /f "delims=\ tokens=1,%level%" %%i in ("%~1") do if not [%%j]==[] goto :eof
06.
If exist "%1" (
07.
for /f "tokens=3" %%c in ('dir "%~1" /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c
08.
)
09.
set "space20=____________________"
10.
if defined DirSize set "Dirsize=%space20%%Dirsize%"
11.
if defined DirSize echo %DirSize:~-15% %~f1
12.
::------snapp Dirsize.bat
01.
(=13:09:32 D:\temp=)
02.
>dirsize %windir%\System32\wbem /R 4
03.
_____36.531.418 C:\WINDOWS\system32\wbem
04.
05.
(=13:09:35 D:\temp=)
06.
>dirsize %windir%\System32\wbem /R 6
07.
_____36.531.418 C:\WINDOWS\system32\wbem
08.
______7.122.572 C:\WINDOWS\system32\wbem\AutoRecover
09.
________205.786 C:\WINDOWS\system32\wbem\Logs
10.
_________73.689 C:\WINDOWS\system32\wbem\mof
11.
_____________ 0 C:\WINDOWS\system32\wbem\mof\bad
12.
_________73.689 C:\WINDOWS\system32\wbem\mof\good
13.
__________2.929 C:\WINDOWS\system32\wbem\Performance
14.
_____10.607.952 C:\WINDOWS\system32\wbem\Repository
15.
_____10.607.932 C:\WINDOWS\system32\wbem\Repository\FS
16.
______________0 C:\WINDOWS\system32\wbem\snmp
17.
_________66.942 C:\WINDOWS\system32\wbem\xml
18.
19.
(=13:10:16 D:\temp=)
20.
>dirsize %windir%\System32\wbem /R 5
21.
_____36.531.418 C:\WINDOWS\system32\wbem
22.
______7.122.572 C:\WINDOWS\system32\wbem\AutoRecover
23.
________205.786 C:\WINDOWS\system32\wbem\Logs
24.
_________73.689 C:\WINDOWS\system32\wbem\mof
25.
__________2.929 C:\WINDOWS\system32\wbem\Performance
26.
_____10.607.952 C:\WINDOWS\system32\wbem\Repository
27.
______________0 C:\WINDOWS\system32\wbem\snmp
28.
_________66.942 C:\WINDOWS\system32\wbem\xml
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.
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte