37955
18.06.2007, aktualisiert am 27.09.2007
7024
14
0
Backup per Batchdatei
Hallo,
ich müsste ein Art auto. Datensicherung per Batch-Datei erstellen.
Nach meinem Wissensstand ist diese Lösung allerdings nicht per Kommandozeile realisierbar - hoffe ihr könnt mich eines besseren belehren!
Ziel:
Mehrere Dateien sollen per Mausklick oder Task in ein zuvor bestimmtes Verzeichnis kopiert werden. Es handelt sich dabei immer um die selben Dateien, deshalb müsste der Dateiname zuvor mit einer Art Zähler hochgesetzt werden.
Beispiel:
Ursprungsdatei: test.txt
1. Backup: test_00001.txt
2. Backup: test_00002.txt
usw.
Damit das Verzeichnis nicht unendlich mit "Altlasten" zugemüllt wird, sollen in diesem Verzeichnis immer nur Dateien der letzten 7 Tage vorhanden sein.
Gibt es hierfür eine Möglichkeit dieses Ziel durch eine Batchdatei zu realiseren oder nicht?
Eine Anwort für eine Backup-Software bringt mich nicht weiter... ;)
ich müsste ein Art auto. Datensicherung per Batch-Datei erstellen.
Nach meinem Wissensstand ist diese Lösung allerdings nicht per Kommandozeile realisierbar - hoffe ihr könnt mich eines besseren belehren!
Ziel:
Mehrere Dateien sollen per Mausklick oder Task in ein zuvor bestimmtes Verzeichnis kopiert werden. Es handelt sich dabei immer um die selben Dateien, deshalb müsste der Dateiname zuvor mit einer Art Zähler hochgesetzt werden.
Beispiel:
Ursprungsdatei: test.txt
1. Backup: test_00001.txt
2. Backup: test_00002.txt
usw.
Damit das Verzeichnis nicht unendlich mit "Altlasten" zugemüllt wird, sollen in diesem Verzeichnis immer nur Dateien der letzten 7 Tage vorhanden sein.
Gibt es hierfür eine Möglichkeit dieses Ziel durch eine Batchdatei zu realiseren oder nicht?
Eine Anwort für eine Backup-Software bringt mich nicht weiter... ;)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61653
Url: https://administrator.de/contentid/61653
Ausgedruckt am: 26.11.2024 um 13:11 Uhr
14 Kommentare
Neuester Kommentar
Ich habe das mit folgendem Bach gelöst
Damit wird Dir im Sicherungsverzeichniss ein unterordner mit Datum erstellt. und je nach einstellung nach 1 oder 30 Tagen gelöscht.
@echo off
REM
REM Anzupassen sind Quelle,Ziel,Tage mittels autodelXX.bat
REM
REM set Batch="C:\sicherung"
set Quelle="C:\sven\"
set Ziel="C:\Backup\%date%"
set templog="%temp%\temp.log"
echo .-. >>%windir%\backup.log
echo Starte Backup: %date% %time% von %Quelle% nach %Ziel% >>%windir%\backup.log
xcopy %Quelle% %Ziel% /s /c /i /f /h /k /o /x /y >>%windir%\backup.log
md %Ziel%
echo Starte Überprüfung >>%windir%\backup.log
start /w windiff.exe -Sdx %templog% -T %Ziel% %quelle%
find "different" %templog% >>%windir%\backup.log
echo Fertig >>%windir%\backup.log
start notepad.exe %windir%\backup.log
echo Loesche Verzeichnisse aelter als 14 Tage
echo del %ZIEL% /s /q >autodel14.bat
call autodel01.bat
del autodel01.bat
ren autodel02.bat autodel01.bat
ren autodel03.bat autodel02.bat
ren autodel04.bat autodel03.bat
ren autodel05.bat autodel04.bat
ren autodel06.bat autodel05.bat
ren autodel07.bat autodel06.bat
ren autodel08.bat autodel07.bat
ren autodel09.bat autodel08.bat
ren autodel10.bat autodel09.bat
ren autodel11.bat autodel10.bat
ren autodel12.bat autodel11.bat
ren autodel13.bat autodel12.bat
ren autodel14.bat autodel13.bat
ren autodel15.bat autodel14.bat
ren autodel16.bat autodel15.bat
ren autodel17.bat autodel16.bat
ren autodel18.bat autodel17.bat
ren autodel19.bat autodel18.bat
ren autodel20.bat autodel19.bat
ren autodel21.bat autodel20.bat
ren autodel22.bat autodel21.bat
ren autodel23.bat autodel22.bat
ren autodel24.bat autodel23.bat
ren autodel25.bat autodel24.bat
ren autodel26.bat autodel25.bat
ren autodel27.bat autodel26.bat
ren autodel28.bat autodel17.bat
ren autodel29.bat autodel28.bat
ren autodel30.bat autodel29.bat
ren autodel31.bat autodel30.bat
Damit wird Dir im Sicherungsverzeichniss ein unterordner mit Datum erstellt. und je nach einstellung nach 1 oder 30 Tagen gelöscht.
@echo off
REM
REM Anzupassen sind Quelle,Ziel,Tage mittels autodelXX.bat
REM
REM set Batch="C:\sicherung"
set Quelle="C:\sven\"
set Ziel="C:\Backup\%date%"
set templog="%temp%\temp.log"
echo .-. >>%windir%\backup.log
echo Starte Backup: %date% %time% von %Quelle% nach %Ziel% >>%windir%\backup.log
xcopy %Quelle% %Ziel% /s /c /i /f /h /k /o /x /y >>%windir%\backup.log
md %Ziel%
echo Starte Überprüfung >>%windir%\backup.log
start /w windiff.exe -Sdx %templog% -T %Ziel% %quelle%
find "different" %templog% >>%windir%\backup.log
echo Fertig >>%windir%\backup.log
start notepad.exe %windir%\backup.log
echo Loesche Verzeichnisse aelter als 14 Tage
echo del %ZIEL% /s /q >autodel14.bat
call autodel01.bat
del autodel01.bat
ren autodel02.bat autodel01.bat
ren autodel03.bat autodel02.bat
ren autodel04.bat autodel03.bat
ren autodel05.bat autodel04.bat
ren autodel06.bat autodel05.bat
ren autodel07.bat autodel06.bat
ren autodel08.bat autodel07.bat
ren autodel09.bat autodel08.bat
ren autodel10.bat autodel09.bat
ren autodel11.bat autodel10.bat
ren autodel12.bat autodel11.bat
ren autodel13.bat autodel12.bat
ren autodel14.bat autodel13.bat
ren autodel15.bat autodel14.bat
ren autodel16.bat autodel15.bat
ren autodel17.bat autodel16.bat
ren autodel18.bat autodel17.bat
ren autodel19.bat autodel18.bat
ren autodel20.bat autodel19.bat
ren autodel21.bat autodel20.bat
ren autodel22.bat autodel21.bat
ren autodel23.bat autodel22.bat
ren autodel24.bat autodel23.bat
ren autodel25.bat autodel24.bat
ren autodel26.bat autodel25.bat
ren autodel27.bat autodel26.bat
ren autodel28.bat autodel17.bat
ren autodel29.bat autodel28.bat
ren autodel30.bat autodel29.bat
ren autodel31.bat autodel30.bat
Das löschen von Dateien und Verzeichnis die älter als x Tage sind hatten wir hier in diesem Bereich schon mehrmals.
Das geht nur gut mit Zusatztools wie z.B. delage oder indem man die Forderung etwas anders definiert...
Kann man das "löschen nach x Tagen" ändern in "löschen das nur noch die aktuellsten x Verzeichnisse vorhanden sind" geht es einfach mit Bordmitteln. Wird das Backup Taglich durchgeführt würde dies so auch immer die letzten x Tage beinhalten.
Ein Entwurf dafür wäre dann so:
miniversum
Das geht nur gut mit Zusatztools wie z.B. delage oder indem man die Forderung etwas anders definiert...
Kann man das "löschen nach x Tagen" ändern in "löschen das nur noch die aktuellsten x Verzeichnisse vorhanden sind" geht es einfach mit Bordmitteln. Wird das Backup Taglich durchgeführt würde dies so auch immer die letzten x Tage beinhalten.
Ein Entwurf dafür wäre dann so:
@echo off
set "Quelle=C:\sven\"
set "Ziel=C:\Backup\"
set "Zielunterverz=%date:~6%%date:~3,2%%date:~0,2%"
set letztex=7
REM Kopieren der Dateien
xcopy "%Quelle%" "%Ziel%\%Zielunterverz%" /s /c /i /f /h /k /o /x /y
REM Löschen bis auf die letzten x Verzeichnisse
if %letztex% gtr 0 (
set "skiptext=skip=%letztex% "
) else (
set "skiptext="
)
FOR /F "%skiptext%delims=" %%i in ('dir %Ziel% /B /AD /O-D') do rd /s /q "%%i"
miniversum
Ändere mal wie folgt ab:
Was bekommst du als Ausgabe?
miniversum
@echo off
set "Quelle=C:\Test\"
set "Ziel=C:\Backup\"
set "Zielunterverz=%date:~6%%date:~3,2%%date:~0,2%"
set letztex=7
REM Kopieren der Dateien
xcopy "%Quelle%" "%Ziel%\%Zielunterverz%" /s /c /i /f /h /k /o /x /y
echo Kopiere von "%Quelle%" nach "%Ziel%\%Zielunterverz%" mit Ergebnis %errorlevel%
REM Löschen bis auf die letzten x Verzeichnisse
if %letztex% gtr 0 (
set "skiptext=skip=%letztex% "
) else (
set "skiptext="
)
FOR /F "%skiptext%delims=" %%i in ('dir "%Ziel%" /B /AD /O-D') do rd /s /q "%%i"
Was bekommst du als Ausgabe?
miniversum
Du bekommst als fehler 4 zurück.
Lauf MS heißt das:
Durch den zusätzlichen \ im
Könntest das ja mal in
Im Prinzip kannst du auch das xcopy vom vorherigen auch übernehmen. der fehler liegt auf jedenfall beim Kopiervorgang.
miniversum
Lauf MS heißt das:
Beendigungscode Beschreibung
0 Dateien wurden ohne Fehler kopiert.
1 Keine Dateien zum Kopieren gefunden.
2 Der Benutzer hat STRG+C gedrückt, um xcopy zu beenden.
<b> 4 Ein Initialisierungsfehler ist aufgetreten. Es ist nicht genug Arbeitsspeicher oder Speicherplatz vorhanden, oder Sie haben in der Befehlszeile einen ungültigen Laufwerknamen oder eine ungültige Syntax eingegeben.</b>
5 Fehler beim Schreiben auf den Datenträger aufgetreten.
Durch den zusätzlichen \ im
xcopy "%Quelle%" "%Ziel%\%Zielunterverz%"
hast du da zwei \ im Ziel stehen, also "C:\Backup\\20070619".Könntest das ja mal in
xcopy "%Quelle%" "%Ziel%%Zielunterverz%"
ändern. Aber ich glaub eigentlich nicht das es daran liegt.Im Prinzip kannst du auch das xcopy vom vorherigen auch übernehmen. der fehler liegt auf jedenfall beim Kopiervorgang.
miniversum
Hallo,
ich brauche Hilfe! Ich habe eine Backup Batch gemacht und es funkt. eigener maßen, aber mir fällt noch dass, wenn im Quell die Datei nicht vorhanden ist aber dafür im Ziel, soll es im Ziel gelöscht werden. Und was kann man hier noch verbessern? Danke im Voraus!
@echo OFF
:neu
CLS
ECHO;
ECHO 1) Daten Kopieren
ECHO;
ECHO 2) Daten Restore
ECHO;
ECHO 3) Daten Backup
ECHO;
ECHO 4)
ECHO;
set choice=
set /P choice=Auswahl:
if not [%choice%]== set choice=%choice:~0,1%
if [%choice%] ==[4] goto vier
if [%choice%] ==[3] goto drei
if [%choice%]==[2] goto zwei
if [%choice%]==[1] goto eins
:eins
xcopy /E /H /Y "C:\Programme\Mozilla Firefox" /D /R /A /V "D:\Anwendungen\Mozilla Firefox\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Rainlendar" /D /R /A /V "D:\Anwendungen\Rest\Rainlendar\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Locktime" /D /R /A /V "D:\Anwendungen\Rest\Locktime\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mobile Master" /D /R /A /V "D:\Anwendungen\Rest\Mobile Master\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mozilla" /D /R /A /V "D:\Anwendungen\Rest\Mozilla\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\concept design" /D /R /A /V "D:\Anwendungen\Rest\concept design\"
xcopy /E /H /Y "C:\Programme\Trillian" /D /R /A /V "D:\Anwendungen\Trillian\"
xcopy /E /H /Y "C:\Programme\autoUSD" /D /R /A /V "D:\Anwendungen\autoUSD\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Talkback" /D /R /A /V "D:\Anwendungen\Rest\Talkback\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Thunderbird" /D /R /A /V "D:\Anwendungen\Rest\Thunderbird\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Thunderbird" /D /R /A /V "D:\Anwendungen\ThunderbirdLocal\"
xcopy /E /H /Y "C:\Programme\Mozilla Thunderbird" /D /R /A /V "D:\Anwendungen\Mozilla Thunderbird\"
pause
GOTO acht
:zwei
RD /S /Q "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mozilla"
md "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mozilla"
xcopy /E /H "D:\Anwendungen\Rest" /D /R /Y /A /V "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\"
xcopy /E /H "D:\Anwendungen\Mozilla Firefox" /D /R /Y /A /V "C:\Programme\Mozilla Firefox\"
xcopy /E /H "D:\Anwendungen\ThunderbirdLocal" /D /R /Y /A /V "C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Thunderbird\"
xcopy /E /H "D:\Anwendungen\Mozilla Thunderbird" /D /R /Y /A /V "C:\Programme\Mozilla Thunderbird\"
xcopy /E /H "D:\Anwendungen\Trillian" /D /R /Y /A /V "C:\Programme\Trillian\"
pause
GOTO acht
:drei
RD /S /Q "D:\Anwendungen\Backup"
md "D:\Anwendungen\Backup"
Echo Backup wurde geloescht!
pause
xcopy /E /H "D:\Anwendungen\Mozilla Firefox" /D /R /Y /A /V "D:\Anwendungen\Backup\Mozilla Firefox\"
xcopy /E /H "D:\Anwendungen\Rest" /D /R /Y /A /V "D:\Anwendungen\Backup\Rest\"
xcopy /E /H "D:\Anwendungen\Hitrecorder2" /D /R /Y /A /V "D:\Anwendungen\Backup\Hitrecorder2\"
xcopy /E /H "D:\Anwendungen\ThunderbirdLocal\" /D /R /Y /A /V "D:\Anwendungen\Backup\ThunderbirdLocal\"
xcopy /E /H "D:\Anwendungen\Mozilla Thunderbird" /D /R /Y /A /V "D:\Anwendungen\Backup\Mozilla Thunderbird\"
xcopy /E /H "D:\Anwendungen\Trillian" /D /R /Y /A /V "D:\Anwendungen\Backup\Trillian\"
echo;
Echo Backup wurde erstellt!
pause
GOTO acht
:acht
exit
ich brauche Hilfe! Ich habe eine Backup Batch gemacht und es funkt. eigener maßen, aber mir fällt noch dass, wenn im Quell die Datei nicht vorhanden ist aber dafür im Ziel, soll es im Ziel gelöscht werden. Und was kann man hier noch verbessern? Danke im Voraus!
@echo OFF
:neu
CLS
ECHO;
ECHO 1) Daten Kopieren
ECHO;
ECHO 2) Daten Restore
ECHO;
ECHO 3) Daten Backup
ECHO;
ECHO 4)
ECHO;
set choice=
set /P choice=Auswahl:
if not [%choice%]== set choice=%choice:~0,1%
if [%choice%] ==[4] goto vier
if [%choice%] ==[3] goto drei
if [%choice%]==[2] goto zwei
if [%choice%]==[1] goto eins
:eins
xcopy /E /H /Y "C:\Programme\Mozilla Firefox" /D /R /A /V "D:\Anwendungen\Mozilla Firefox\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Rainlendar" /D /R /A /V "D:\Anwendungen\Rest\Rainlendar\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Locktime" /D /R /A /V "D:\Anwendungen\Rest\Locktime\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mobile Master" /D /R /A /V "D:\Anwendungen\Rest\Mobile Master\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mozilla" /D /R /A /V "D:\Anwendungen\Rest\Mozilla\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\concept design" /D /R /A /V "D:\Anwendungen\Rest\concept design\"
xcopy /E /H /Y "C:\Programme\Trillian" /D /R /A /V "D:\Anwendungen\Trillian\"
xcopy /E /H /Y "C:\Programme\autoUSD" /D /R /A /V "D:\Anwendungen\autoUSD\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Talkback" /D /R /A /V "D:\Anwendungen\Rest\Talkback\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Thunderbird" /D /R /A /V "D:\Anwendungen\Rest\Thunderbird\"
xcopy /E /H /Y "C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Thunderbird" /D /R /A /V "D:\Anwendungen\ThunderbirdLocal\"
xcopy /E /H /Y "C:\Programme\Mozilla Thunderbird" /D /R /A /V "D:\Anwendungen\Mozilla Thunderbird\"
pause
GOTO acht
:zwei
RD /S /Q "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mozilla"
md "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\Mozilla"
xcopy /E /H "D:\Anwendungen\Rest" /D /R /Y /A /V "C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten\"
xcopy /E /H "D:\Anwendungen\Mozilla Firefox" /D /R /Y /A /V "C:\Programme\Mozilla Firefox\"
xcopy /E /H "D:\Anwendungen\ThunderbirdLocal" /D /R /Y /A /V "C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Thunderbird\"
xcopy /E /H "D:\Anwendungen\Mozilla Thunderbird" /D /R /Y /A /V "C:\Programme\Mozilla Thunderbird\"
xcopy /E /H "D:\Anwendungen\Trillian" /D /R /Y /A /V "C:\Programme\Trillian\"
pause
GOTO acht
:drei
RD /S /Q "D:\Anwendungen\Backup"
md "D:\Anwendungen\Backup"
Echo Backup wurde geloescht!
pause
xcopy /E /H "D:\Anwendungen\Mozilla Firefox" /D /R /Y /A /V "D:\Anwendungen\Backup\Mozilla Firefox\"
xcopy /E /H "D:\Anwendungen\Rest" /D /R /Y /A /V "D:\Anwendungen\Backup\Rest\"
xcopy /E /H "D:\Anwendungen\Hitrecorder2" /D /R /Y /A /V "D:\Anwendungen\Backup\Hitrecorder2\"
xcopy /E /H "D:\Anwendungen\ThunderbirdLocal\" /D /R /Y /A /V "D:\Anwendungen\Backup\ThunderbirdLocal\"
xcopy /E /H "D:\Anwendungen\Mozilla Thunderbird" /D /R /Y /A /V "D:\Anwendungen\Backup\Mozilla Thunderbird\"
xcopy /E /H "D:\Anwendungen\Trillian" /D /R /Y /A /V "D:\Anwendungen\Backup\Trillian\"
echo;
Echo Backup wurde erstellt!
pause
GOTO acht
:acht
exit