marcys
Goto Top

Batch mit Robocopy ausführen und danach Pc runter fahren

Hallo,

ich möchte mir eine automatische Datensicherung einrichten. D. h. mein PC wird ein Mal im Monat in der Nacht hochgefahren, über den Aufgabenplaner soll dann folgende Batch ausgefürht werden:

robocopy.exe "d:\daten\test" "f:\daten\test" /s /v /eta /XD *VMW* /r:2 /TEE /log:c:\bat\backup_test.log

wenn der Kopiervorgang fertig ist, soll der Pc dann herunter gefahren werden. Reicht das aus, wenn ich unter den Befehl ein:

shutdown /s

drunter setze?

Gruß
Martin

Content-Key: 136805

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

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: maretz
maretz 24.02.2010 um 23:03:55 Uhr
Goto Top
hmm - einfache art das rauszufinden: Eintragen und ausprobieren... Es wird nichts kaputt gehen!
Mitglied: KowaKowalski
KowaKowalski 25.02.2010 um 00:36:48 Uhr
Goto Top
Hi martin,

nimm doch den Gui.
Der sollte Dir alle optionen erzeugen oder zumindest beispielhaft anzeigen.


mfg
kowa
Mitglied: Snowman25
Snowman25 25.02.2010 um 01:12:22 Uhr
Goto Top
Hallo @Marcys,

du solltest dem shutdown-Befehl noch eine Zeit mitgeben.
Wenn du ein Server-Betriebssystem verwendest, dann würde ich vorsichtshalber auch noch einen Grund angeben.
Ich würde das ganze wohl in etwa so lösen:

controller.bat
start "ROBOCOPY-BACKUP" /HIGH /WAIT backup.bat  
shutdown -s -t 30 -c "backup abgeschlossen" -f -d P:0:0  
backup.bat
robocopy.exe "d:\daten\test" "f:\daten\test" /s /v /eta /XD *VMW* /r:2 /TEE /log:c:\bat\backup_test.log  
if %ERRORLEVEL%==1 pause
exit

Gruß
Snow
Mitglied: Marcys
Marcys 25.02.2010 um 16:32:43 Uhr
Goto Top
Hi,

@ snow.

Also das was du gepostet hast sieht sehr gut aus. Ich betreibe aber keinen Server. Es ist Win 7 Pro. Ich möchte 1 Mal im Monat den Rechner in der Nacht hoch fahren und eine Datensicherung durchführen. Danach soll er dann herunter gefahren werden. Hätte aber noch eine Frage hier zu:

if %ERRORLEVEL%==1 pause

was ist damit gemeint?

Ich habe mal aus der Controller.bat den Eintrag:

-c "backup abgeschlossen"

gelöscht. Wenn ich nun die Backup.bat ausführe bleibt das cmd fenster offen und dort steht:

d:\daten\batch>if 1 == 1 pause
drücken Sie eine beliebige Taste.

Gruß
Martin
Mitglied: Snowman25
Snowman25 25.02.2010 um 17:02:40 Uhr
Goto Top
 if %ERRORLEVEL%==1 pause 
bedeutet, dass die batch anhält, wenn ein Fehler aufgetreten ist und deswegen der Shutdown-Befehl der Controller.bat nicht durchgeführt wird. %ERRORLEVEL% ist ein Wert, der je nach ausgang des letzten Befehls einen bestimmten Wert aufweist (0 für erfolgreich).
Das -c "Backup abgeschlossen" im shutdown-Befehl gibt bloß an. was in dem "System wird heruntergefahren"-Fenster als Begründung steht. Das, was du eigentlich entfernen wolltest ist
-d P:0:0

Ausserdem seh ich gerade, dass du aus if %ERRORLEVEL%==1 pause eher das hier machen soltlest:
if %ERRORLEVEL% GTR 0 pause

Gruß
Snow
Mitglied: Marcys
Marcys 25.02.2010 um 17:07:46 Uhr
Goto Top
Hi,

ich hatte gerade einen Denkfehler. Ich muss ja die controll.bat ausführen und nicht die backup.bat.

Insofern ist alles ok.
Mitglied: Marcys
Marcys 25.02.2010 um 18:22:26 Uhr
Goto Top
Hallo,

ich habe nun alles so eingestellt wie ich es mir vorstelle.

Vielen Dank für die Tipps

Gruß
Martin