Sicherung chronologisch anordnen

Hallo zusammen,

hab’ folgende nicht funktionierende Batch vorbereitet.

net stop SQL_SERVER
set „date=%date:~-4%-%date:~-7,2%-%date:~-10,2%“

if exist E:*Sicherung* goto Kopieren1
if not exist E:*Sicherung* goto Weiter
if exist Z:*Sicherung* goto Kopieren2
if not exist Z:*Sicherung* goto Weiter

Kopieren1

md E:%date%\
move E:*.tib E:%date%

Kopieren2

md Z:%date%
move Z:*.tib Z:%date%\

Weiter

net start SQL_SERVER

Zuerst wird die Datenbank angehalten mit net stop, dann das Datum in der Variablen date gespeichert. So weit so gut, aber dann kommen die Schwierigkeiten.

Die Sicherungen werden mit Acronis True Image erstellt und die Batchdatei als Befehl vor der Sicherung ausgeführt. True Image soll erst dann die Sicherung ausführen, wenn die Batch korrekt durchgeführt wurde. Die Sicherung durch TrueImage wird erst auf Laufwerk E: erstellt, ich kopiere Sie dann per Hand auf Laufwerk Z:. Die Batch soll also überprüfen, ob Sicherungsdateien auf den beiden Laufwerken vorhanden sind und diese dann in Ordern (chronologisch benannt) ablegen. Nur leider wird in dieser Batch nur eine der ersten beiden IF Bedingungen ausgeführt. Die zweiten zwei nicht mehr. Wie muss ich die Batch umschreiben, dass alle überprüft werden?

Gruß und Dank!

Hallo zusammen,

hab’ folgende nicht funktionierende Batch vorbereitet.

net stop SQL_SERVER
set „date=%date:~-4%-%date:~-7,2%-%date:~-10,2%“

if exist E:*Sicherung* goto Kopieren1

wenn so ist ? gehen wir wohin , zu kopieren1 , ergo wird nix weiter abgefragt

if not exist E:*Sicherung* goto Weiter

wenn nicht so ist ? gehen wir wohin , zu weiter , ergo wird die nächste bedingung nie erfolgen, da wir jetzt schon weiter springen :smile:

if exist Z:*Sicherung* goto Kopieren2
if not exist Z:*Sicherung* goto Weiter

diese bedingungen werden also niemals genutzt :smile: weil vorher schon jede mögliche bedingung erfüllt ist :smile:

Kopieren1

md E:%date%\
move E:*.tib E:%date%

Kopieren2

md Z:%date%
move Z:*.tib Z:%date%\

Weiter

net start SQL_SERVER

wie wäre es wenn du so ganz einfach erst das eine abfragst und dann nur das überspringst was im eigenen und anderen fall auch möglich wäre , danach dann das nächste ding prüfen.

also

if datei goto kopieren1
if not datei goto notkopieren1

kopieren1

notkopieren1

if datei goto kopieren2
if not datei goto notkopieren2

kopieren2

notkopieren2

echo „Leider ist das nur thoerie, batch selber brauch ich weniger :smile: Ausprobieren :smile:“;

Hallo nochmal und danke für die Antwort,

ich hab’s jetzt so gelöst.

net stop SQL_SERVER
set „date=%date:~-4%-%date:~-7,2%-%date:~-10,2%“

if exist E:*Sicherung* goto Kopieren1
if exist Z:\Sicherung*Sicherung* goto Kopieren2
if not exist E:*Sicherung* goto Kopieren2
if not exist Z:\Sicherung*Sicherung* goto ende

Kopieren1
md E:%date%\
move E:*.tib E:%date%
goto Kopieren2

Kopieren2

md Z:%date%
move Z:*.tib Z:%date%\

ende

In den ersten Test gings auch so.

Gruß