Situation sieht zur Zeit bei mir folgendermaßen aus:
Ich habe mehrere Logfileverzeichnisse, aus diesen möchte ich per Scriptmittel die Logfiles der letzten <=2 Tage per Remote-Sicherungsbatch wegschreiben. Dieser Batch kann das aktuelle Logfile allerdings nicht korrekt sichern, wenn es in Benutzung ist. Daher behelfe ich mir einer Krücke, nämlich kopiere mir das heutige File unter *.cp und sichere es dann (unter altem Namen) weg.
Die folgende Zeile soll die Liste der zu sichernden Dateien ausgeben (wird dann in ein csv übernommen, daher das Semikolon), und danach entweder eine .cp Datei anlegen oder die alte löschen. Das Ganze wird per Event in einem Batchablauf geworfen, und muss daher ein Einzeiler sein. Das Tagesdatum und das Logverzeichnis im Code wird reingeneriert, da braucht ihr euch nicht drum kümmern.
Was nicht funktioniert, ist die IF-Anweisung. Vielleicht hat ja schonmal jemand Erfahrungen gemacht mit Auflösung des @file-Attributs innerhalb von IF-Konditionen und kann mir weiterhelfen:
Die IF Anweisung endet grundsätzlich im Else-Zweig und da bis dahin noch keine .cp Dateien vorliegen, löscht er natürlich auch nichts. Das einzige was funktioniert ist der echo.
Ich habe mehrere Logfileverzeichnisse, aus diesen möchte ich per Scriptmittel die Logfiles der letzten <=2 Tage per Remote-Sicherungsbatch wegschreiben. Dieser Batch kann das aktuelle Logfile allerdings nicht korrekt sichern, wenn es in Benutzung ist. Daher behelfe ich mir einer Krücke, nämlich kopiere mir das heutige File unter *.cp und sichere es dann (unter altem Namen) weg.
Die folgende Zeile soll die Liste der zu sichernden Dateien ausgeben (wird dann in ein csv übernommen, daher das Semikolon), und danach entweder eine .cp Datei anlegen oder die alte löschen. Das Ganze wird per Event in einem Batchablauf geworfen, und muss daher ein Einzeiler sein. Das Tagesdatum und das Logverzeichnis im Code wird reingeneriert, da braucht ihr euch nicht drum kümmern.
Was nicht funktioniert, ist die IF-Anweisung. Vielleicht hat ja schonmal jemand Erfahrungen gemacht mit Auflösung des @file-Attributs innerhalb von IF-Konditionen und kann mir weiterhelfen:
Code:
FORFILES /P D:\logs\tomcat /D 13.10.2010 /m localhost_access_log.* /C "cmd /c echo @path;@file && IF /I @file==localhost_access_log.2010-10-15.txt (cp @file @file.cp) ELSE IF EXIST @file.cp (rm @file.cp)"
Die IF Anweisung endet grundsätzlich im Else-Zweig und da bis dahin noch keine .cp Dateien vorliegen, löscht er natürlich auch nichts. Das einzige was funktioniert ist der echo.