Kombination for-Schleifen und if-Anweisung
Moin,
ich wollte die Ordnergrößen meiner Struktur feststellen und ab einer Bestimmten Größe sollten die Ordner ausgegeben werden.
Mein Code sieht wie folgt aus:
Sobald ich die Datei ausführe, schließt es sich direkt wieder. Ich finde meinen Fehler nicht. Gibt es vielleicht durch die Verschachtelung der for-schleifen und der if-Anweisung ein Problem?
Die Schleifen habe ich schon wie folgt getestet:
Funktioniert und
funktioniert auch.
Vielen Dank im Voraus
Mit freundlichen Grüßen
ich wollte die Ordnergrößen meiner Struktur feststellen und ab einer Bestimmten Größe sollten die Ordner ausgegeben werden.
Mein Code sieht wie folgt aus:
for /f "delims=" %%f in ('dir /ad /b /s "DATEIPFAD"') do (
set datei="%%~f"
for /f "tokens=1-3" %%i in ('dir %datei% /-C /S ^|find "Datei(en)" ^|find "Bytes"') do set dateigroesse=%%k
if %dateigroesse% GEQ 1000 echo %datei%
)
pause
Sobald ich die Datei ausführe, schließt es sich direkt wieder. Ich finde meinen Fehler nicht. Gibt es vielleicht durch die Verschachtelung der for-schleifen und der if-Anweisung ein Problem?
Die Schleifen habe ich schon wie folgt getestet:
for /f "delims=" %%f in ('dir /ad /b /s "DATEIPFAD"') do (
set datei="%%~f"
for /f "tokens=1-3" %%i in ('dir %datei% /-C /S ^|find "Datei(en)" ^|find "Bytes"') do set dateigroesse=%%k
)
Funktioniert und
for /f "tokens=1-3" %%i in ('dir DATEIPFAD /-C /S ^|find "Datei(en)" ^|find "Bytes"') do set dateigroesse=%%k
if %dateigroesse% GEQ 1000 echo DATEIPFAD
Vielen Dank im Voraus
Mit freundlichen Grüßen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 545740
Url: https://administrator.de/forum/kombination-for-schleifen-und-if-anweisung-545740.html
Ausgedruckt am: 27.04.2025 um 11:04 Uhr
4 Kommentare
Neuester Kommentar

Belese dich mal zu delayed expansion, dann verstehst du das das setzen von Variablen innerhalb von Klammern und abfragen mit %variable% nicht funktioniert, sonder mit !Variable!.
Sowas fackelt man aber heutzutage gleich mit der Powershell ab, schon weil Batch mit größeren Zahlen nicht mehr umgehen kann ...
Kannst du übrigens auch in einer Batch benutzen
Case done, Haken dran und fertsch.
Sowas fackelt man aber heutzutage gleich mit der Powershell ab, schon weil Batch mit größeren Zahlen nicht mehr umgehen kann ...
Get-ChildItem 'D:\Ordner' -Recurse -Directory | ?{($_.GetFiles() | measure Length -Sum).Sum -gt 1kb} | select -ExpandProperty Fullname
@echo off
powershell -EP Bypass -NoP -C "Get-ChildItem 'D:\Ordner' -Recurse -Directory | ?{($_.GetFiles() | measure Length -Sum).Sum -gt 1kb} | select -ExpandProperty Fullname"
Case done, Haken dran und fertsch.

RTFM!
Get-ChildItem 'D:\Ordner' -Recurse -Directory | ?{($_.GetFiles('*',1) | measure Length -Sum).Sum -gt 1kb} | select -ExpandProperty Fullname