verzeichnisstruktur auslesen und ordnergroesse anzeigen
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 37670
Url: https://administrator.de/contentid/37670
Ausgedruckt am: 26.11.2024 um 15:11 Uhr
9 Kommentare
Neuester Kommentar
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
...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
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
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]
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.