onediving
Goto Top

Xcopy..immer (nur)neueste Datei alle 2 min

Zuerst einmal möchte ich das Team von Administrator.de begrüßen!
Ich bin neu hier und ich hoffe ich mache nicht viele Fehler.
Nun zu meinem Problem:

Es geht um ein Firmen Netzwerk...genauer um eine Schnittstelle.
Alle User schreiben durch einen Befehl in Ihrer lokalen Software gegebenenfalls eine .txt Datei welche in den PC - A in den Ordner schnitt\in gesendet wird. Von diesem Verzeichniss \\A\schnitt\in werden ca. in der Stunde 20 .txt abgelegt. Nun sollen jedoch die Daten von \\A\schnitt\in in der Server B in das Verzeichniss Data\in kopiert werden. (Das ist ja noch kein Problem).
Es sollen die .txt Datein von \\A\schnitt\in alle 2 min in das Server verzeichniss kopiert werden, aber nur jene die NEU sind. Da es aber keine kontrolle auf Server B gibt ob die Datei schon gesendet wurde (dies ist deshalb da das Verzeichniss auf Server B automatisch alle 15 min gelehrt wird = nämlich eine weitere Schnittstelle).
Beispiel: PC A ligt 1.txt,2.txt,3.txt diese werden um 20:00 zu Server B kopiert -
Danach kommen in PC A 4.txt und 5.txt hinzu - gleichzeitig wurden in Server B die Daten schon abgehohlt (heißt Ziel Ordner ist leer) - nach 2 min sollten jetzt aber die NEUEN Datein (4.txt und 5.txt) in Server B kopiert werden.

Wie wäre hier eine Umsetzung möglich?
gibt es einen xCopy Befehl in dem man eine Datei an Ihrem erstellungs Datum(Zeit) erkennt und nur die neue zum Kopieren nimmt?


Ich weis dies ist möglicherweise schlecht formuliert, sollte den so sein hinterfragt es einfach dann kann ich villeicht mein problem besser erörtern.

Ich Danke Euch trotz allem im Voraus
Euer onediving

Content-ID: 69309

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

TuXHunt3R
TuXHunt3R 23.09.2007 um 20:40:56 Uhr
Goto Top
Hallo onediving und willkommen im Forum


Schau dir dazu mal den Parameter /m von xcopy an. Er kopiert alle Dateien mit gesetztem Archivbit, d.h. alle neuen Dateien, und löscht das Archivbit bei der Originaldatei. D.h. es werden nur die neuen Dateien kopiert.
miniversum
miniversum 23.09.2007 um 21:02:04 Uhr
Goto Top
Alternativ, aber ungetestet würd ichs so machen:
@echo off
set "quelle=C:\quelle"  
set "ziel=C:\ziel"  
set wartemin=2

FOR /F "tokens=1-5 delims=.: " %%a in ('echo %Date% %time%') do set now=%%a%%d%%e  
set /a last=%now%-%wartemin%

FOR /F "delims=" %%f in ('dir /B /A-D') do FOR /F "tokens=1-5 delims=.: " %%a in ('echo %%~tf') do (  
if %%a%%d%%e gtr last (
copy "%%f"  
)

)
pause

miniversum
onediving
onediving 24.09.2007 um 08:21:05 Uhr
Goto Top
Danke für die rasche Antwort!!!

Ja es Klappt so wie ich es brauche...Habe es nun als geplanten Task laufen....DANKE

Noch eine kleine Frage: Wie schaffe ich es dass nun die schon kopierten Datein - Zeitverzögert von der Quell Datei automatisch gelöscht werden? Zum Beispiel immer die Datein welche 3 min Alt sind löschen!(da ja alle 2 min die Daten kopiert werden)?

Danke
onediving
onediving 24.09.2007 um 08:37:20 Uhr
Goto Top
Guten Morgen.
Danke zuerst für Dein Beispiel. Doch leider hat dies bei mir keine reaktion gezeigt.
Aber die Obere Funktion ist ausreichend!

Herzlichen Dank für die Mühe
onediving