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
Please also mark the comments that contributed to the solution of the article
Content-Key: 545740
Url: https://administrator.de/contentid/545740
Printed on: April 25, 2024 at 12:04 o'clock
4 Comments
Latest comment
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