spacerpatte

Batch-Datei Ordnergröße von vielen verschiedenen Pfaden aus txt-Datei in Excel-Datei

Hallo,

Ich möchte mir für ein Backup die Größen verschiedener Ordner in einer Excel-Tabelle, oder txt-Datei ausgeben lassen.
Ich habe eine txt-Datei in der alle Pfade aufgelistet sind. Aus dieser möchte ich mir die Größen vor dem Backup ausrechnen und in einer Tabelle ausgeben lassen, damit ich weiß, ob mein Band für das Backup ausreicht.
Ein VB-Script dafür habe ich schon gefunden, aber da habe ich mit den Administrator-Rechten zu kämpfen.

Hat jemand eine Idee, wie ich hier vorgehen muss?

Danke im voraus!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 212439

Url: https://administrator.de/forum/batch-datei-ordnergroesse-von-vielen-verschiedenen-pfaden-aus-txt-datei-in-excel-datei-212439.html

Ausgedruckt am: 14.05.2025 um 15:05 Uhr

Endoro
Endoro 25.07.2013 um 11:26:17 Uhr
Goto Top
Hi,
haben die Ordner noch Unterordner? Dann würde ich VBS empfehlen.
Wenn nicht, geht's auch mit Batch einfach.
Die Rechte, dort was zu lesen musst du in jedem Fall haben.

lg
Spacerpatte
Spacerpatte 25.07.2013 um 12:02:56 Uhr
Goto Top
Hallo,

Danke für Deine Antwort!

Die Rechte dazu habe ich.
Hast Du vielleicht eine Ahnung wie so etwas als Batchdatei aussehen müsste?
Als VBS will er trotz Admin-Rechten einige Ordner (z.b Profile) nicht auslesen.
Lg
Endoro
Endoro 25.07.2013 um 14:16:11 Uhr
Goto Top
Die Grösse eines Ordners geht so:
@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "tokens=3" %%a IN ('dir /a-d /-c') DO (  
	SET size=!free!
	SET free=%%a
)
ECHO %size% Bytes IN %cd%
Gruss.
bastla
bastla 25.07.2013 aktualisiert um 20:56:54 Uhr
Goto Top
... und mit Auslesen der Liste sowie ohne "delayedExpansion" (ungetestet):
@echo off & setlocal
set "Ein=D:\Deine Ordnerliste.txt"  
set "Aus=D:\Ordnergroessen.csv"  

del "%Aus%" 2>nul  
for /f "usebackq delims=" %%i in ("%Ein%") do call :ProcessDir "%%i"  
goto :eof

:ProcessDir
for /f "tokens=3" %%i in ('dir /a-d /-c %1 2^>nul ^|findstr /eirc:"[0-9] Bytes"') do set "size=%%i"  
>>"%Aus%" echo %1,%size%  
goto :eof
Grüße
bastla
Endoro
Endoro 25.07.2013 um 20:51:51 Uhr
Goto Top
Hallo ,
der Weg ohne findstr hat den Vorteil, dass er auch mit fremdsprachigem Windows funktioniert. Ohne verzögerte Erweiterung:
@ECHO OFF &SETLOCAL
FOR /f "tokens=3" %%a IN ('dir /a-d /-c') DO (  
	CALL SET size=%%free%%
	SET free=%%a
)
ECHO %size% Bytes IN %cd%
Der Vorteil wird dadurch wieder zunichte gemacht, dass es mit AM/PM Zeitformaten wieder nicht klappt, dann muss es tokens=4 heissen.
Gruss.
bastla
bastla 25.07.2013 aktualisiert um 21:01:41 Uhr
Goto Top
@ Endoro
Ich muss zu meiner Schande gestehen, dass ich die mit fremdsprachigen Windows-Versionen (von Englisch abgesehen) erzeugten Ausgaben nicht kenne - endet bei anderen Versionen die vorletzte Zeile des "dir"-Befehls tatsächlich nicht mit in etwa
15643218 bytes
Was soll übrigens das Zeitformat für eine Auswirkung auf die Ausgabe der Gesamtdateigröße eines Ordners haben?

Grüße
bastla
Endoro
Endoro 25.07.2013 um 22:35:46 Uhr
Goto Top
@bastla

Hier mal ein Beispiel französich:
Répertoire de d:\tmp\test\hsqldb\Run_0

06/04/2013  07:10    <REP>          .
06/04/2013  07:10    <REP>          ..
06/04/2013  07:10                32 data.data
06/04/2013  07:10                 0 data.lck
06/04/2013  07:10                 0 data.lobs
06/04/2013  07:10                 0 data.log
06/04/2013  07:10                89 data.properties
06/04/2013  07:10             1,757 data.script
06/04/2013  07:10    <REP>          data.tmp
               6 fichier(s)            1,878 octets
               3 Rép(s)  73,975,611,392 octets libres

Das packt dann keine Regex mehr face-smile

Mit den Tokens hast du recht, die spielen in der Zusammenfassung keine Rolle.
Grüsse.