Batch Datei: Alte Dateien in div. Unterordnern löschen
Hallo zusammen
Ich habe einen Ordner "xxx" in diesem Ordner sind Unterordner "yyy" und "zzz"
- xxx
- - yyy
- - zzz
In den Unterordnern liegen CSV-Dateien die immer mit einem gewissen Buchstaben z.B. "W10.csv" beginnen.
Genau diese Dateien in den Unterordnern, die älter als 30 Tage sind, möchte ich löschen. Alles andere in den Unterordnern soll nicht gelöscht werden.
Ideen?
Ich bin ein Batch-Nullinger
DANKE
Ich habe einen Ordner "xxx" in diesem Ordner sind Unterordner "yyy" und "zzz"
- xxx
- - yyy
- - zzz
In den Unterordnern liegen CSV-Dateien die immer mit einem gewissen Buchstaben z.B. "W10.csv" beginnen.
Genau diese Dateien in den Unterordnern, die älter als 30 Tage sind, möchte ich löschen. Alles andere in den Unterordnern soll nicht gelöscht werden.
Ideen?
Ich bin ein Batch-Nullinger
DANKE
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 245179
Url: https://administrator.de/forum/batch-datei-alte-dateien-in-div-unterordnern-loeschen-245179.html
Ausgedruckt am: 26.12.2024 um 04:12 Uhr
11 Kommentare
Neuester Kommentar
https://www.google.de/webhp?sourceid=chrome-instant&ion=1&espv=2 ...
Dieses Tool ist was das angeht unschlagbar und solltest du unbedingt bei deinen Standard-Tools aufbewahren.
Viele Grüße
Dieses Tool ist was das angeht unschlagbar und solltest du unbedingt bei deinen Standard-Tools aufbewahren.
Viele Grüße
Hallo,
hier ist mein Vorschlag:
liste.txt und deine batch liegen in xxx Ordner.
liste.txt besteht aus dem nackten Pfad
Ich habe 5 mal W101-5.txt Dateien zum Testen erstellt und mit skip=2 verbleiben also zwei der jüngsten, drei der ältesten Dateien werden somit gelöscht
Ich weiß es ist nicht sehr elegant, weil man die Anzahl der verbleibenden Dateien kennen muss.
Dennoch vielleicht hilft es dir das ein wenig.
Zeile 14 das echo wie immer nur zum Testen.
hier ist mein Vorschlag:
@echo off
cls
set "pfad=r:\xxx\"
set "list=liste.txt"
pushd %pfad%
for /f "usebackq delims=" %%i in ("%list%") do set "ordner=%%i" & call :ProcessFile "%%i"
pause
goto :eof
:ProcessFile
pushd "%ordner%"
for /f "skip=2 delims=" %%j in ('dir /b /s /o-d "W10*.csv"') do echo del "%%j"
echo.
popd
liste.txt besteht aus dem nackten Pfad
- r:\xxx\yyy
- r:\xxx\zzz
Ich habe 5 mal W101-5.txt Dateien zum Testen erstellt und mit skip=2 verbleiben also zwei der jüngsten, drei der ältesten Dateien werden somit gelöscht
Ich weiß es ist nicht sehr elegant, weil man die Anzahl der verbleibenden Dateien kennen muss.
Dennoch vielleicht hilft es dir das ein wenig.
Zeile 14 das echo wie immer nur zum Testen.
Moin simonsays, Wilkommen auf Administrator.de!
Hier reicht auch folgender Batch-Einzeiler :
oder mit Powershell
Grüße Uwe
p.s. btw gibt dir unsere Suche zum Thema "Dateien löschen älter als x Tage" hunderte Treffer ! Das nächste mal erst die Suchfunktion bemühen, Merci.
Hier reicht auch folgender Batch-Einzeiler :
forfiles /P "c:\xxx" /D -30 /S /M "W10*.csv" /C "cmd /c del /q @path"
dir "C:\xxx\W10*.csv" -Recurse | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (get-date).AddDays(-30)} | remove-item -Force
p.s. btw gibt dir unsere Suche zum Thema "Dateien löschen älter als x Tage" hunderte Treffer ! Das nächste mal erst die Suchfunktion bemühen, Merci.
Zitat von @remero-s:
Frage: Ich möchte alle Unterordner automatisch löschen lassen die älter als 30 Tage sind von Verzeichnis:
Frage: Ich möchte alle Unterordner automatisch löschen lassen die älter als 30 Tage sind von Verzeichnis:
Man soll doch keine Threads kapern...
Ich bin ein absoluter Neuling in Sachen Batch Datei. Ich finde nicht das passende.
Mein Ziel ist es einfach ein Prozess zu optimieren, da wir in meinem Team jeden Tag unzählige Ordner erstellen die wir dann nicht mehr brauchen.
Muss ich die .bat Datei dann jedes mal ausführen oder funktioniert das für immer?
Können Sie mir diese Script bitte aufschreiben?
Vielen Dank.
Mein Ziel ist es einfach ein Prozess zu optimieren, da wir in meinem Team jeden Tag unzählige Ordner erstellen die wir dann nicht mehr brauchen.
Muss ich die .bat Datei dann jedes mal ausführen oder funktioniert das für immer?
Können Sie mir diese Script bitte aufschreiben?
Vielen Dank.
Zitat von @remero-s:
Ich bin ein absoluter Neuling in Sachen Batch Datei. Ich finde nicht das passende.
Batch zum löschen von Ordner die älter als 30 Tage sindIch bin ein absoluter Neuling in Sachen Batch Datei. Ich finde nicht das passende.
Siehe da, google hilft
Muss ich die .bat Datei dann jedes mal ausführen oder funktioniert das für immer?
Damit sie "immer" funktioniert muss sie in die Windows-Aufgabenplanung integriert werdenKönnen Sie mir diese Script bitte aufschreiben?
Wenns Batch sein soll, nope, kann ich nicht; Da dürfte der Link weiterhelfenVielen Dank.
Bitte, und beim nächsten Mal eine eigene Frage stellen.Zitat von @remero-s:
Frage: Ich möchte alle Unterordner automatisch löschen lassen die älter als 30 Tage sind von Verzeichnis:
S\PR1X-FLR\xxx\Gesprächsvorbereitungen\unterordner_yy
Die Unterordner sind von A-Z genannt.
Mit welchem Befehl kann ich das am einfachsten machen?
Für eine Batch, für dich mit etwas Powershell-Würze:Frage: Ich möchte alle Unterordner automatisch löschen lassen die älter als 30 Tage sind von Verzeichnis:
S\PR1X-FLR\xxx\Gesprächsvorbereitungen\unterordner_yy
Die Unterordner sind von A-Z genannt.
Mit welchem Befehl kann ich das am einfachsten machen?
powershell.exe -Executionpolicy ByPass -Command "&{gci 'S:\PR1X-FLR\xxx\Gesprächsvorbereitungen' | ?{$_.PSIscontainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-30)} | remove-item -recurse -Force}"
Und wie meine Vorredner schon schrieben, bitte das nächste mal keine alten Kamelle aufwärmen. Danke.
Grüße @colinardo