spsman
Goto Top

Batch Ordner und Unterordner vergleichen

Hallo an alle,

Ich suche nach einer Batchfunktion die mir Ordner und Unterordner Vergleicht und bei Ungleichheit das Archivbit setzt.

Also ich Habe

Quelldir:

C:/A/Text1.txt
C:/B/Text2.txt
C:/A/B/Text3.txt

Zieldir:

D:/A/Text1.txt
D:/B/Text2.txt
D:/A/B/Text3.txt
D:/Text1.txt

Mit meine Versuchen Hat er bei "D:/Text1.txt" das Archivbit nicht gesetzt.

Ziel des ganzen: Ich mache eine Täglich Sicherung und ein Wöchentliches Backup mit robocopy. Es sollen nur Dateien auf dem Server gelöscht werden die Seit 8Tag nicht mehr auf dem Client sind.
Gleiches fürs Back up: Es sollen nur dateien auf dem Backup gelöscht werden die auf dem Server seit 8Tagen gelöscht sind.

Vielleicht gibt es ja auch noch einen anderen Weg den ich nicht sehe?

Programmiere Beruflich SPS habe also schon ein paar erfahrungen ;)

Gruß und Danke

Content-Key: 283964

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

Printed on: April 24, 2024 at 19:04 o'clock

Member: rubberman
rubberman Sep 26, 2015 updated at 21:29:58 (UTC)
Goto Top
Hallo SPSman, willkommen im Forum.

Eigentlich solltest du ROBOCOPY auch dazu verwenden können, die richtigen Dateien zu finden.
/L listet nur, ohne eine Aktion auszführen
/X zeigt EXTRA Dateien (Dateien die in der Quelle nicht mehr vorhanden sind)
/S verarbeitet auch Unterverzeichnisse
/FP für den vollen Dateiname
sowie diverse Optionen um unerwünschte Ausgaben zu unterdrücken.

Mit ATTRIB kannst du das Archivbit setzen.

Teste:
@echo off &setlocal
set "src=C:\quelle"  
set "dst=D:\ziel"  

for /f "tokens=2*" %%i in (  
  'robocopy "%src%" "%dst%" /L /S /X /FP /NP /NS /NDL /NJH /NJS ^| find "*EXTRA"'  
) do ECHO attrib +A "%%j"  

PAUSE
(src und dst entsprechend anpassen)

Wenn dir die richtigen Dateien angezeigt werden (weiter passiert noch nichts), entferne ECHO und PAUSE um den Code scharf zu schalten.

Grüße
rubberman
Member: SPSman
SPSman Sep 27, 2015 at 10:39:40 (UTC)
Goto Top
Hi,

der Code funktioniert, auch wenn ich noch nicht ganz durchgestiegen bin ;)

Gruß und vielen Dank face-smile