voxi
Goto Top

Batch zur Sicherung (Datei in Unterverzeichn. kopieren, Dateiname mit Datum/Uhrzeit, Prüfen, 2.Datei ausführen, PC herunterfahren)

Liebe Profis,
ich habe im Verzeichnis "D:\db\" eine Datei "vogg.db"
Diese Datei soll bei Ausführen einer Batch Datei in das Unterverzeichnis "D:\db\sicherung" kopiert werden.
Die kopierte Datei soll folgenden Dateinamen erhalten: "vogg_20060201_1730.db" (also mit Datum und Uhrzeit)
In dem Unterverzeichnis sollen also immer mehr Sicherungskopien mit jeweils aktuellen Systemdatum entstehen.
Dann soll geprüft werden, ob die Kopie korrekt funktioniert hat - da hab ich mal was von windiff.exe gehört (falls was schief gegangen ist - evtl eine Email mit Fehlermeldung an bestimmte Email-Adresse.)
dann sollte noch eine bestimmte andere (bereits bestehende) bat.Datei aufgerufen und ausgeführt werden
und zu guter letzt der computer regulär herunter gefahren werden.

so würde ich mir das in etwa vorstellen - hab aber keine ahnung, ob man das auch realisieren kann
da muss ich mich wohl ganz tief in die materie hineinknien - ich hab mir gedacht, vielleicht könntet ihr mir ein paar denkanstöße geben - ich wäre überaus dankbar

vielen dank im voraus
silvia

Content-ID: 25062

Url: https://administrator.de/contentid/25062

Ausgedruckt am: 24.11.2024 um 06:11 Uhr

sims
sims 02.02.2006 um 16:09:19 Uhr
Goto Top
Hallo voxi,
stellst ja ziemlich große Ansprüche an eine batch Datei! face-wink Leider kann ich dir auch nicht so recht weiter helfen aber ich kann dir eine Software empfehlen die sich auf synchronisieren von Dateien spezialisiert hat! Vielleicht hilft dir das ja weiter?

http://www.cordes-dev.com/

mfg
sims
Biber
Biber 02.02.2006 um 19:11:13 Uhr
Goto Top
Moin Silvia,

so komplex hört sich das eigentlich nicht an.

Eine erste grobe Skizze wäre wie folgt:
Im Bereich Batch & Shell findet du im Tutorial "Workshop Datch for Runaway III - Umgang mit Datums- und Zeitvariablen im Batch" eine Batchdatei namens GetAlldateTimeInfos.bat.
Copy & Paste Dir die irgendwo in Deinen Such-PATH.

:: -----Snipp Voggbackup.bat ---ungetestete Skizze
@echo off & setlocal
Call GetAllDateTimeInfos /s
:: (alle Variablen wie JJ, MM, TT etc sind gesetzt sind gesetzt)
:: optional... LOGFILE: set logfilename=%JJ%-%MM%-%TT%_%hh%$%min%.log
Set "NewBackup=vogg_%JJ%%MM%%TT%_%%HH%%MIN%.db"
Call GetAllDateTimeInfos /u
copy d:\db\vogg.db %NewBackup%>nul
IF ERRORLEVEL 1 goto FEHLER_beim_Copy
FC /b d:\db\vogg.db %NewBackup% >nul
IF ERRORLEVEL 1 goto FEHLER_beim_Vergleich
:: wenn ok, dann Rechner runterfahren... ggf. Parameter anpassen
CALL m:\eine\Zweite\BatDatei.bat
shutdown -s -f -t 00
goto :eof

:FEHLER_Beim_Copy
Blat ....(parameter) "Fehler beim Kopieren..."
goto :eof

:FEHLER_Beim_Vergleich
Blat ....(parameter) "Fehler beim Vergleich..."
goto :eof
::------------snapp Voggbackup.bat ---ungetestete Skizze

Das wars im Groben.

Hinweis auf windiff.exe war ein Missverständnis. Windiff ist eher zum Abgleich von (Text-)Dateien brauchbar, nicht zum Vergleich von Binärdaten.
FC.exe (FileCompare) reicht aus.

Zu Blat.exe (Freewaretool zum Versenden von einfachen Mails vom CMD-Prompt aus) bitte Forumssuche benutzen oder eine Suchmaschine.

Parameter von Shutdown.exe sind unterschiedlich je nach Windowsversion, mit "Shutdown /?" am CMD-Prompt prüfen und anpassen.

Was der Hinweis mit der professisionellen Synchronisations-Software für diese Anforderung hier soll, hab ich nicht verstanden.

Großes Lob übrigens für die verständliche und vollständige Problemformulierung.

HTH Biber
maneich
maneich 02.02.2006 um 19:30:59 Uhr
Goto Top
Hallo,

und wenn Du beim copy-Befehl den Parameter /v setzst, hast Du die Prüfung, ob identisch mit Ursprungsdatei gleich dabei.

MfG maneich
voxi
voxi 03.02.2006 um 10:40:44 Uhr
Goto Top
Danke sehr!
Ich hab das ganze jetzt ausprobiert,
hab aber das problem, dass die variablen DD, TT, MM und hh mit anführungszeichen geliefert werden.
was könnte ich falsch gemacht haben?

INDate=03.02.2006
INTime=10:32:19,49
DateOrder=TT-MM-JJ
KW=5
OSKW=6
DoW=34
DD="03"
TT="03"
MM="02"
JJ=2006
YY=2006
hh="10"
min=32
ss=19
ms=49
maneich
maneich 03.02.2006 um 11:59:17 Uhr
Goto Top
Hallo,

dann baue Dir doch diese Daten bzw. das was Du brauchst, selbst zusammen:

INDate=03.02.2006
INTime=10:32:19,49


akt_date_time= %INDate:~7, 4%-%inDate:~4, 2%-%InDate:~1, 2%-%InTime:~1, 2%%InTime:~4, 2%

akt_date_time = 2006-02-03-1032

Kanst Du aber auch mit "date" machen.

MfG maneich
Biber
Biber 03.02.2006 um 16:11:38 Uhr
Goto Top
Moin, voxi,
danke für den Hinweis. Du hast nichts verkehrt gemacht.
War mein Fehler. Ich hatte beim letzten Editieren des Tutorials die Anführungszeichen an der falschen Stelle gesetzt. Ist jetzt im Tutorial korrigiert.

Bitte hol Dir den Source noch mal oder PN mir Deine Mailadresse - heute könnte ich tatsächlich eine getestete GetAllDateTimeInfos.bat mailen. *gg

Schönes Wochenende
Frank / der Biber aus Bremen