simonsays
Goto Top

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 face-smile

DANKE

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

codde1982
codde1982 31.07.2014 um 10:52:25 Uhr
Goto Top
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
batchnewbie
Lösung batchnewbie 31.07.2014, aktualisiert am 13.08.2014 um 11:33:38 Uhr
Goto Top
Hallo,
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 und deine batch liegen in xxx Ordner.
liste.txt besteht aus dem nackten Pfad
  • r:\xxx\yyy
  • r:\xxx\zzz
In Zeile 14 per skip= wird die Anzahl der Dateien überspringen
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.
simonsays
simonsays 31.07.2014 um 14:56:41 Uhr
Goto Top
Hallo und Danke schon mal vorab.
Morgen werde ich das testen und dann natürlich Bescheid geben.
lg
colinardo
Lösung colinardo 31.07.2014, aktualisiert am 13.08.2014 um 11:33:35 Uhr
Goto Top
Moin simonsays, Wilkommen auf Administrator.de!
Hier reicht auch folgender Batch-Einzeiler face-wink:
forfiles /P "c:\xxx" /D -30 /S /M "W10*.csv" /C "cmd /c del /q @path"
oder mit Powershell
dir "C:\xxx\W10*.csv" -Recurse | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (get-date).AddDays(-30)} | remove-item -Force
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.
simonsays
simonsays 13.08.2014 um 11:34:24 Uhr
Goto Top
DANKE an Alle! Super!
Hab die Lösung von "colinardo" genommen.

Euer Batch-Nulling face-smile
remero-s
remero-s 11.08.2015 um 15:15:37 Uhr
Goto Top
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?

Danke im Voraus.
TlBERlUS
TlBERlUS 11.08.2015 um 15:41:24 Uhr
Goto Top
Zitat von @remero-s:

Frage: Ich möchte alle Unterordner automatisch löschen lassen die älter als 30 Tage sind von Verzeichnis:

Man soll doch keine Threads kapern...
remero-s
remero-s 11.08.2015 um 15:56:22 Uhr
Goto Top
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.
TlBERlUS
TlBERlUS 11.08.2015 um 19:04:16 Uhr
Goto Top
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 sind
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 werden
Können Sie mir diese Script bitte aufschreiben?
Wenns Batch sein soll, nope, kann ich nicht; Da dürfte der Link weiterhelfen

Vielen Dank.
Bitte, und beim nächsten Mal eine eigene Frage stellen.
colinardo
colinardo 11.08.2015 aktualisiert um 19:30:44 Uhr
Goto Top
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:
powershell.exe -Executionpolicy ByPass -Command "&{gci 'S:\PR1X-FLR\xxx\Gesprächsvorbereitungen' | ?{$_.PSIscontainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-30)} | remove-item -recurse -Force}"  
Damit sollte das Thema jetzt auch gegessen sein.

Und wie meine Vorredner schon schrieben, bitte das nächste mal keine alten Kamelle aufwärmen. Danke.

Grüße @colinardo
remero-s
remero-s 12.08.2015 um 08:17:29 Uhr
Goto Top
Vielen Dank! Ja versprochen, habe das erst jetzt gemerkt.