Software allgemein Sicherung mit Batch und Windows-Task

Stups

Mitglied
Registriert
08.12.06
Beiträge
2.075
Ort
Moers
Trophäen
!!!!!!**** ...?
Hallo,
ich habe bisher noch nie selbst einen geplanten Task unter Windows angelegt. Mein jetziger erster selbst geplanter Task wird nicht ausgeführt. Ich habe zum Sichern von Ordnern auf einem externen USB-Laufwerk nach einem Vorschlag in der neuen PC-Praxis eine Batchdatei geschrieben:
copy "D:\Eigene Dateien\*.*" J:\1_HeimPC\*.* /e/c/Y/d.
Diese auf dem USB-Laufwerk als 1_HeimPC.bat gespeichert und unter Windows den Task angelegt:

task_sicherung1_heimpc.jpg


J:\ ist die USB-Festplatte, 1_HeimPC ist der Zielordner.
Die Batchdatei funktioniert wie gewünscht, wenn ich sie per Doppelklick aufrufe. Nur der automatische Task läuft nicht, egal welchen Zeitplan ich einstelle, in den sonstigen Einstellungen (rechter Reiter) habe ich alle Haken raus genommen. Vorzugsweise wollte ich im Zeitplan entweder "Im Leerlauf" oder "Beim Systemstart" wählen. Aber wie gesagt, es geht nicht.
An der Batchdatei kann es nicht liegen, an der Zuordnung Quell_ und Zielordner auch nicht, denn händisch läuft es ja.
Weiß jemand was ich falsch mache?

Gruss
Manfred
 
AW: Sicherung mit Batch und Windows-Task

Hallo Stups,

ich mach das schon seit geraumer Zeit mittels DOS-Batch und dem kleinen Progrämmchen "poweroff.exe"

Ich hab mir eine Batch geschrieben, in die bis zu 30 verschiedene Ursprünge und Ziele eingetragen werden können. Die eingetragenen Laufwerke, Pfade, Dateien werden dann sequentiell gesichert.

In der Batch trage ich das Laufwerk ein, auf dem die Sicherungs-BAT liegt und auf dem die Logdatei abgelegt werden soll. Außerdem kann noch eine Dummydatei eingetragen werden, die beim Start der Sicherung auf dem Ziellaufwerk abgefragt wird, damit sichergestellt ist, daß das externe Sicherungslaufwerk auch dranhängt.

Außerdem hab ich noch eine "nocopy.asc" eingebunden, deren Inhalt nicht mit kopiert werden soll.
Am Ende des Sicherungsdurchlaufs wird der Rechner dann automatisch runtergefahren.

Die Batch habe ich mit einem Link auf dem Desktop versehen, den ich abends anklicke, wenn ich in die Heia gehe. Da braucht's dann keine extra Zeitmanagement-Einstellungen unter Windows.

Ich hab Dir die nötigen Dateien in eine Setup.exe gepackt, die auch eine Hilfe enthält. Wenn Du willst, kannst Du schauen und sie Dir so umbauen, wie Du's brauchst. Bei Fragen einfach melden.
 
Zuletzt bearbeitet:
AW: Sicherung mit Batch und Windows-Task

Hallo Kuni,

erstmal Danke für Deine umfangreiche Batchdatei, die ja viel mehr auf einmal erledigen kann.
Ich habe versucht sie anzupassen, versuchsweise für 2 Ordner. In diesem Teil sind meine Änderungen. Den übrigen langen Rest habe ich nicht verändert:
Code:
CLS
REM jetzt die Angaben, die zur Überprüfung des Vorhandensein des Laufwerks nötig sind:
REM loglaufwerk ist das Laufwerk auf dem das Logfile geschrieben werden soll (Üblicherweise das, auf dem diese Batchdatei liegt)
set loglaufwerk=J:
REM dummydatei muß auf dem Ziellaufwerk angelegt werden. (einfach eine leere Textdatei erstellen)
set dummydatei=J:\zwischensichern.dmy
REM jetzt noch der Name des Logfiles
set logname=log.txt
REM hier werden die Ursprungs- und Zielpfade gesetzt. 
REM beim Ursprungspfad immer die Dateien/Extensions mit angeben (*.* für alle Dateien im Pfad)
REM Pfade mit Leerzeichen müssen in Gänsefüßchen gesetzt werden!

set von00=D:\"Eigene Dateien"\*.*
set nach00=J:\1-HeimPC\

