Ich würde so vorgehen:
1) Wenn das Backup durchgelaufen ist erstellt es eine Textdatei namens GETAN mit dem aktuellen Datum als Inhalt.
2) Beim Win-Start wird ebenso eine Datei namens HEUTE erstellt.
3) Im Anschluß daran wird geprüft ob GETAN existiert
4) und GETAN=HEUTE ist
5) Wenn nein ->
a) backuppen
b) GETAN auf HEUTE setzen
6) Wenn ja -> Ende
7) Umrühren, fertig
- Prinzipiell kann man alle Hilfdateien ins Root von C: legen (das beschreibe ich hier), ästhetischer ist es aber, wenn sie im Temporärverzeichnis untergebracht werden, aber dann muß man sich ev. noch mit endlosen Pfaden herumschlagen.
- Groß-/Kleinschreibung ist in unserem Fall egal.
- Mach Dir eine Konsole auf (CMD.EXE) und laß diese offen, bis alles funktioniert. Darin startest Du von Hand Deinen Batch-Prtotyp und auch alle Kommandos, mit denen Du herumexperimentierst. Somit entgehen Dir keine Textausgaben.
Zuerst erstellst Du Dir eine Hilfs-Textdatei namens "CR" in C:\.
Diese enthält nur ein einziges <RETURN>.
Im Groben würde ich mit folgendem Schema beginnen:
---
REM @ECHO OFF
Obiges REM erst entfernen, wenn alles funktioniert, sonst ist die Fehlersuche sehr mühsam.DATE >C:\HEUTE <C:\CR
(2) erzeugt die besagte Textdatei.
>ABC leitet die Ausgabe in Datei ABC um.
<XYZ bewirkt, daß die Eingabe von Datei XYZ besorgt wird, ansonsten müßte man beim DATE-Befehl immer von Hand <RETURN> eingeben.IF NOT EXIST C:\GETAN GOTO BACKUP
(3) Nein: Backup machen, s.u.FC C:\HEUTE C:\GETAN
(4) Vergleichen kann man die Dateien mit FC.EXE
Was da passiert kannst Du nachvollziehen wenn Du diese Zeile von Hand in der Konsole eingibst und zuvor beide Dateien erzeugst, einmal mit identischem Inhalt, einmal mit unterschiedlichem.IF ERRORLEVEL 1 GOTO BACKUP
(5a) Im Rahmen der Batchdatei kannst Du von diesem Vergleich den Rückgabewert (ERRORLEVEL, hat aber nix mit Fehler zu tun...) abfragen. Bei "keine Unterschiede" ist dieser Wert 0, ansonsten 1.
Das muß direkt in der darauf folgenden Zeile geschehen. Ohne das näher zu erläutern - übernimm diese beiden oberen Zeile so wie sie da stehen und frage _nicht_ auf 0 ab, auch wenn das so etwas ungeschickt aussieht.ECHO Backup nicht erforderlich.
GOTO ENDE
(6):BACKUP
DATE >C:\GETAN <C:\CR
(1&5b) erstmal unser Flag setzen. Schönheitsfehler: Keine Kontrolle ob das Backup auch anständig durchgelaufen ist.ECHO Backup wird ausgeführt...
DEINBACKUPPROGRAMM.EXE
(5a):ENDE
(6), das war's im Prinzip---
Habe das jetzt nicht ausprobiert, aber vom Prinzip her dürfte es so oder so ähnlich funktionieren.
(7) Wenn alles klappt entfernst Du, wie gesagt, das oberste REM und änderst außerdem die Zeile
FC C:\HEUTE C:\GETAN
nach
FC C:\HEUTE C:\GETAN >NUL
Dabei wird die Textausgabe von FC unterdrückt.
Das Ganze dann in einer Batchdatei namens CHECKBUP.BAT (oder wie auch immer) versenken und diese oder einen Link darauf in den Autostartordner von ALL USERS verfrachten.
Gut Holz!