Ordner überwachen und Daten automatisch kopieren

Hallo,

Hat jemand eine Idee wie ich folgendes realisieren könnte: Ein Ordner soll überwacht werden (beispielsweise per einstellbarem Zeitintervall). Sobald sich Daten in dem Ordner befinden, sollen sie automatisch auf einen 2ten Rechner übers lokale Netzwerk überspielt werden (falls der angeschaltet ist) und die Daten sollen auf dem Quellrechner (eventuell mit Verify) gelöscht werden. Betriebssystem ist auf dem Quellrechner WinXP und auf dem Zielrechner Win98SE.

MfG Michael

Hallo Michael,

Am einfachsten geht das mit „for %%1 in (*.*) do move %%1 …“, allerdings ohne verify - dafür müsste man copy /v verwenden und das Ergebnis Errorlevel auswerten.

In der Schleife sollte man ausserdem einen sleep-Befehl einbauen, um den Rechner nicht dauernd zu beschäftigen. Sleep.exe ist frei zum Download und kommt aus dem NT Resource Kit (Achtung! keinesfalls ein DOS-Sleep verwenden!).

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

Am einfachsten geht das mit „for %%1 in (*.*) do move %%1
…“, allerdings ohne verify - dafür müsste man copy /v
verwenden und das Ergebnis Errorlevel auswerten.

In der Schleife sollte man ausserdem einen sleep-Befehl
einbauen, um den Rechner nicht dauernd zu beschäftigen.
Sleep.exe ist frei zum Download und kommt aus dem NT Resource
Kit (Achtung! keinesfalls ein DOS-Sleep verwenden!).

Gruss Reinhard

Hallo Reinhard,

wo soll ich das eintragen? Windows script? Und wie kann ich prüfen ob der Zielrechner eingeschaltet ist?

MfG Michael

Hallo Reinhard,

wo soll ich das eintragen? Windows script? Und wie kann ich
prüfen ob der Zielrechner eingeschaltet ist?

MfG Michael

Hallo,

als Textdatei schreiben und abspeichern als „automove.cmd“ im Windows-Verzeichnis:

@echo off
echo Automatischer Dateitransfer von D:\actest nach RT-Server
":Restart"
if exist \\RT-Server\rk-data\test\checkme.txt goto ServerOk
sleep 120
goto Restart
":ServerOk"
for %%f in (d:\actest\*.\*) do move %%f \\RT-Server\rk-data\test
sleep 20
goto Restart

Die Anführungszeichen bei :Restart und :ServerOk müssen weg, sie sind hier nur notwendig wegen der hochgradig seltsamen Formatierung der Forumsantworten.

„if exist“ testet, ob der Server verfügbar ist, checkme.txt ist irgendeine Datei, die auf dem Server vorhanden ist. Zum Start in der Eingabeaufforderung oder unter ausführen automove.cmd eingeben. Zum Beenden Crtl-C drücken.

Gruss Reinhard

Hallo,

ich hätte da noch eine alternative Idee: Einfach eine Batchdatei unter DOS (Eingabeaufforderung) ablegen, die die folgenden Punkte abarbeitet:

  1. Eine ggf. bestehende Laufwerksverbindung zum Verzeichnis auf dem anderen Rechner löschen.

  2. Eine Laufwerksverbindung zum Verzeichnis auf dem anderen Rechner herstellen. Errorlevel dieses Schritts auswerten. Hierdurch erhält man eine Aussage, ob aktuell ein Laufwerk gemappt werden konnte. Führte dies zu einem Fehler, macht alles weitere keinen Sinn und man bricht die Sache mit Fehlermeldung ab.

  3. Mit copy und del in der schon in der anderen Lösungsidee genannten Schleife die Dateien aus dem Quellverzeichnis kopieren und durch Auswertung des Errorlevels sicherstellen, dass nur nach erfolgreicher Kopieraktion eine Quelldatei gelöscht wird.

Diese Batch dann über den Scheduler mit dem gewünschten Zeitintervall eintragen.

Gruß vom Wiz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke euch beiden. Ich werde das in einer stillen Stunde mal ausprobieren. Hätte nicht gedacht, daß es sowas als Windowsprogramm nicht gibt (Upps.Doppelte Verneinung:smile:).

Sind die Sleepvorgaben in Sekunden oder Minuten?
Wofür soll der letzte Sleep sein? Der kann doch sofort zum Programmanfang springen.

MfG Michael

PS: „Einfachere“ weitere Vorschläge (beispielsweise als Gui mit Pfadeinstellungen) sind herzlichst willkomen.

Wofür soll der letzte Sleep sein? Der kann doch sofort zum
Programmanfang springen.

Upps. Einmal nachgedacht und selber draufgekommen. Ignoriert das.

MfG Michael