set von01=D:\Programme\FixFoto\Params\*.*
set nach01=J:\1-HeimPC\FixFoto\Params


REM für zusätzliche Ursprungs- und Zielpfade jenseits der 30 einfach die beiden Zeilen kopieren und die Zahlen hochzählen
REM nicht vergessen, unten beim eigentlichen Kopiervorgang die beiden Zeilen ebenfalls zu kopieren

J:start
REM hier den Laufwerksbuchstaben des Laufwerks für das Logfile eintragen
REM am besten verwenden Sie das Laufwerk mit der Sicherungs-Batchdatei
%loglaufwerk%
REM nachfolgende Zeile sorgt für den Pointer im Root-Verzeichnis
cd J:\zwischensichern.dmy
REM hier den Pfad zur Dummy-Datei des Laufwerks einsetzen, auf das gesichert werden soll
if exist %dummydatei% goto kopieren.......

Im Logfile steht nach dem Starten:
=================== Datensicherung vom 10.01.2008 ===================
Um 16:21:16,93 Uhr wurden aus D:\"Eigene Dateien"\*.*
0 Datei(en) kopiert
Um 16:21:17,28 Uhr wurden aus D:\Programme\FixFoto\Params\*.*
0 Datei(en) kopiert

Irgendwas ist also noch falsch. "In Eigene Dateien" ist eine geänderte Datei, Params hatte ich noch gar nicht gesichert.

Gruss
Manfred
 
AW: Sicherung mit Batch und Windows-Task

...
set von00=D:\"Eigene Dateien"\*.*
set nach00=J:\1-HeimPC\

set von01=D:\Programme\FixFoto\Params\*.*
set nach01=J:\1-HeimPC\FixFoto\Params
...
Hallo Manfred,

Du warst vielleicht ein bischen zu schnell,
in "set von00" steht die zwei " am falscher Stelle, in set "set nach01" fehlt ein "\" am Ende.

Grüsse,
 
AW: Sicherung mit Batch und Windows-Task

..Du warst vielleicht ein bischen zu schnell,
in "set von00" steht die zwei " am falscher Stelle, in set "set nach01" fehlt ein "\" am Ende.
Grüsse,

Hallo Niels,
wo müssen die zwei " denn hin? Ich habe sie wegen des Leerzeichens gesetzt. Wenn ich den gesamten Pfad einschließe, geht es auch nicht. Das \ am Ende von habe ich jetzt gesetzt, nützt aber auch nichts. Der Wurm ist noch drin.

Auch wenn ich das hiermit noch packe, ich würde doch auch gerne wissen, wie es mit dem Windows Taskplaner geht.

Gruss
Manfred
 
AW: Sicherung mit Batch und Windows-Task

... wo müssen die zwei " denn hin? ...
set von00="D:\"Eigene Dateien\*.*"
und folgende soll auch da sein

set von02=""
set nach02=""
(und die früheres Zeilen von Kuni mit set von02 und set nach02 muss weg)

... ich würde doch auch gerne wissen, wie es mit dem Windows Taskplaner geht ...
ich kenne Windows Taskplaner nicht.

Ich habe noch ein paar Fehler in dein Skript gesehen :

J:start , hier ist ein J zu viel
cd J:\zwischensichern.dmy , ich vermute diese Zeile muss ganz erlöscht werden.

Grüsse,
 
AW: Sicherung mit Batch und Windows-Task

Niels, ich habe soweit ich Dich verstanden habe, Deine Vorschläge mit mehreren Varianten probiert. Nichts funktioniert. Wenn man die Zeile löscht, die Du vorgeschlagen hast, läuft die Batch nicht richtig an. Die sonstigen Varianten ergeben in der Logdatei immer "....0 Dateien kopiert".
Ich verstehe leider nichts von diesen Dingen. Meine DOS Kenntnisse waren nie besonders, und es ist lange her. Ich erinnere gerade noch was rem bedeutet.

Aber die halbe Zeile,
xcopy "D:\Eigene Dateien\*.*" J:\1_HeimPC\*.* /e/c/Y/d
die ich in #1 genannt habe, die funktioniert. Ich kann davon mehrere untereinander schreiben, dann werden auch mehrere Ordner in einem Rutsch kopiert. Das habe ich gerade eben erfolgreich probiert.
Kunis Lösung ist natürlich professionell, mit Abfragen und Logdatei. Den schönen Abschaltknopf werde ich sowieso übernehmen.

Gruss
Manfred
 
AW: Sicherung mit Batch und Windows-Task

