Grösse eines Windowspfades via Bat auslesen
Hallo,
kann man einen Windowspfad , wie z.B. D:\Daten, via Batch die Größe des Inhalts auslesen.
Beispiel:
Ich klicke rechte Maustaste auf den Pfad, dann Eigenschaften und er zeigt mir die Dateianzahl und die Größe an.
Dies möchte ich jetzt mit einer Bat Datei automatisch lösen, da es aufwendig ist, sich durch sämtliche Ordner jeweils durchzuklicken. Es kann auch eine VBA Lösung über Excel sein, also nicht unbedingt auf der Dos-Ebene.
Ist dies Möglich?
Grüße
Thomas
kann man einen Windowspfad , wie z.B. D:\Daten, via Batch die Größe des Inhalts auslesen.
Beispiel:
Ich klicke rechte Maustaste auf den Pfad, dann Eigenschaften und er zeigt mir die Dateianzahl und die Größe an.
Dies möchte ich jetzt mit einer Bat Datei automatisch lösen, da es aufwendig ist, sich durch sämtliche Ordner jeweils durchzuklicken. Es kann auch eine VBA Lösung über Excel sein, also nicht unbedingt auf der Dos-Ebene.
Ist dies Möglich?
Grüße
Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 100928
Url: https://administrator.de/contentid/100928
Ausgedruckt am: 17.11.2024 um 09:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo nuzzi71!
Eine (wenn auch nicht sehr schöne ) Lösung mit Batch könnte so aussehen:
Wenn Du diese Batchdatei in den (versteckten) Ordner "%userprofile%\SendTo" legst, kannst Du im Explorer einen Ordner markieren und per Kontextmenü "Senden an" dafür die Batchdatei aufrufen.
Grüße
bastla
Eine (wenn auch nicht sehr schöne ) Lösung mit Batch könnte so aussehen:
@echo off & setlocal
if "%~1"=="" goto :eof
dir "%~1\">nul 2>nul || (echo Bitte nur fuer Ordner verwenden! & pause>nul & goto :eof)
for /f "tokens=1,3" %%i in ('dir %1 /s 2^>nul^|findstr "Datei(en)"') do (set "Dateien=%%i" & set "Bytes=%%j")
if %Dateien% gtr 0 (echo %Dateien% Dateien mit %Bytes% Bytes) else (echo Keine Dateien gefunden!)
Pause>nul
Grüße
bastla
Hallo nuzzi71!
Dass Du eine ganze Liste bearbeiten willst, hatte ich übersehen ...
... aber lässt sich natürlich trotzdem machen:
Die auszuwertenden Pfade sind (wie ab Zeile 4 gezeigt) im Batch selbst hinterlegt, können aber, auf Wunsch, auch einer zusätzlichen Textdatei entnommen werden.
Da offensichtlich Excel das Ziel ist, erfolgt die Ausgabe "importfreundlich" .
(Nur) Die Größenermittlung unmittelbar in Excel hatten wir übrigens hier. Die Ermittlung der Dateienanzahl müsste dann zusätzlich durch ein rekursiv aufzurufendes "Sub" erfolgen.
Grüße
bastla
Dass Du eine ganze Liste bearbeiten willst, hatte ich übersehen ...
... aber lässt sich natürlich trotzdem machen:
@echo off & setlocal
set "Erg=D:\Statistik.csv"
REM DATA D:\Daten
REM DATA D:\Auswertungen
REM DATA D:\Whatever
if exist "%Erg%" del "%Erg%"
for /f "tokens=2*" %%c in ('findstr /b /c:"REM DATA" "%0"') do call :ProcessDir "%%d"
goto :eof
:ProcessDir
set Dateien=0
set Bytes=0
for /f "tokens=1,3" %%i in ('dir "%~1" /s /-c 2^>nul^|findstr "Datei(en)"') do (set "Dateien=%%i" & set "Bytes=%%j")
>>"%Erg%" echo %1;%Dateien%;%Bytes%
goto :eof
Da offensichtlich Excel das Ziel ist, erfolgt die Ausgabe "importfreundlich" .
(Nur) Die Größenermittlung unmittelbar in Excel hatten wir übrigens hier. Die Ermittlung der Dateienanzahl müsste dann zusätzlich durch ein rekursiv aufzurufendes "Sub" erfolgen.
Grüße
bastla