Xcopy für Delta bilden - xcopy aus txt-Datei - Frage Datei Verzeichnis

Mitglied: QuickMix

QuickMix (Level 1) - Jetzt verbinden

11.08.2011, aktualisiert 22:56 Uhr, 4494 Aufrufe, 2 Kommentare

Hallo, (Frage ist weit unten in # # )

ich habe folgendes Problem zu lösen. Ich unterhalte eine Sammlung aus Hilfedateien von insgesamt 5 Projekten. Diese Projekte sind auf meinem Laufwerk verstreut. Letztlich fasse ich diese 5 Projekte zusammen auf einem Laufwerk P:\. Dort hat jedes Projekt einen Ordner (Projektname) + je einen Unterordner "Lokale Publizierungen" und einen Unterordner "Skripte". Diese beiden enthalten in sich relativ verlinkte html und pdf Dateien. Insgesamt kommen zusammen: 525 MB, 2650 Dateien in 500 Ordnern. Für turnusmäßige Updates filtere ich die neuen Dateien derzeit mit dem Total Commander nach folgendem Muster: Synchronisiere Quelle Projekt1-5 (verstreut) mit Ziel (auf P:\) ABER kopiere die ermittelten Dateien in einen (dritten) Delta Ordner. Das klappt, soll aber automatisiert werden, da es - nicht zuletzt bedingt durch kleinere Linkfehler - mehrmals am Tag nötig ist. Mit Hilfe dieses Forums habe ich mir folgende Lösung zusammengeklaut:

Kurzerläuterungen:
- die Pfade in der dateien_delta.txt haben immer wieder mal Leerzeichen (=> delims)
- die eigentliche Zusammenfassung auf P:\ (ziel1) wurde verdoppelt (ziel2), sodass die Pfadstruktur in der txt stimmen, bis auf das Laufwerk (aus p wird w), denn die Ordnerstruktur der verstreuten Projekte weicht ab


So sieht z.B. die dateien_delta.txt aus:

P:\tmpBp-Hilfe\P1_Onlinehilfe\Lokale Publizierung\html\aktuell_uebersicht.html.bak4_11
P:\tmpBp-Hilfe\P1_Onlinehilfe\Lokale Publizierung\html\schulsoftware.htm

So sieht der (unbrauchbare) Pfad der beiden Dateien in der verstreuten Quelle aus:

e:\1Pfad\Projekt1\Onlinehilfe\P1_Online1\Lokale Publizierung\html\aktuell_uebersicht.html.bak4_11
e:\1Pfad\Projekt1\Onlinehilfe\P1_Online1\Lokale Publizierung\html\schulsoftware.htm


### Hier nun die Frage ###

- ist der Delta Ordner auf W.:\ leer, will xcopy wissen, ob Ziel eine Datei oder ein Verzeichnis ist
- lasse ich die bat das 2. Mal laufen (Ergebnis ist ja dieselbe Updatemenge) wird einfach nur überschrieben
- wieso? Da ich in der txt nur komplette Dateipfade habe sind es immer Dateien (OK, ich bin ein Milchmädchen :-) face-smile)


Über Hilfe freue ich mich. Programmiersprachen kann ich eigentlich keine (Meine Kompetenz liegt im Inhalt der o.g. Hilfedateien)


Vielleicht gibt es ja auch einen ganz anderen Lösungsansatz für mein (eigentliches) Problem des Delta bildens. Dafür möchte ich aber kein Programm nutzen. Z.B. könnte das Tool Delta Checker genau das: vergleiche A (neuer) mit B (älter) und kopiere die Differenz nach C (Delta). Aber in deren Maske müsste ich 5 x je 3 Zeilen Pfade eingeben / kopieren. Dann bleib ich beim Commander.

Ok, Ende des Romans

Gruß
QuickMix
Mitglied: bastla
11.08.2011 um 15:28 Uhr
Hallo QuickMix und willkommen im Forum!

Vorerst nur mal kurz zu
- ist der Delta Ordner auf W.:\ leer, will xcopy wissen, ob Ziel eine Datei oder ein Verzeichnis ist
Da es keinen Schalter analog zu "/i" für "Ziel ist Datei" gibt, behelfe ich mir damit, am Ende des Zielpfades einen Stern anzufügen - das würde bei Deiner Zeile so aussehen:
- lasse ich die bat das 2. Mal laufen (Ergebnis ist ja dieselbe Updatemenge) wird einfach nur überschrieben
Dann ist ja klar, dass das (bereits vorhandene) Ziel eine Datei ist ...
Anstelle der Zeilen in der Art von
kannst Du übrigens am Beginn des Batches
verwenden - es werden dann alle Änderungen an Variablen beim folgenden "endlocal" (und ein solches wird automatisch beim Ende des Batches ausgeführt) verworfen ...