Erst mal:

So muß ein Zeilenpaar aussehen, wenn der Pfadnamen Leerzeichen enthält:

Code:
set von00="g:\original-kameradaten\_canon digital ixus 850 is\originale\*.*"
set nach00="f:\canon digital ixus 850 is\"

...und ab hier und darunter mußt Du nix mehr verändern:

Code:
REM für zusätzliche Ursprungs- und Zielpfade jenseits der 30 einfach die beiden Zeilen kopieren und die Zahlen hochzählen
REM nicht vergessen, unten beim eigentlichen Kopiervorgang die beiden Zeilen ebenfalls zu kopieren

:start

Setze bitte alle Werte wieder zurück, wie in meiner Ursprungs-Batch.

Code:
:start
REM hier den Laufwerksbuchstaben des Laufwerks für das Logfile eintragen
REM am besten verwenden Sie das Laufwerk mit der Sicherungs-Batchdatei
%loglaufwerk%
REM nachfolgende Zeile sorgt für den Pointer im Root-Verzeichnis
cd\
REM hier den Pfad zur Dummy-Datei des Laufwerks einsetzen, auf das gesichert werden soll
if exist %dummydatei% goto kopieren
REM das Datum wird ins Logfile geschrieben

Das Zeilenpaar, das auf die mit Werten gefüllten Zeilenpaare folgt, muß so aussehen:

Code:
set von26=""
set nach26=""

Alle unbenutzten Zeilenpaare darunter enden ebenfalls mit =""

Das Skript kopiert nur nicht vorhandene oder vor dem letzten Kopiergang geänderte Dateien. Wenn Du also probieren möchtest, mußt Du vor dem neuen Testlauf die vorher angelegten Zielordner samt Inhalt löschen.

Außerdem werden alle Dateien/Extensions ausgespart, die in der "nocopy.asc" aufgeführt sind.

Der Leerstring wird abgefragt.
 
AW: Sicherung mit Batch und Windows-Task

Code:
CLS
REM jetzt die Angaben, die zur Überprüfung des Vorhandensein des Laufwerks nötig sind:
REM loglaufwerk ist das Laufwerk auf dem das Logfile geschrieben werden soll (Üblicherweise das, auf dem diese Batchdatei liegt)
set loglaufwerk=J:
REM dummydatei muß auf dem Ziellaufwerk angelegt werden. (einfach eine leere Textdatei erstellen)
set dummydatei=J:\zwischensichern.dmy
REM jetzt noch der Name des Logfiles
set logname=log.txt
REM hier werden die Ursprungs- und Zielpfade gesetzt. 
REM beim Ursprungspfad immer die Dateien/Extensions mit angeben (*.* für alle Dateien im Pfad)
REM Pfade mit Leerzeichen müssen in Gänsefüßchen gesetzt werden!

set von00=D:\"Eigene Dateien"\*.*
set nach00=J:\1-HeimPC\

[COLOR="Red"]Richtig:
set von00="D:\Eigene Dateien\*.*"
set nach00=j:\1-HeimPC\
[/COLOR]

set von01=D:\Programme\FixFoto\Params\*.*
set nach01=J:\1-HeimPC\FixFoto\Params[COLOR="Red"]\[/COLOR]

[COLOR="Red"]Wenn Du die weiteren Zeilen nicht brauchst, ab da alle Zeilenpaare so:

set von02=""
set nach02=""[/COLOR]

J:start
[COLOR="Red"]das "J" hat da nix zu suchen. Es handelt sich um die Sprungmarke:
:start[/COLOR]

REM hier den Laufwerksbuchstaben des Laufwerks für das Logfile eintragen
[COLOR="Red"]
Das Laufwerk mit der Sicherungs-Batchdatei versteckt sich hinter dieser Variable:
%loglaufwerk%

Hier brauchst Du nix mehr ändern.[/COLOR]
[/QUOTE]

Also nicht zu viel umbauen, es ist einfacher, als es vielleicht aussieht. Du kannst mich gerne auch anmailen.
 
AW: Sicherung mit Batch und Windows-Task

Hallo Niels,
cd J:\zwischensichern.dmy , ich vermute diese Zeile muss ganz erlöscht werden.
Da gehört nur hin:

cd\

Ich glaube, mich zu erinnern, daß ich das nur mal zur Sicherheit eingebaut habe, damit man sich für die weiteren Abfragen sicher im Root-Verzeichnis des Laufwerks befindet.
 
Zurück
Oben