tiju74
Goto Top

Mit Batch ältere Dateien löschen bei Windows Server 2003

Hallo,

ich habe eine Batchdatei, welche eine tägliche Sicherung macht. Alle Ordner außer der letzten 5 sollen dabei auch gleich gelöscht werden.


@echo OFF
SET Quelle=D:\Ela\
SET Ziel=D:\Backup\

FOR /F "tokens=1-4" %%a IN ('cmd.exe /c "echo. | date"') DO IF "%%

a"=="Aktuelles" SET Date=%%d

set Ordnername=%date:~6,4%-%date:~3,2%-%date:~0,2%

MKDIR "%Ziel%%Ordnername%"

XCOPY "%Quelle%*.*" "%Ziel%%Ordnername%" /I /H /E

for /f %%i in ('dir /ad /o-d /b d:\Backup\200??????? ^|more +3') do rd /s /q "d:\Backup\

%%i"

ECHO Fertig!

So und jetzt zu meinem Problem !

Zuhause mit Windows Vista funktioniert es wunderbar.

Auf Arbeit mit Windows Server 2003 kommt folgende Meldung: %%i ist syntaktisch an dieser stelle nicht verarbeitbar

Weiß jemand was das zu bedeuten hat?

Gruß TiJu74

Content-Key: 115246

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

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

Member: Biber
Biber May 04, 2009 at 20:12:00 (UTC)
Goto Top
Moin TiJu74,

willkommen im Forum.
Weiß jemand was das zu bedeuten hat?
Ich kann nicht für die anderen sprechen, aber wissen tue ich nichts genaues.
Aber 4 oder 5 Dinge könntest Du ändern, um den Fehler einzugrenzen.

1) Poste bitte Code in Code-Tags (->Formatierungshilfe).
2) Setze in Batch immer ein "@echo off & setlocal", damit die variablen, die Du SETzt, auch nur für Deinen Batch sichtbar und hinterher entsorgt sind.
3) Setze NIE eine Variable "nur wenn irgendwas" -- "Deine" Privatvariable %date% in der ersten FOR/F-Anweisung wird nur gesetzt, wenn bei der FOR/F-Anweisung was rumkommt.
4) setze nie "Privatvariablen" namensgleich mit bereits global vergebenen Variablen wie %USERNAME%, %PATH%, %winDir% oder eben %Date% --- ist schlechter Stil und beim 87sten Mal geht es auch schief.
5) Gehe NIE NIE NIE davon aus, dass auf zwei Blechbüchsen, auf dehen zufällig ein ähnliches Logo oder ein "From Redmond with Love" draufpappt, auch ein auch nur ähnliches Datumsformat beim Befehl "DATE" herauskommt. Siehe dazu das tutorial "Workshop Batch 4 Runaways III" in bereich "Batch und Shell".

Und wenn diese Änderungen noch keine Linderung und keine Hinweise liefern:
  • poste die Ausgabe von DATE auf dem Win 2003-Server
  • und ändere vorübergehend das "@echo OFF & setlocal" in "@echo ON & setlocal" und poste den Output.

Grüße
Biber
Member: bubifix
bubifix May 05, 2009, updated at Oct 18, 2012 at 16:38:07 (UTC)
Goto Top
Hallo,

wenn Du vorher die Suche hier bemüht hättest, dann wäre Dir dieser Beitrag aufgefallen:

Batch um Dateien ab einem gewissen Alter zu löschen

Gruß

bubifix