Anpassung Batch Dateien löschen wenn größer als 500 MB
Hallo Zusammen,
habe diese Zeilen hier gefunden:
Allerdings habe ich wohl einen Fehler gemacht, die Batch startet kurz und geht dann wieder zu und das wars, wo liegt der Fehler?
Danke
habe diese Zeilen hier gefunden:
@echo Test
for /r "D:\test1" %a in ("*.*") do @if %%~za gtr 500000000 @echo del "%a"
Pause
Allerdings habe ich wohl einen Fehler gemacht, die Batch startet kurz und geht dann wieder zu und das wars, wo liegt der Fehler?
Danke
Please also mark the comments that contributed to the solution of the article
Content-Key: 445814
Url: https://administrator.de/contentid/445814
Printed on: April 18, 2024 at 11:04 o'clock
15 Comments
Latest comment
Sei dir aber bewusst das in Batch bei dieser Variante mit 2GB Files Schluss ist mit Vergleich.
https://www.robvanderwoude.com/battech_math.php
Besser gleich die Powershell bemühen.
https://www.robvanderwoude.com/battech_math.php
Besser gleich die Powershell bemühen.
gci 'd:\test1' -File -Recurse | ?{$_.Length -gt 500MB} | del -force -verbose
Zitat von @zeroblue2005:
@139374
bedeutet, wenn ich auf Dateien Prüfe: Größer als 500 MB würde die Dateien über 2 GB nicht gelöscht?
Doch schon aber die Größe der Datei wenn sie über 2GB groß ist würde im If Vergleich auf 2^31 - 1 begrenzt. D.h. ein 3GB File sieht für die Batch aus wie ein 2GB File.@139374
bedeutet, wenn ich auf Dateien Prüfe: Größer als 500 MB würde die Dateien über 2 GB nicht gelöscht?
https://stackoverflow.com/questions/44307575/if-greater-than-in-batch-fi ...
In deinem Fall ist das nicht schlimm, aber wenn du das mit anderen Größen erweitern willst erinnere dich an die Grenze.
Schleife in eine Ausgabe packen, das funktioniert aber nicht, die bleibt immer leer:
Logisch denn es gibt keine Ausgabe beim löschen, mach einfach eine zweite Ausgabe im If Teil.for /r "D:\Test1" %%a in ("*.*") do (
if %%~za gtr 500000000 (
del "%%a" && >>"D:\LOG\Geloescht-Gr-als-500.txt" echo.%%a
)
)
>"D:\LOG\Geloescht-Gr-als-500.txt" (for /r "D:\Test1" %%a in ("*.*") do (
if %%~za gtr 500000000 (
del "%%a" && echo.%%a
)
))
S. Oben.
S.oben
S. Doch einfach meinen letzten Post , da stehen zwei Codes... Da braucht es keine extra Schleife.