boerger2000
Goto Top

Bestimmte Dateiendungen verschieben, die älter sind als ein bestimmtes Datum

Hallo,

ich möchte gerne ein Skript erstellen, das Dateien mit einer speziellen Dateiendung, die älter als 100 Tage sind, an einen anderen Ort verschiebt, incl. dem ganzen Pfad. Dieses verschieben soll sich aber ausschliesslich auf die genannten Kriterien beziehen.

Also kurz und knapp:
Suche in Ordner D:\
nach Dateien mit Endung *.xls
älter als 100 Tage
Verschiebe nach E:\ mit Ordnerstruktur (behalte aber Ordnerstruktur auf D:\ bei.
exclude *benennung1* *benennung2*

Auf dem Source-Laufwerk darf sich also nicht ändern, ausser dass die Dateien mit den entsprechenden Kriterien nach E:\ verschoben werden (mit einer Kopie der Ordnerstruktur zum wiederfinden).

Vorher:
D:\Ordner1\test.xls

Nachher: D:\Ordner1\
E:\Ordner1\test.xls


System ist Windows Server 2003.

Kann mir jemand weiterhelfen?

Content-Key: 152203

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

Printed on: April 18, 2024 at 05:04 o'clock

Mitglied: 77559
77559 Oct 01, 2010 at 17:14:09 (UTC)
Goto Top
Hallo borger2000,

welche Sprache: Vbs, Batch?
externe Tools wie zBsp. DelAge32 möglich?
Auf was bezeiht sich der exclude, nur auf den Dateinamen oder auch Pfadbestandteile?
Sind die * literal gemeint?

Mit DelAge32 könnte eine Batchdatei so aussehen (nur teilweise getestet):
@Echo off & Setlocal
Set "Excl=benennung1 benennung2"  
Set Src=D:\
Set Dst=E:\
Set Days=100
For /f "tokens=1,*" %%A in (  
  ' DelAge32 %Src%*.xls %Days% /recurse /move %Dst% /preview ^| findstr /i /v "%Excl%" '  
) Do (
  If Not Exist "%Dst:~0,2%%%~pB" MD "%Dst:~0,2%%%~pB"  
  Echo Move "%Src%%%B" "%Dst:~0,2%%%~pB"  
)

Damit der Move Befehl in Zeile 10 auch ausgeführt wird, das Echo davor entfernen.

Gruß
LotPings