immofreund
Goto Top

Dateien kopieren in neuen Ordner

Hallo ich hoffe mir kann einer hier helfen, da ich mich nicht wirklich mit Batch auskenne.

Im Ordner "Quelle" entstehen jeden Tag einige Dateien.
Ich will alle Dateien von einem Ordner "Quelle" in den Ordner "Ziel" kopieren.
In der Quelle soll alles was älter ist als 10 Tage gelöscht werden.
Das funktioniert auch.

set SourceDir="E:\Quelle 1"  
set TargetDir="E:\Ziel"  

xcopy %SourceDir% %TargetDir% /s /d
forfiles /p %SourceDir% /s /m *.esws /d -10 /c "cmd /c del @file"  
pause

Jetzt habe ich aber auch manchmal (selten) Dateien mit gleichen Namen in der Quelle und schon im Ziel.

Kann man irgendwie das Ziel prüfen und wenn es die Datei schon gibt den aktuellen Zeitsempel anhängen?

Beispiel die Datei Maschine1error2843.txt ist schon im Ziel und wird nochmals kopiert, aber die neue Datei heißt dann Maschine1error2843_12.04.2024.txt

Es liegen dann 2 Dateien im Ziel
Datei Maschine1error2843.txt und Maschine1error2843_12.04.2024.txt


Ich danke schon Mal im voraus, muss mich da mal einarbeiten.
Leider ist programmieren nicht so meins.

Content-Key: 12156970466

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

Printed on: May 26, 2024 at 05:05 o'clock

Member: Pjordorf
Pjordorf Apr 12, 2024 updated at 11:20:14 (UTC)
Goto Top
Hallo,

Zitat von @Immofreund:
xcopy %SourceDir% %TargetDir% /s /d
Welches OS nutzt du welches den Parameter /s kennt? Mein Win11 kennt den /s nicht zum Copy Befehl.

Kann man irgendwie das Ziel prüfen
Ja, vor dem Copy prüfen.

und wenn es die Datei schon gibt den aktuellen Zeitsempel anhängen?
Ja, kann man

Beispiel die Datei Maschine1error2843.txt ist schon im Ziel und wird nochmals kopiert, aber die neue Datei heißt dann Maschine1error2843_12.04.2024.txt
Warum diesen quatsch. Wenn der Inhalt Bit bzw. Byte identisch ist, einfach kopieren. Das Dateiattribut Datum/Uhrzeit wird auch geändert. Es gab zu MS-DOS 2.1 Zeiten das Datum 1 mal bei Dateien. Erstellt. Mittlerweile gibt es Erstell, geändert, zuletzt gelesen /letzter zugriff) und dann noch diverse Eintragungenen in EXIF.
https://itv4.de/datum-einer-datei-unter-windows-manuell-aendern/
https://www.macuser.de/threads/erstell-aufnahme-aenderungsdatum-von-viel ...

Es liegen dann 2 Dateien im Ziel
Aber diese sind Byte bzw. Bit Identisch. Unfug

Ausserdem gibt es noch xcopy, Robocopy und viele andere. Ich würde Robocopy nehmen, ist auch im Windows OS enthalten. Parameter wie immer mit /? also Robocopy /? im sogenannten CMD Fenster (Kommandozeile)

Gruss,
Peter
Member: Immofreund
Immofreund Apr 12, 2024 at 12:08:14 (UTC)
Goto Top
Hallo Peter,

danke,

BS ist Server 2016
Ja ich brauche die Dateien, weil der Inhalt eben nicht identisch ist.
War gerade ein schlechtes Beispiel.
Die Maschine liefert auch Dateien mit Messwerten.
Manchmal muss ein Auftrag doppelt oder 3 Fach gefertigt werden, weil der erste später beim Einbau kaputt gegangen ist. Dann sind die entstehenden Dateinamen gleich, aber der Inhalt anders.

Gruss
Immo
Member: Pjordorf
Pjordorf Apr 12, 2024 at 12:43:40 (UTC)
Goto Top
Hallo,

Zitat von @Immofreund:
Ja ich brauche die Dateien, weil der Inhalt eben nicht identisch ist.
Dann stell deine Dateinamen komplett um z.b. Maschine1error2843_20240412_hhmmss.txt. Das machst du vorher und kannst dann stumpf kopieren. Meist ist es besser im Dateinamen mit JJJJMMTT amstelle von TT.MM.JJJJ zu arbeiten. Dann klappt es auch mit Sortieren. Und da diese Attribute zum Dateisystem gehören können mittels Batch schnell deine zig Millionen Dateien umbenannt werden.
Also in Zukunft den Dateinamen ändern, dann kopieren. Fertisch

Gruss,
Peter
Member: Immofreund
Immofreund Apr 19, 2024 at 04:51:42 (UTC)
Goto Top
Danke für Deine Hilfe