Dateien verschieben in Datumsordner
Hallo, ich versuche eine mir vorgegebene Sicherungslösung zu verbessern/verschönenern.
Ich habe einen Server auf dem werden täglich Daten von mehreren Geräten gesichert. Zu meinem Leidwesen sicherheitshalber die Daten der letzten 3 Tage. Diese werden in einen Tagesscontainer geschrieben. Leider nur nicht in den jeweils zugehörigen Ordner, sondern in den Tagescontainer/Ordner von dem Tag an dem die Sicherung läuft.
Beispiel:
Ordner1 von heute 21.09.2011 darin enthalten sind die Dateien "Ordner1_Sicherung_19092011",""Ordner1_Sicherung_20092011","Ordner1_Sicherung_21092011"
Hier mal die Ordnerstruktur:
Workstation1-n
-Jahr
-Monat
-Tag
-Ordner1
-Datei1(Dateiname beginnt immer genauso wie der Ordnername)
-Ordner2
-Datei2
-Ordner_n
-Datei_n
An der Sicherung kann ich leider nicht drehen, die kommt von extern. Derzeit lösche ich die Dateien die nicht in den Ordner gehören von Hand raus und zippe den Tagescontainer. Aber das müsste man doch mit einer Batch lösen können. Ich habe eine ungefähre Vorstellung (Batchlaie) wie ich das für einen Tagescontainer lösen könnte. Aber mir fehlt jegliche Vorstellungskraft wie ich das aus der root machen müsste.
Vielleicht hat ja jemand eine Idee. Wäre echt cool wenn ich mir die Arbeit (täglich von Hand lsöchen/verschieben) sparen könnte.
Mfg
zero
So hier dann mal ein Bild der Ordnerstruktur damit es ein wenig einleuchtender ist. Bin leider ne 0 im Erklären.
Die Dateien die im Ordner "Anwendung1" liegen sollen nach Möglichkeit nach Datum in die jeweils passenden Tagesordner wegsortiert (move & overwrite) oder gelöscht werden.
Also die Datei "Anwendung1_*" vom 19.09. (anhand des Änderungsdatums) soll in den Ordner Workstation\Jahr\Monat\Tag (Workstation1\2011\09\19\Anwendungs1) verschoben werden.
Der Ordner "Backup" stellt die Freigabe dar ...
Hoffe damit könnt ihr mehr anfangen.
thx in advance
Ich habe einen Server auf dem werden täglich Daten von mehreren Geräten gesichert. Zu meinem Leidwesen sicherheitshalber die Daten der letzten 3 Tage. Diese werden in einen Tagesscontainer geschrieben. Leider nur nicht in den jeweils zugehörigen Ordner, sondern in den Tagescontainer/Ordner von dem Tag an dem die Sicherung läuft.
Beispiel:
Ordner1 von heute 21.09.2011 darin enthalten sind die Dateien "Ordner1_Sicherung_19092011",""Ordner1_Sicherung_20092011","Ordner1_Sicherung_21092011"
Hier mal die Ordnerstruktur:
Workstation1-n
-Jahr
-Monat
-Tag
-Ordner1
-Datei1(Dateiname beginnt immer genauso wie der Ordnername)
-Ordner2
-Datei2
-Ordner_n
-Datei_n
An der Sicherung kann ich leider nicht drehen, die kommt von extern. Derzeit lösche ich die Dateien die nicht in den Ordner gehören von Hand raus und zippe den Tagescontainer. Aber das müsste man doch mit einer Batch lösen können. Ich habe eine ungefähre Vorstellung (Batchlaie) wie ich das für einen Tagescontainer lösen könnte. Aber mir fehlt jegliche Vorstellungskraft wie ich das aus der root machen müsste.
Vielleicht hat ja jemand eine Idee. Wäre echt cool wenn ich mir die Arbeit (täglich von Hand lsöchen/verschieben) sparen könnte.
Mfg
zero
So hier dann mal ein Bild der Ordnerstruktur damit es ein wenig einleuchtender ist. Bin leider ne 0 im Erklären.
Die Dateien die im Ordner "Anwendung1" liegen sollen nach Möglichkeit nach Datum in die jeweils passenden Tagesordner wegsortiert (move & overwrite) oder gelöscht werden.
Also die Datei "Anwendung1_*" vom 19.09. (anhand des Änderungsdatums) soll in den Ordner Workstation\Jahr\Monat\Tag (Workstation1\2011\09\19\Anwendungs1) verschoben werden.
Der Ordner "Backup" stellt die Freigabe dar ...
Hoffe damit könnt ihr mehr anfangen.
thx in advance
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173453
Url: https://administrator.de/contentid/173453
Ausgedruckt am: 23.11.2024 um 10:11 Uhr
14 Kommentare
Neuester Kommentar
Aloha Phil,
ich habe es eher so verstanden, dass er Sicherungsordner von einigen Geräten hat (allerdings kP wo die genau liegen)
z.B. Ordner1, Ordner 2 etc.
Und dort liegen gesicherte Dateien der letzten drei Tage.
Diese sollen dann, je nach Datum entsprechend, in ihre jeweiligen Ordner geschoben werden, denke ich.
Also
nunja, erstmal Mahlzeit
greetz André
... wobei, beim vierten Mal durchlesen, bin ich mir doch unsicher, ob die Ordnerstruktur nicht doch die gesicherten Daten enthält, wobei ich dann nicht weiß, was er will
ich habe es eher so verstanden, dass er Sicherungsordner von einigen Geräten hat (allerdings kP wo die genau liegen)
z.B. Ordner1, Ordner 2 etc.
Und dort liegen gesicherte Dateien der letzten drei Tage.
Diese sollen dann, je nach Datum entsprechend, in ihre jeweiligen Ordner geschoben werden, denke ich.
Also
Ordner1\Ordner1_Sicherung_19092011.xyz
soll zu Workstation1-n\2011\09\19\Ordner1\Ordner1_Sicherung_19092011.xyz
etc. pp.nunja, erstmal Mahlzeit
greetz André
... wobei, beim vierten Mal durchlesen, bin ich mir doch unsicher, ob die Ordnerstruktur nicht doch die gesicherten Daten enthält, wobei ich dann nicht weiß, was er will
Aloha,
ja was denn nun:
entscheide dich bitte, wenn die nicht-von-heute-Dateien unwichtig sind, fliegen sie raus, bumm! Ist nämlich auch das Einfachste und könnte z.B. so ablaufen:
Ausgehend davon, dass das Skript heute mit dem Datum von heute und vorhandenen Dateien von heute arbeitet (dass ich mit heute nicht unbedingt den 21.September 2011 meine, dürfte klar sein *gg*)
das
greetz André
edit:
Entscheide dich!
ja was denn nun:
Die Dateien die im Ordner "Anwendung1" liegen sollen nach Möglichkeit nach Datum in die jeweils passenden Tagesordner wegsortiert (move & overwrite) oder gelöscht werden
entscheide dich bitte, wenn die nicht-von-heute-Dateien unwichtig sind, fliegen sie raus, bumm! Ist nämlich auch das Einfachste und könnte z.B. so ablaufen:
Ausgehend davon, dass das Skript heute mit dem Datum von heute und vorhandenen Dateien von heute arbeitet (dass ich mit heute nicht unbedingt den 21.September 2011 meine, dürfte klar sein *gg*)
@echo off & setlocal
set "Pfad=K:\Backup\Workstation1\%date:~-4%\%date:~3,2%\%date:~0,2%"
set "Datum=%date:.=%
for /f "delims=" %%s in ('dir /B /S /A-D "%Pfad%"^|findstr /V %Datum%') do echo del "%%s"
pause
goto :eof
echo
in Zeile 04 dient der Voransicht, wenn du es entfernst, geht der Code knallhart zur Sache greetz André
edit:
Also die Datei "Anwendung1_*" vom 19.09. (anhand des Änderungsdatums) soll in den Ordner Workstation\Jahr\Monat\Tag (Workstation1\2011\09\19\Anwendungs1) verschoben werden.
Entscheide dich!
aus dem Bauch raus würde ich sagen die Backups der zwei anderen Dateien im Ordner können gelöscht werden, da diese ja in einem anderen DatumsOrdner enthalten sind.
Ungetestet! Bitte Testdaten Verwenden. etwa so
Gruß Phil
Ungetestet! Bitte Testdaten Verwenden. etwa so
@echo off
setlocal
set "BackupFolder=K:\Backup"
for /r "%BackupFolder%" %%i in (*) do for /f "tokens=3-6delims=\" %%j in ("%%i") do echo "%%~ni"| findstr "_%%l%%k%%j." >nul || del "%%i"
Gruß Phil
zum schluss antworten wir immer nur blöd wenns blöde Fragen gibt.
Ne zum schluss sagen wir tschü.
beim Script von André trägst Du bei Pfad nur K:\Backup ein
ach ne geht ja nicht da muss eine Unteroutine rein oder eine extra Vor-Forschleife gebastelt werden.
wenn Du das jeden tag startest nimmste dieses Script
für den Anfang um wirklich alle Doppelten Daten zu löschen nimmste das von mir.
Gruß Phil
Ne zum schluss sagen wir tschü.
beim Script von André trägst Du bei Pfad
ach ne geht ja nicht da muss eine Unteroutine rein oder eine extra Vor-Forschleife gebastelt werden.
wenn Du das jeden tag startest nimmste dieses Script
für den Anfang um wirklich alle Doppelten Daten zu löschen nimmste das von mir.
Gruß Phil
Aloha,
du meinst so?
greetz André
zur Erklärung:
für jede gefundene Datei wird das Änderungsdatum per
for /f "delims=" %%s in ('dir /B /S /A-D "%Pfad%"') do (
echo %%~ts |findstr /V %date%>nul && echo del "%%s"
)
du meinst so?
greetz André
zur Erklärung:
für jede gefundene Datei wird das Änderungsdatum per
echo
ausgeben und dann wie gehabt per findstr
gefiltert und nur der passende Treffer wird dann auch (sofern man will) gelöscht