schimpy
Goto Top

Dateigröße herausfinden per BATCH

mit BATCH herausfinden wie groß die Dateien unterhalb von D:\ sind...

mit ner BATCH Datei herausfinden wie groß die Dateien unterhalb von D:\ sind...

jemand ne IdeE?

Content-Key: 56728

Url: https://administrator.de/contentid/56728

Printed on: April 23, 2024 at 10:04 o'clock

Member: bastla
bastla Apr 16, 2007 at 10:44:11 (UTC)
Goto Top
Hallo Schimpy!

Etwa so:
for /f "tokens=1-3" %i in ('dir d:\ /s /-c ^|find "Datei(en)" ^|find "Bytes"') do set Gesamt=%k  
echo %Gesamt%

Grüße
bastla
Member: Janni
Janni Apr 16, 2007 at 10:46:34 (UTC)
Goto Top
Was hältst Du von dem Befehl "dir" ...... ?
Member: Dani
Dani Apr 16, 2007 at 10:53:35 (UTC)
Goto Top
Hi,
schau mal die Lösung von "bastla" an! face-smile


Gruß
Dani
Member: Biber
Biber Apr 16, 2007 at 11:13:06 (UTC)
Goto Top
@Schimpy
1. Oder folge den Links der Fundstellen von Forumssuche nach "DirSize".
2. Und beachte auch bitte die Forumsregeln insbesondere Punkt 5 "Freundlichkeit".
Ein "Guten Tag" und "Guten Weg" bekomme ich sogar von den Rausschmeissern auf der Bremer Discomeile.
Das erwarte ich auch hier.

Gruß
Biber
Member: Schimpy
Schimpy Apr 16, 2007 at 11:27:38 (UTC)
Goto Top
Guuuuten Tag!

I am so sorry face-smile

nächstes mal denke ich wieder dran, war irgendwie im Stress
und mal wieder mit mehreren Sachen gleichzeitig beschäftigt.

Die o.a. Lösung klappt bei mir nicht wirklich, bzw. ich kann sie nicht richtig "einsetzen"

wenn ich sie in die Kommandozeile reinpacke, gibt er mir en paar Größen an
wenn ich sie in ne *.bat Datei kopiere -> "\" ist syntaktisch an dieser Stelle nicht verarbeitbar...

weiss nicht ganz wie ich weiterverfahren soll?

danke!

Gruß
Schimpy
Member: Biber
Biber Apr 16, 2007 at 11:32:10 (UTC)
Goto Top
Moin Schimpy,

bastlas Zeilen funktionieren so wie gepostet am CMD-Prompt.

Im Batch (also nach dem Testen am CMD-Prompt) alle einfachen Prozentzeichen vor den dynamischen Variablen (%i, %k...) ersetzen durch doppelte Prozentzeichen (%%i, %%k...)

Bei der nicht-dynamischen Variable %Gesamt% bleibt es so wie es ist.

P.S. Sorry akzeptiert. Biber wieder lieb is' face-wink

Biber
Member: Schimpy
Schimpy Apr 16, 2007 at 11:57:14 (UTC)
Goto Top
Huhu, ich wieder ;))

jeppa, habs geändert und das Script läuft einwandfrei durch.

Allerdings zeigt mir die Version ja nur die komplette Größe von zB D:\ an...

nun hab ich mal weitergesucht und deinen "Oneliner" DirSize gefunden

::------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

E:\Dirsize.bat D:\
gibt mir nur aus, wie groß D:\ komplett ist

und zB:
E:\Dirsize.bat D:\*.*
geht in den ersten Ordner rein...

kann ich nicht jede Datei durchscannen?

ich habs doch nicht so mit Schleifen face-smile

danke für Eure Mühe face-smile
Member: bastla
bastla Apr 16, 2007 at 12:20:37 (UTC)
Goto Top
Hallo Schimpy!

Vielleicht beschreibst Du einmal ganz genau, was für ein Ergebnis Du eigentlich anstrebst - das macht's etwas einfacher ...

Grüße
bastla
Member: miniversum
miniversum Apr 16, 2007 at 12:57:58 (UTC)
Goto Top
Jede Datei? Naja wenn Dus willst:
Im Batch:
for /f "delims=" %%i in ('dir d:\ /s /B') do Echo Datei:"%%~fi" Grösse:%%~zi

miniversum
Member: Schimpy
Schimpy Apr 16, 2007 at 13:05:13 (UTC)
Goto Top
@miniversum

tutto perfetto!

genau so wollt ich es haben, thx face-smile

Vielen Dank!

P.S.: wärs schwer da noch ne Abfrage reinzupacken...
alle Dateien die größer 1MB sind ins Ergebnis zu schreiben?

bzw. Punkte zur Trennung von byte, kbye, mbyte, gbyte zu machen?
nicht 2567890
sondern 2.567.890 MB?

danke face-smile
Member: miniversum
miniversum Apr 16, 2007 at 14:15:21 (UTC)
Goto Top
Klar das geht alles:
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /s /B') do (  
if %%~zi gtr 1048576 (
set size=%%~zi
set /a mb=!size!/1000000
set /a kb=!size!-!mb!*1000000
set /a kb=!kb!/1000
set /a b=!size!-!mb!*1000000-!kb!*1000
set kb=000!kb!
set b=000!b!

Echo Datei:"%%~fi" Grösse:!mb:~-3!.!kb:~-3!.!b:~-3!  
)
)

miniversum
Member: Biber
Biber Apr 17, 2007 at 17:33:34 (UTC)
Goto Top
Moin Schimpy und miniversum,

freue mich als Mod immer über so kurzweilige und gehaltvolle Batch-Beiträge.

Danke Euch beiden und ich schließe den Beitrag mal.

Wüsste nicht, was da noch viel zu verfeinern wäre... face-wink

Grüße
Biber