regedit19
Goto Top

Xcopy x.jpg- Datei kopieren

Hallo!
Habe folgendes Problem, und zwar:

Ich habe mir einen FTP-Server (Filezilla) eingereichtet, welcher *.jpg - Photos von einer Wireless Überwachungskamera entgegennimmt.

Im Hintergrund habe ich eine Batch-Schleife laufen, die dem Bild das Datum und die aktuelle Uhrzeit zuweist. Die Überwachungskamera sendet die Bilder zu unterschiedlichen Zeiten das heißt, dass jederzeit ei Bild aufgenommen werden kann und dieses an den FTP-Server gesendet wird.

Die Batch auf diesem, PC welches dann die Bilder auf Datum und Uhrzeit umbenennt weiß also nicht wann ein neues Photo gemacht wird und hochgeladen wird.

Mein Problem ist jetzt, dass die Batch erkennt mit:
if exist
ob etwas neues in den Ordner hinzugefügt wird wurde. Wenn ja beginnt diese sofort mit dem umbenennen des Bildes und kopiert dieses Bild dann in einen "Fertige-Bilder-Ordner". Wenn aber jetzt das hochladen auf den FTP-Server begonnen hat, und die Batch dann gleich Umbenennt und in den fertigen Ordner kopiert, passiert es manchmal, dass das Bild nicht komplett ist, bzw.: das Bild nur "zur Hälfte" angezeigt wird.

Wie kann ich also der Batch sagen, dass diese solage warten soll, bis das Bild fertig hochgeladen wurde und dann erst der Umbenennungsvorgang anfängt?

Danke im Voraus

mfg
regedit19

Content-ID: 177544

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

Friemler
Friemler 11.12.2011 um 14:58:21 Uhr
Goto Top
Hallo regedit19,

eine vernünftige Cam bietet i.a. Möglichkeiten

  1. einen Timeserver zu kontaktieren und ihre interne Uhr zu synchronisieren und
  2. per FTP verschickte Bilder mit einem Namen zu versehen, der einen Zeitstempel enthält. Dazu werden von der Cam Variablen für Datum und Uhrzeit bereitgestellt, die man in den Namen, unter dem die Bilder abgelegt werden sollen, einbauen muss.

Es wäre sinnvoller, in diese Richtung zu forschen. Per Batch festzustellen, ob eine Datei schon komplett geschrieben/nach einem Schreibzugriff wieder geschlossen wurde, ist Murks.

Dann kannst Du Dir auch die gesamte Hintergrund-Batch sparen, das frisst sowieso ziemlich viel Prozessorleistung.

Gruß
Friemler
regedit19
regedit19 11.12.2011 um 15:21:36 Uhr
Goto Top
Hallo Friemler, und danke für die schnelle Antwort!

Man kann auf der Weboberfläche der Kamera zwar einstellen, ob er mit einem Timeserver synchronisieren soll, oder ob er die Computeruhrzeit als Uhrzeit nehmen soll. Was aber leider nicht funktioniert, ist dass das Datum und die Uhrzeit sowie das wievielte Bild in einem Format zwar mitgeschickt wird, aber wenn man das Format auf die Schnelle auslesen will, und nachsehen möchte wann das Bild geschossen wurde hat man keine Chance, weil alles in einer Wurst steht.

Es ist keine High-Tech Kamera, welche weiß ich wie viel kostet, aber schade dass sie das nicht kann.

Könntest du mir vielleicht deinen Punkt 2. Nochmals genauer erklären, da ich mir das mit dem Zeitstempel nicht ganz vorstellen kann bzw.: ich nicht weiß wie das funktioniert. Oder meist du saß der FZ-Server bereits das Datum und Uhrzeit dazuschreiben könnte, wenn das Bild beim Server ankommt?

Ps: Vielleicht hilft es: Ich habe diese Kamera: http://www.hama.de/00053111/hama-wireless-lan-ip-kamera-outdoor-54-mbps

MfG
regedit19
Friemler
Friemler 11.12.2011 um 16:07:48 Uhr
Goto Top
Hallo regedit19,

tja, da hast Du Dir eine Billig-Cam gekauft, die (laut Handbuch) anscheinend keine Möglichkeit bietet, einen Zeitstempel in den Namen zu integrieren, unter dem ein Bild auf dem FTP-Server abgelegt wird. Falls ich nichts übersehen habe, kann ja noch nicht mal der Name an sich eingestellt werden face-sad .

Anyway, der folgende Batch-Schnipsel sollte Dir eine Anregung liefern, Dein Problem zu lösen:
@echo off & setlocal

set "SrcFile=E:\Bilder\Test.jpg"  
set "Dest=E:\Bilder fertig"  

:Loop
move "%SrcFile%" "%Dest%\" 1>NUL 2>NUL || goto :Loop  

Die zwei aufeinanderfolgenden Pipe-Zeichen am Ende von Zeile 7 bewirken, dass nur dann zum Label LOOP gesprungen wird, wenn der vorhergehende MOVE-Befehl fehlgeschlagen ist, weil die Datei noch nicht komplett geschrieben wurde oder garnicht existiert.

Gruß
Friemler
regedit19
regedit19 11.12.2011 um 19:56:18 Uhr
Goto Top
Hallo Friemler!

Genau das, was ich gesucht habe!
Danke für den Denkanstoß zum <tt>MOVE</tt>-Befehl!
Funktioniert so wie gewünscht.

Hab heute schon den ganzen Tag herum studiert, wie ich das anstellen könnte, damit es hinhaut, und jetzt funktioniert es! Juhu! face-big-smile

Das Script führt jetzt solange einen Loop aus, bis das Bild komplett auf dem FPT- Ordner gelandet ist und startet dann denn weiteren umbenennungs-Vorgang.

Vielen Dank nochmal!
Und schönen 3. Advent-Abend!


MfG
regedit19