Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Backup per Batchdatei

Frage Entwicklung Batch & Shell

Mitglied: 37955

37955 (Level 1)

18.06.2007, aktualisiert 27.09.2007, 6133 Aufrufe, 14 Kommentare

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... ;)
Mitglied: ElSnoopy
18.06.2007 um 15:08 Uhr
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
Bitte warten ..
Mitglied: 37955
18.06.2007 um 15:36 Uhr
Danke @ ElSnoopy

Allerdings erhalte ich nach dem Anmelden folgende Meldung:

Ungültiger Pfad
Ein Unterverzeichnis oder eine Datei mit dem Namen "C:\Backup\18.06.2007" existi
ert bereits.
Loesche Verzeichnisse aelter als 14 Tage
Der Befehl "autodel01.bat" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\autodel01.bat konnte nicht gefunden werden
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.



Was steckt in der Datei "autodel01.bat"? Wo muss ich diese anlegen?
Bitte warten ..
Mitglied: ElSnoopy
18.06.2007 um 16:17 Uhr
noch giebt es keine autodel1.bat die giebt es ja erst nch 7 oder 14 Tagen je nachdem.
Du willst ja auch erst nach 7 tagen löschen
Bitte warten ..
Mitglied: 37955
18.06.2007 um 16:20 Uhr
Klar will ich erst nach 7 Tage löschen... also d.h. ich soll die Meldung ignorieren. In deinem Beispiel gibt es die Datei dann erst nach 14 Tagen?
Bitte warten ..
Mitglied: ElSnoopy
18.06.2007 um 16:27 Uhr
Ja kannst ignorieren wenn er dir die dateien gesichert hat.
zum testen einfach mal die autodel14 in autodel01 umbennen und dann nochmal schauen obe er löscht.
aber achtung problem ist er lösch nur den Inhalt nicht die Verzeichnisse
Bitte warten ..
Mitglied: miniversum
19.06.2007 um 08:39 Uhr
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:

01.
@echo off 
02.
set "Quelle=C:\sven\" 
03.
set "Ziel=C:\Backup\" 
04.
set "Zielunterverz=%date:~6%%date:~3,2%%date:~0,2%" 
05.
set letztex=7 
06.
 
07.
REM Kopieren der Dateien 
08.
xcopy "%Quelle%" "%Ziel%\%Zielunterverz%" /s /c /i /f /h /k /o /x /y 
09.
 
10.
REM Löschen bis auf die letzten x Verzeichnisse 
11.
if %letztex% gtr 0 ( 
12.
set "skiptext=skip=%letztex% " 
13.
) else ( 
14.
set "skiptext=" 
15.
16.
FOR /F "%skiptext%delims=" %%i in ('dir %Ziel% /B /AD /O-D') do rd /s /q "%%i"
miniversum
Bitte warten ..
Mitglied: 37955
19.06.2007 um 09:27 Uhr
@miniversum
Deine Idee kommt mir noch einen Tick sympathischer vor und würde meinen Zweck vollkommen erfüllen.

Ich besitze auf c:\ einen Ordner Test, der die Dateien enthält und ein Ordner Backup, der als Zielverzeichnis dient. Ich habe deine Testdatei wie folgt angepasst:

@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

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"


Leider erhalte ich folgende Meldung:
Ungültiger Pfad
0 Dateien kopiert
Bitte warten ..
Mitglied: miniversum
19.06.2007 um 10:09 Uhr
Ändere mal wie folgt ab:
01.
@echo off 
02.
set "Quelle=C:\Test\" 
03.
set "Ziel=C:\Backup\" 
04.
set "Zielunterverz=%date:~6%%date:~3,2%%date:~0,2%" 
05.
set letztex=7 
06.
 
07.
REM Kopieren der Dateien 
08.
xcopy "%Quelle%" "%Ziel%\%Zielunterverz%" /s /c /i /f /h /k /o /x /y 
09.
echo Kopiere von "%Quelle%" nach "%Ziel%\%Zielunterverz%" mit Ergebnis %errorlevel% 
10.
 
11.
REM Löschen bis auf die letzten x Verzeichnisse 
12.
if %letztex% gtr 0 ( 
13.
set "skiptext=skip=%letztex% " 
14.
) else ( 
15.
set "skiptext=" 
16.
17.
 
18.
FOR /F "%skiptext%delims=" %%i in ('dir "%Ziel%" /B /AD /O-D') do rd /s /q "%%i"
Was bekommst du als Ausgabe?

miniversum
Bitte warten ..
Mitglied: 37955
19.06.2007 um 10:26 Uhr
Ungültiger Pfad
0 Datei(en) kopiert
Kopiere von "C:\Test\" nach "C:\Backup\\20070619" mit Ergebnis 4
Bitte warten ..
Mitglied: miniversum
19.06.2007 um 10:52 Uhr
Du bekommst als fehler 4 zurück.
Lauf MS heißt das:
01.
Beendigungscode Beschreibung 
02.
         0      Dateien wurden ohne Fehler kopiert. 
03.
         1      Keine Dateien zum Kopieren gefunden. 
04.
         2      Der Benutzer hat STRG+C gedrückt, um xcopy zu beenden. 
05.
<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> 
06.
         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
Bitte warten ..
Mitglied: 37955
19.06.2007 um 11:25 Uhr
Ok, danke! Teile 1 wäre geschafft, offenbar hatte er ein Problem mit der Variablen "Quelle". Diese hab ich nun entfernt und durch die Konstante "C:\Test\*.*\" ersetzt.

Nun habe ich die Variable "letztex" auf 2 gesetzt und in C:\Backup\ die Verzeichnisse "20070618" und "20070617" angelegt.

Theoretisch müsste er nach dem Anlegen des aktuellen Ordners den Ordner "20070617" löschen, oder? Macht er leider nicht... nun kommt folgendes Ergebnis raus:

C:\>backup2.bat
C:\Test\Test.txt -> C:\Backup\20070619\Test.txt
1 Datei(en) kopiert
Kopiere von "C:\Test\" nach "C:\Backup\20070619" mit Ergebnis 0
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Bitte warten ..
Mitglied: kotik81
26.09.2007 um 20:51 Uhr
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
Bitte warten ..
Mitglied: kotik81
27.09.2007 um 13:16 Uhr
Hat keiner eine Idee?
Bitte helft mir!
Bitte warten ..
Mitglied: kotik81
27.09.2007 um 13:17 Uhr
Hat keiner eine Idee?
Bitte helft mir!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Abfrage in einer Batchdatei ?
gelöst Frage von Emily33Batch & Shell3 Kommentare

Hallo alle, ich habe mir eine Diskpart Batchdatei erstellt um öfters USB-Sticks bootfähig zu machen. An einem Punkt komme ...

Batch & Shell
Robocopy in einer Batchdatei
gelöst Frage von CinebatBatch & Shell7 Kommentare

Hallo ich möchte ein einfache Batchdatei erstellen. Ich möchte sämtliche Dateien und Ordner von meiner Festplatte D: auf ein ...

Windows Tools
Aktuelles Verzeichnis in Batchdatei
gelöst Frage von SnuffchenWindows Tools7 Kommentare

Hallo zusammen, ich habe das Problem das ich innerhalb einer Batch-Datei das aktuelle Verzeichnis der Batch-Datei ermitteln muss. Führe ...

Batch & Shell
Mit Batchdatei eine .ini erstellen
gelöst Frage von miichiii9Batch & Shell7 Kommentare

Hallo miteinander und guten Morgen Ich möchte eine kleine Abfrage starten via Batch und diese anschliessend in eine ini ...

Neue Wissensbeiträge
Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 2 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit7 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...