Grüße
bastla

P.S.: Code liest sich mit der passenden Formatierung leichter ...
Bitte warten ..
Mitglied: QuickMix
11.08.2011 um 16:39 Uhr
Hallo bastla,

herzlichen Dank. Der Stern erledigt tatsächlich mein Problem.

Bei den Variablen bin ich auf Nr. Sicher gegangen und habe sie so schnell es geht wieder gelöscht. :-) face-smile


Zur Formatierung:

Du hast Recht. Ich durfte meinen Beitrag aber ohnehin zweimal schreiben, weil ich selber die Formatierungshilfe aufgerufen habe...und kam dann nicht mehr zurück zu meinem Beitrag. Beim zweiten Mal habe ich den Text dann noch im Editor vorgehalten. Ich werde üben.

Nochmal herzlichen Dank.


Gäbe es denn eigentlich eine andere Lösung für mein Deltavorhaben? Ich habe im Netz nichts gefunden und mir so meine Batch zusammengestückelt. Wobei die paar Zeilen ja sehr gute Arbeit leisten.


Gruß
QuickMix


Die aktualisierte Batch sieht jetzt so aus:

Bitte warten ..
Heiß diskutierte Inhalte
Switche und Hubs
Probleme im Netzwerk Switche teilweise nicht erreichbar
hukimanVor 1 TagFrageSwitche und Hubs30 Kommentare

Guten Morgen, seit Monaten haben wir hier immer wieder Probleme mit dem Netzwerk, das Problem konnte ich leider aber noch immer nicht finden. Es ...

Erkennung und -Abwehr
Einer Malware auf der Spur. Benötige Sherlock Holmes!
streamVor 1 TagFrageErkennung und -Abwehr7 Kommentare

Guten Abend Wenn ich meine Windows-10-Kiste starte, so gibt mir mein Router eine Meldung aus, dass eine bestimmte IP-Adresse wegen Bösartigkeit geblockt wurde. Auf ...

Batch & Shell
Tabellarische Ausgabe der Netzwerkschnittstellen
gelöst dysti99Vor 23 StundenFrageBatch & Shell18 Kommentare

Mit - ip a - werden ja die Netzwerkschnittstellen angezeigt. Ich möchte mit ein Batchscript folgende Ausgabe erreichen: 1 eth0 192.168.1.1 AD:13:67:56:14:D1 2 eth1 ...

Ubuntu
Mailserver Test Provider IP
gelöst it-blzVor 1 TagFrageUbuntu9 Kommentare

Hallo, ist es möglich einen "Mailserver" (Imap + smtp) in einer Virtual Box mit einer Provider IP (dynamisch - ist allerdings konstant) zu testen? ...

Microsoft
MS Teams und Office im gemeinnützigen Verein
DanielBodenseeVor 1 TagFrageMicrosoft6 Kommentare

Hallo zusammen, ich würde gerne in unserem anerkannten gemeinnützigen Verein eine gemeinsame Platform aufbauen, über die wir Diskutieren und uns austauschen können, insbesondere bei ...

Linux Netzwerk
SAMBA FS Portfreigabe
gelöst Jannik2018Vor 1 TagFrageLinux Netzwerk17 Kommentare

Hallo zusammen, ich habe eine Portfreigabe für meinen SAMBA Server mit Netzwerkfreigaben auf port 445 TCP eingerichtet allerdings wenn ich per DNS oder externer ...

Hardware
DisplayPort zu USB-C Adapter Converter
gelöst felixhuth-itVor 1 TagFrageHardware11 Kommentare

Hallo liebe Gemeinde Ich habe da ein kleines Problemchen. Der Kunde wollte einen 14 Zoll Monitor mit Touch in Verbindung mit einem Mini PC ...

Microsoft Office
Wechsel von Office - Exchange on premise zu Office 365 - Exchange Online
jann0rVor 19 StundenAllgemeinMicrosoft Office10 Kommentare

Moin, ich weiß nicht so richtig, unter welche Überschrift man dieses Thema hier am besten packen kann, daher mal als allg. Beitrag / Erfahrungsbericht. ...