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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 115246
Url: https://administrator.de/forum/mit-batch-aeltere-dateien-loeschen-bei-windows-server-2003-115246.html
Ausgedruckt am: 28.04.2025 um 23:04 Uhr
2 Kommentare
Neuester Kommentar
Moin TiJu74,
willkommen im Forum.
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:
Grüße
Biber
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
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
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