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-Key: 245179

Url: https://administrator.de/contentid/245179

Printed on: April 19, 2024 at 11:04 o'clock

Member: codde1982
codde1982 Jul 31, 2014 at 08:52:25 (UTC)
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
Member: batchnewbie
Solution batchnewbie Jul 31, 2014, updated at Aug 13, 2014 at 09:33:38 (UTC)
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.
Member: simonsays
simonsays Jul 31, 2014 at 12:56:41 (UTC)
Goto Top
Hallo und Danke schon mal vorab.
Morgen werde ich das testen und dann natürlich Bescheid geben.
lg
Member: colinardo
Solution colinardo Jul 31, 2014, updated at Aug 13, 2014 at 09:33:35 (UTC)
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.
Member: simonsays
simonsays Aug 13, 2014 at 09:34:24 (UTC)
Goto Top
DANKE an Alle! Super!
Hab die Lösung von "colinardo" genommen.

Euer Batch-Nulling face-smile
Member: remero-s
remero-s Aug 11, 2015 at 13:15:37 (UTC)
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.
Member: TlBERlUS
TlBERlUS Aug 11, 2015 at 13:41:24 (UTC)
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...
Member: remero-s
remero-s Aug 11, 2015 at 13:56:22 (UTC)
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.
Member: TlBERlUS
TlBERlUS Aug 11, 2015 at 17:04:16 (UTC)
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.
Member: colinardo
colinardo Aug 11, 2015 updated at 17:30:44 (UTC)
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
Member: remero-s
remero-s Aug 12, 2015 at 06:17:29 (UTC)
Goto Top
Vielen Dank! Ja versprochen, habe das erst jetzt gemerkt.