Batch Problem - Löschen von Ordnern mit Datumsangabe im Namen

Mitglied: Matrix-Admin

Matrix-Admin (Level 1)

03.07.2006, aktualisiert 04.07.2006, 6133 Aufrufe, 5 Kommentare

[Edit Biber Juni 2008]
Beitragstitel ergänzt (ab "-" inkl.) und Beitrag geschlossen.
[/Edit]

Hallo zusammen..

Ich suche eine Lösung für mein Batch Problem!!
Ziel: Mein Backup Skript sollte in der lage sein einen erstellten Ordner [%1\Backup\%date%] definiert zu Löschen oder zu umbenennen, ohne eingabe des Datum, zum Beispiel heute
3 juli 2006, drei tage zurück und Ordner 30.juni 2006 löschen (ohne Datum eingabe!).
Kann mir jemand helfen der schon Erfahrung mit meinem Problem hat, es wäre super :-) face-smile

Freundliche Grüsse
P.M

Edit:

set Quelle="%HOMEDRIVE%\%HOMEPATH%\*.*"
set Ziel="%1\Backup\%date%"

set templog="%temp%\temp.log"
echo .>>%1\backup.log
echo Starte Backup: %date% %time% von %Quelle% nach %Ziel%>>%1\backup.log


md %Ziel%
xcopy %Quelle% %Ziel% /s /v /c /i /f /h /k /o /x /y>>%1\backup.log
echo Starte Überpruefung>>%1\backup.log

start /w windiff.exe -Sdx %templog% -T %Ziel% %quelle%
find "different" %templog%>>%1\backup.log

echo Fertig>>%1\backup.log
start notepad.exe %1\backup.log
5 Kommentare
Mitglied: Biber
03.07.2006 um 23:24 Uhr
Moin Matrix-Admin,

da der CMD-Interpreter weder Datums-Dateitypen kennt noch mit Datumswerten rechnen kann, würde ich auf Hilfsmittel zugreifen, die das können. Zum Beispiel JScript oder VBScript.

Bau Dir die paar Zeilen hier an passender Stelle in den Batch ein:

Und, da VBS ja auch ein M$-höriges Instrument ist, sollte auch die Datumsformatierung mit Deiner (also mit der Ausgabe von %date%) übereinstimmen.

Gruß
Biber

P.S. Bitte Batch-Fragen ruhig in dem Bereich "Batch & Shell" posten.
Einige Entwickler bekommen die Krise, wenn sie im Bereich "Entwicklung" Batch-Fragen entdecken. ;-) face-wink
Mitglied: Matrix-Admin
03.07.2006 um 23:38 Uhr
Hallo Biber..
Danke für deine Antwort, werde Morgen das Skript testen.

Freundliche Grüsse
P.M
Mitglied: Matrix-Admin
04.07.2006 um 10:42 Uhr
Ich habe das Skript nun ausprobiert, bekomme den fehler [das System kann den angegebenen Pfad nicht finden]nur wo ist das Problem ?! :-0 face-surprise
Hat jemand eine Idee??


Freundliche Grüsse
P.M

Edit:



set Quelle="%HOMEDRIVE%\%HOMEPATH%\*.*"
set Ziel="y:\Backup\%Date%"
set log= "y:\backup.log"
set vorgestern=02.06.2006

set templog="%temp%\temp.log"
echo .>>%log%
echo .>>%log%
echo Starte Backup: %date% %time% von %Quelle% nach %Ziel%>>%log%



md %Ziel%


REM
echo wscript.echo dateAdd("d",-2, date())>%temp%\2DaysAgo.vbs
@For /f %%i in ('cscript //nologo %temp%\3DaysAgo.vbs') do @set "%vorgestern%=%%i"
@del %temp%\3DaysAgo.vbs
REM

pause


xcopy %Quelle% %Ziel% /s /v /c /i /f /h /k /o /x /y>>%log%
echo Starte Überpruefung>>%1\backup.log

start /w windiff.exe -Sdx %templog% -T %Ziel% %quelle%
find "different" %templog%>>%log%

echo Fertig>>%log%
start notepad.exe %log%
Mitglied: Biber
04.07.2006 um 12:07 Uhr
Der Inhalt z.B. von %HOMEPATH% ist ein Pfad mit Leerzeichen ("\Dokumente und Sowas\...").
Deshalb muss dann auch später beim xcopy der Pfad %quelle% in Anführungszeichen eingeschlossen werden.
xcopy "%Quelle%" "%Ziel%" /s /v /c ...........


Dann sollte es funktionieren.

Gruß
Biber
Mitglied: Matrix-Admin
04.07.2006 um 13:20 Uhr
Danke, werde ich gleich mahl ausprobieren :-) face-smile

Gruss

P.M