Von A nach B kopieren und nach B nur neue Dateien von A kopieren?
Hallo,
kann man ein Skript machen, welches von A nach B kopiert und dann wenn das Skript nochmal ausgeführt wird, nur alle neuen Datein rüberkopiert werden. Gibt es da eine Möglichkeit?
6 Antworten
Ich mach das immer z.B. wie folgt.
xcopy A:\*.* B:\*.* /d /s
Evtl. gibts noch ein kleines Problem. Wenn gleiche Dateien überschrieben werden. Dann wird das noch abgefragt. Wenn nicht dann empfiehlt sich noch der Parameter /Y
xcopy A:\*.* B:\*.* /d /s /y
... kopiert keine Ordner oder? ...
Doch. Parameter /S kopiert alle Ordner und Unterordner, die nicht leer sind.
Kommt es dir aber drauf an, das auch Ordner kopiert werden, die leer sind. Also ohne Dateien. Dann empfiehlt sich noch der Parameter /E
robocopy C:\Quellpfad\ C:\Zielpfad\ /MIR
Ist dann eine sog. inkrementelle Sicherung und kopiert ganze Ordnerstrukturen und nur was neu dazukommt :)
Achtung: Wenn B andere Dateien enthält als A, werden diese überschrieben
Danke.. funktioniert bis jetzt gut.. nur kennst du dich mit Variabeln auch aus? Teil meines Quellpfades ist \[Verion]\ und das funktioniert nicht mit dem Skript.. einen Tipp?
zB C:\Programme\Dyn\[Version]\Packages
SET version=1.2.0.1
robocopy C:\Programme\Dyn\%version%\Packages\ sowas?
oder woher kommt die version?
da gehts drum.. jenach Programm Version die man installiert hat, sollte der richtige Version ordner gewählt werden
Wie sieht denn beispielhaft die Struktur im Dyn Ordner aus? also wieviele ordner mit welchen Namen sind da drinnen?
Ja eben C:\Programme\Dyn\1.2\packages\
oder C:\Programme\Dyn\2.2\packages\
oder C:\Programme\Dyn\3.2\packages
Und wenn er alle 3 kopieren würde, wäre das ein Problem? :-P
Gibt doch eh nur den Ordner der Version die installiert ist oder?
Vorschlag von einem Mitarbeiter war, mittels einer Schleife im vorhinein die Version des Programs abufragen und dann den Pfad mit der Version anpassen alles in einem Skript
Klar, kannst auch mit einer schleife durchgehen und abfragen:
cd C:\Programme\Dyn\
IF EXIST folderV1 (
SET version=1.0.0
)
IF EXIST folderV2 (
SET version=2.0.0
)
und dann eben das robocopy mit der %version% variable laufen lassen.
Wollte den Vorschlag auch schon machen, dachte mir aber ich lass es, weil der Weg nur bei "kleineren" Softwares funkt, wo es 3-10 Versionen gibt. Bei Softwares die mit *.*.*.* Versionen unterwegs sind, würdest du da wohl alt werden :D
geb einfach mal xcopy /? in der cmd ein. Da solltest du eigentlich finden was du suchst.
Du kannst zum Beispiel Dateien kopieren, die nach einem bestimmten Datum gespeichert wurden oder auch einfach alles kopieren was nicht im Ziel vorhanden ist oder du nutzt exclude oder oder oder
Kannnst du mir einen Beispiel Befehl machen? Von A nach B kopieren und das Skript soll zuerst nachschauen ob die Ordner auf gleichen Stand sind und wenn nicht die fehlenden oder aktualisierten Dateien zu Ordner B kopieren
Hat merkurus im Prinzip schon gemacht Oder wolltest du noch etwas zusätzliches?
https://www.gutefrage.net/frage/von-a-nach-b-kopieren-und-nach-b-nur-neue-dateien-von-a-kopieren#answer-352991449
Hey,
das funktioniert sehr gut mit dem Programm "FreeFileSync" damit kann man sogar Skripte erstellen und exportieren.
Und wenn er alle 3 kopieren würde, wäre das ein Problem? :-P
Gibt doch eh nur den Ordner der Version die installiert ist oder?
Naja das Problem ist die Dateien sind nicht unbedingt klein und sie liegen nicht auf C sondern auf dem Firmen Filesystem.. heißt verursacht natürlich auch traffic usw. es wäre eben so optimaler
Ist die Version die existiert irgendwo hinterlegt? irgendwo woher sich das Batch die Version holen könnte.
k danke, das zweite Skript ist gut.. aber das Ding kopiert keine Ordner oder? Ich muss nämlich ordner kopieren