michael1309
Goto Top

Automatisches kopieren von Dateien aus verschiedenden Unterordnern.

Hallo zusammen,
vllt hat jemand von Euch eine Idee:
Zum Problem, täglich werden auf einen FTP Server, Daten in Unterordnern abgelegt, die dann auf einen anderen Server für den Import kopiert werden müssen.
Nun kann es passieren, dass ein neuer Ordner angelegt wird, ohne das es einem mitgeteilt wird.
Wenn ich eine Batch schreibe, werden nur die Dateien aus den bekannten Ordnern kopiert und ich habe noch keine Möglichkeit gefunden, wie ich auf einen neue Ordner prüfen kann und das dann aus diesen, die Daten automatisch kopiert werden.
Ich bin für Ideen jeglicher Art dankbar.

Gruß
Michael

Content-Key: 342935

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

Printed on: April 20, 2024 at 04:04 o'clock

Mitglied: 133417
133417 Jul 10, 2017 updated at 10:55:40 (UTC)
Goto Top
winscp kann das von Haus aus mit der synchronize Option.
http://winscp.net/eng/docs/scriptcommand_synchronize

Gruß
Member: beidermachtvongreyscull
beidermachtvongreyscull Jul 10, 2017 updated at 12:15:13 (UTC)
Goto Top
Wenn Du es mit Batch machen möchtest, hier ein Einsatz:

@ECHO OFF
cd \Ordner\Ordner
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" \\Server\Eingang\  

Dieser Code verschiebt aus der Unterordnerstruktur \Ordner\Ordner alle auffindbaren Dateien, egal in welchen (neuen) Unterverzeichnissen diese angelegt werden zum Ziel \\Server\Eingang.

Wenn ich das richtig sehe, willst Du die Dateien in der Ordnerstruktur gleichhalten. Du kannst mit xcopy auch mal Dein Glück versuchen.
Damit müssten sich Synchronsierungen ebenfalls bewerkstelligen lassen.

Noch eine Alternative:
Robocopy für den Kenner. Ein heißes Teil, musst aber probieren, bis es sitzt. Die Optionenanzahl ist riesig.
Member: michael1309
michael1309 Jul 10, 2017 updated at 12:37:38 (UTC)
Goto Top
Danke für deine Antwort, Robocopy teste ist gleich noch.
Winscp kommt leider nicht mit UNC Pfaden klar .Für den Import, müssen die Dateien aus den Unterordnern raus kopiert werden.
Mitglied: 133417
133417 Jul 10, 2017 updated at 13:43:04 (UTC)
Goto Top
Mappst du einfach kurzerhand in deinem Skript den UNC-Pfad mit net use, simple and works.
Member: michael1309
michael1309 Jul 11, 2017 updated at 12:28:48 (UTC)
Goto Top
Habe den Code mal zum testen angepasst.
Ich bekomme aber die Fehlermeldung:
"Der Befehl "C:\Test" ist entweder falsch geschrieben oder
konnte nicht gefunden werden."

jemand eine Idee warum?


@ECHO OFF 
C:\Test
for /f "tokens=*" %%f in ('dir *.txt /a:-D /s /b') do move "%%f" C:\Backup  
Mitglied: 133417
133417 Jul 11, 2017 updated at 12:37:41 (UTC)
Goto Top
Logisch, sollte ja auch cd c:\Test heißen.
Viel Spaß bei Dateien mit selben Namen, die werden dann überschrieben :-P
Member: beidermachtvongreyscull
beidermachtvongreyscull Jul 11, 2017 updated at 12:43:17 (UTC)
Goto Top
Zitat von @133417:

Logisch, sollte ja auch cd c:\Test heißen.
Viel Spaß bei Dateien mit selben Namen, die werden dann überschrieben :-P


Move /y würde ohne Rückfrage überschreiben. Das ist richtig.
In Zeile 3 setze noch einen \ hinter C:\Backup
Dieser kleine Scriptteufel hier geht bei mir, weil jede Datei einen eindeutigen Namen hat.
Member: michael1309
michael1309 Jul 11, 2017 at 12:42:17 (UTC)
Goto Top
Vielen Dank, selben Namen gibt es nicht, werden immer mit Datum und Uhrzeit (hh:mm:ss) versehen im Dateinamen.
Member: beidermachtvongreyscull
beidermachtvongreyscull Jul 11, 2017 at 12:44:01 (UTC)
Goto Top
Sehr schön. face-big-smile
Mitglied: 133417
133417 Jul 11, 2017 updated at 12:54:43 (UTC)
Goto Top
Zitat von @beidermachtvongreyscull:

Move /y würde ohne Rückfrage überschreiben. Das ist richtig.
Nö, in einem Batch File abgelegt wird auch ohne die Option /y überschrieben, genau so wie beim Copy Befehl der das auch tut.
Probier's mal selbst.
Steht aber auch hier
https://ss64.com/nt/move.html
Member: beidermachtvongreyscull
beidermachtvongreyscull Jul 11, 2017 at 12:53:58 (UTC)
Goto Top
Danke für die Info.
Mitglied: 133417
133417 Jul 11, 2017 at 12:55:14 (UTC)
Goto Top
Zitat von @michael1309:

Vielen Dank, selben Namen gibt es nicht, werden immer mit Datum und Uhrzeit (hh:mm:ss) versehen im Dateinamen.
Aber bestimmt ohne die Doppelpunkte face-wink
Member: michael1309
michael1309 Jul 18, 2017 at 10:05:41 (UTC)
Goto Top
Ne mit Unterstrich, aber vielen Dank für die Tipps