wer kann bei Batchabläufen helfen?
#1
geschrieben 24. Juli 2014 - 10:36
Das geschieht per "xcopy ...."
Im Grunde genommen habe ich dreimal die gleichen xcopy-Befehle gegeben, lediglich die Ziele varieren.
Jedenfalls dachte ich, dass das so geht, aber nun habe ich festgestellt, dass lediglich der erste „Block“ von Dateien auf Medium 1 kopiert wird.
Der gleiche Block, den auf Medium 2 und 3 gehen sollte, ist dort aber nicht zu finden.
Ich nehme an, dass das Archivbit beim ersten Kopieren zurückgesetzt wird und daher die Aktion 2 und 3 nicht klappt (klappen kann).
Gibt es einen anderen Batchbefehl zum Kopieren, der mir das Archivbit nicht zurücksetzt, bzw. gibt es einen versteckten Trick bei XCOPY dafür? In der Hilfe habe ich nicht dazu gefunden.
Axel
Anzeige
#2
geschrieben 24. Juli 2014 - 11:28
#3
geschrieben 24. Juli 2014 - 11:46
#4
geschrieben 24. Juli 2014 - 11:46
xcopy X:\QUELLPFAD\*.* Y:\ZIELPFAD /D
kopiert bspw. nur Dateien die im Zielpfad älter /nicht vorhanden sind
Soll eine Verzeichnisstruktur übernommen werden muss noch ein weiterer Parameter mitgegeben werden
Der Vorteil gegenüber einer Synchronsiation ist besonders, dass eine nicht mehr auf "Y" existierende Datei nicht einfach auf "X" gelöscht wird.
xcopy X:\QUELLPFAD\*.* Y:\ZIELPFAD /D /E
Hier wird zusätzlich die gesamte existierende Verzeichnisstruktur übertragen - egal ob die Quellverzeichnisse aktuell leer sind oder nicht.
ABER:
Wie mein Vorredner schon schrieb ist es durchaus sinnvoll deinen Script zu bekommen um ggf. diesen auf Fehler zu prüfen.
#5
geschrieben 25. Juli 2014 - 11:02
So wie sie aufgebaut ist, müsste sie eigentlich funktionieren, aber er klappt nur der erste Teil.
Das Kopieren nach LW "P" klappt, alles weitere nicht.
Bin gespannt, ob jemand den Fehler findet (hoffentlich!!)
Axel
Sichern_auf_P.zip (413bytes)
Anzahl der Downloads: 71
#6 _d4rkn3ss4ev3r_
geschrieben 25. Juli 2014 - 11:09
Dann hast du einmal copy statt xcopy im Einsatz. Copy kennt aber kein /s /t
Ansonsten sieht alles soweit okay aus.
#7
geschrieben 25. Juli 2014 - 11:46
Zitat (d4rkn3ss4ev3r: 25. Juli 2014 - 11:09)
Naja fehlerfrei ist etwas anderes....
in letzter Zeile heben sich die Argumente gegenseitig auf:
/t = kopieren der Verzeichnisstruktur ohne Kopieren der Inhalte
/e = kopieren der verzeichnsstruktur inklusive der Inhalte - egal ob Ordner leer oder nicht.
Da würde ich auch streiken.
Im Großen und ganzen lässt sich das sogar wie oben beschrieben zusammen fassen/übersichtlicher halten:
@echo off xcopy d:\backup\*.* p:\backup\ /d /e xcopy p:\backup\*.* i:\eigene_dateien\ /d /e xcopy i:\backup\*.* s:\eigene_dateien\ /d /e del d:\backup\*.* /s /q xcopy P:\backup\*.* d:\backup\ /d /e pause
durch das "/d"-Argument ohne Datumsangabe wird sogar dafür gesorgt, dass nicht evtl. identische/unveränderte Dateien nochmal kopiert werden. Somit werden nur noch Dateien Kopiert die nicht neuer sind als bestehende Zieldateien.
sicherheitshalber würde ich allerdings die "del"-Zeile raus lassen. Sonst sägt man sich im Fehlerfall den Ast unterm Hintern weg auf dem man gerade sitzt.
Dieser Beitrag wurde von Stefan_der_held bearbeitet: 25. Juli 2014 - 11:50
#8
geschrieben 25. Juli 2014 - 13:12
Die Lösung von Stefan klappt leider auch nicht, es wird nur nach "P" kopiert, aber leider nicht in die anderen Laufwerke.
Schönes Wochenende
Axel
#9
geschrieben 25. Juli 2014 - 14:08
Zur Analyse hilft da meist nach jedem Befehl eine Zeile mit
pause
zu setzen. so kann man prüfen ob und was da fehl schlägt.
#10 _d4rkn3ss4ev3r_
geschrieben 25. Juli 2014 - 21:37
Punkt für dich
#11
geschrieben 27. Juli 2014 - 10:02
Ich habe jetzt also Folgendes gemacht.
Meine Batch-Datei habe ich in 3 einzelne Batchs aufgeteilt.
Lasse ich im ersten Schritt die Dateien von D: nach P: kopieren, klappt das.
@echo off
xcopy d:\backup\excel\*.* p:\backup\excel /y /s /a
xcopy d:\backup\winword\*.* p:\backup\winword /y /s /a
xcopy d:\backup\powerpoint\*.* p:\backup\powerpoint /y /s /i /a
xcopy d:\backup\vorlagen\*.* p:\backup\vorlagen /y /s /i /a
xcopy d:\backup\X_diverse\*.* p:\backup\x_diverse /y /s /i /a
xcopy d:\backup\access\*.* p:\backup\access /y /s /a
pause
Dann kommt in einer zweiten Batch Teil 2:
@echo off
xcopy d:\backup\excel\*.* i:\eigene_dateien\excel /y /s /t /a
xcopy d:\backup\winword\*.* i:\eigene_dateien\winword /y /s /t /a
xcopy d:\backup\powerpoint\*.* i:\eigene_dateien\powerpoint /y /s /i /t /a
xcopy d:\backup\vorlagen\*.* i:\eigene_dateien\vorlagen /y /s /t /a
xcopy d:\backup\access\*.* i:\eigene_dateien\access /y /s /t /a
pause
Jetzt wird überhaupt nichts kopiert!!! Im Verzeichnis D:\backup\... haben alle Dateien noch das „A“-Attrubut, müssten also lopiert werden können (müssen)
Teil 2 habe ich nach Ablauf von Teil 1 auch versucht, von „P:“ nach „I:“ zu kopieren, ebenfalls kein Ergebnis, auch auf „P“ steht weiterhin das A-Attribut.
Teil 3 erkläre ich hier nicht, weil es nur ein weiteres, negatives Ergebnis bringt.
Warum also kann ich per Batch den 2. Teil nicht durchführen?
Ich wünsche einen schönen Sonntag
Axel
#12
geschrieben 27. Juli 2014 - 11:13
Hilfe mit: xcopy /?
"/T Erstellt die Verzeichnisstruktur, kopiert aber keine Dateien.
Leere oder Unterverzeichnisse werden nicht kopiert.
Um auch diese zu kopieren, müssen Sie die Optionen /T /E angeben."
mit der Option /t wird einfach nichts kopiert.
edit: Absätze Eingefügt.
g.s.
Dieser Beitrag wurde von Shannon bearbeitet: 27. Juli 2014 - 11:15
#13
geschrieben 27. Juli 2014 - 11:15
Wenn da bspw. irgendwo ein Leerzeichen im Pfadname+Dateiname steht musst du den wie folgt umarbeiten
xcopy "d:\backup\Excel\*.*" "i:\eigene_dateien\Excel\" /y /s /t /a
zudem empfehle ich dir der Korrektheit jede PFADANGABE mit einem "\" ab zu schließen. Sonst kommt im Zweifelsfall die Frage ob das Ziel eine Datei oder ein Verzeichnis ist.
#14
geschrieben 27. Juli 2014 - 11:22
Zitat (Shannon: 27. Juli 2014 - 11:13)
Das "/" ist überflüssig da "/E" das schon erledigt. hebt sich nicht gegenseitig auf aber ist halt doppelt
ehr ist hier "/T" mit "/s" unsinnig - auch wenn es technisch keinen Unterschied macht.
Ich würde wie weiter oben geschrieben den Befehl mit "/E" und einem ergänzenden "/D" verkürzen. Trotzdem muss ansich mit dem Befehl des TE etwas kopiert werden - kann mir höchstens noch irgendwo in der Summe versteckte Leerzeichen vorstellen die den Kopiervorgang dann abbrechen
#15
geschrieben 27. Juli 2014 - 11:37
mit /T werden nur leere Verzeichnisse von "Verzeichnissen mit Inhalt"
erstellt: (ohne Dateien).
gruss s.