PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei von Verzeichnis in anderes kopieren (mit *.Bat) wie?


Fatality
2005-07-05, 09:29:57
Moin,

ich möchte das eine datei aus einem verzeichnis
c:\test.dbf nach d:\backup/test.dbf kopiert wird.
das ganze soll immer nachts um 24uhr passieren.

Wenn ich eine Batchdatei habe die nur das kopieren übernimmt und den start der batch dann mit dem scheduler auf die gwünschte uhrzeit steuern lasse müsste das doch gehen oder?

nun ist die frage was wird in die batch datei reingeschrieben?

Lokadamus - nixBock
2005-07-05, 10:18:32
mmm...

:confused: das:
copy c:\test.dbf d:\backup\

Kannst du auf der Commandozeile am besten einmal testen, im Normalfall kannst du den Befehl dann einfach in der Bat wieder verwenden. Wie man eine Fehlerbehandlung hinbekommt, kann ich dir spontan nicht sagen. Geht irgendwie mit Errorlevel oder so, hab damit nie grossartig was gemacht.

Fatality
2005-07-05, 10:26:02
also ich habe jetzt das und es funzt

copy .\backup.dat "C:\Zielpfad des Backups\"
net send %computername% Reminder99 Backup erfolgreich !
@exit

allerdings ergibt sich jetzt noch folgende Aufgabenstellung.
undzwar sollen die backup.dat jeden tag um 24 uhr gesichert.
die file soll beim nächsten mal nicht überschrieben werden, sondern auf 7 hochgezählt werden pro tag.

also backup von montag heißt backup1.dat am dienstag dann backup2.dat usw. bis sonntag.
Die sache ist jetzt die das wenn eine woche vorbei ist soll er wieder bei 1 anfangen und die bereitsgeschriebenen dateien überschreiben.
so hätte man immer ein einwöchiges backup.

weiß jemand wie man das mit batch bewerkstelligt?

mithrandir
2005-07-05, 11:09:52
Dere!

Und warum gerade mit Batch?

bye, mith

Fatality
2005-07-05, 11:15:25
das problem ist ich habe mein notebook mit vb6 drauf zuhause vergessen und hocke jetzt auf arbeit und suche deswegen ne andere lösung..

wenn jemand von euch zeit und lust hat wäre ich höchsterfreut wenn mir jemand das auch mit einer andere sprache kompilieren könnte.
allerdings steht der dateiname mit endung sowie der zielpfad der backups noch nicht fest deshalb bräuchte ich da noch eine abfrage dafür. :smile:

Fatality
2005-07-05, 12:11:40
habs hinbekommen!
danke für alle antworten

Misda
2005-07-05, 14:59:52
Könntest du auch reinschreiben wie du das gemacht hast? :)

DerRob
2005-07-06, 17:05:17
ich hab sowas ähnliches mal mit 3 verschiedenen backups gemacht:

del d:\backupverzeichnis\backup3.dat
ren d:\backupverzeichnis\backup2.dat d:\backupverzeichnis\backup3.dat
ren d:\backupverzeichnis\backup1.dat d:\backupverzeichnis\backup2.dat
copy c:\backup.dat d:\backupverzeichnis\backup1.dat

das älteste backup wird jeweils gelöscht, und die neueren nach hinten durchgeschoben.

allerdings ist das eigentlich keine besonders gute idee. die alten daten werden gelöscht, auch wenn die neuen daten durch irgend ein fehler/problem nicht gesichert werden können. 3x ausführen, schon sind alle daten futsch :|

Misda
2005-07-07, 12:35:43
Man kann das ganze ja auf 10 erhöhen :)

PatkIllA
2005-07-07, 12:53:19
man kann auch die Umgebungsvariable %date% benutzen um die Dateien entsprechend zu benennen. Dann ist man auch sicher, davor wenn man das gleiche Skript mehrfach aufruft.
Das Löschen kriegt man bestimmt noch mit ner for schleife hin.
Würde aber auch eher auf ein Perl oder Bash script setzen. Das ist doch etwas mächtiger.

littlejam
2005-07-07, 14:41:04
ich hab sowas ähnliches mal mit 3 verschiedenen backups gemacht:

del d:\backupverzeichnis\backup3.dat
ren d:\backupverzeichnis\backup2.dat d:\backupverzeichnis\backup3.dat
ren d:\backupverzeichnis\backup1.dat d:\backupverzeichnis\backup2.dat
copy c:\backup.dat d:\backupverzeichnis\backup1.dat

das älteste backup wird jeweils gelöscht, und die neueren nach hinten durchgeschoben.

allerdings ist das eigentlich keine besonders gute idee. die alten daten werden gelöscht, auch wenn die neuen daten durch irgend ein fehler/problem nicht gesichert werden können. 3x ausführen, schon sind alle daten futsch :|
Kopier doch zuerst und lösche dann ;)

if exist d:\backupverzeichnis\backup4.dat goto end
if exist d:\backupverzeichnis\backup3.dat ren d:\backupverzeichnis\backup3.dat d:\backupverzeichnis\backup4.dat
if exist d:\backupverzeichnis\backup2.dat ren d:\backupverzeichnis\backup2.dat d:\backupverzeichnis\backup3.dat
if exist d:\backupverzeichnis\backup1.dat ren d:\backupverzeichnis\backup1.dat d:\backupverzeichnis\backup2.dat
if exist c:\backup.dat copy c:\backup.dat d:\backupverzeichnis\backup1.dat
if %errorlevel% equ 0 del d:\backupverzeichnis\backup4.dat
:end

Ne ziemlich hässliche Batchdatei, IMHO ists besser die backups mit einem Datumsnamen zu versehen.

Gruß

DerRob
2005-07-07, 22:00:39
Kopier doch zuerst und lösche dann ;)
jo, war mir bloß zu viel aufwand :cool: