Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Geänderte Dateien per dir in Datei und fc ermitteln

Frage Entwicklung Batch & Shell

Mitglied: Haegar75

Haegar75 (Level 1) - Jetzt verbinden

12.09.2008, aktualisiert 13.09.2008, 5269 Aufrufe, 7 Kommentare

Hallo Leute,
ich muss euch mal wieder belästigen..
Ich möchte Dateien die sich seit der letzten Datensicherung geändert haben packen und wegkopieren.
Da sich die bereits gepackten und wegkopierten schlecht mit den unkomprimierten vergleichen lassen, hatte ich folgenden Ansatz gewählt..
Mit dir die Dateinamen in Datei umleiten und dann mit fc die am Tag vorher erstellte datei vergleichen und aus den Unterschieden die zu kopierenden Dateien ermitteln.
Versuch:

dir *.dbx | SORT /r | FIND /v "Volumeseriennummer:" | FIND /v "Verzeichnis" | FIND /v "Datei(en)" | FIND /v "Laufwerk" > copy.txt
fc copyalt.txt copy.txt

Leider werden mir wenn sich eine Datei ändert aber auch die vorherige und die nachfolgende angezeigt, obwohl die gleich sind... Ausserdem weiß ich noch net wie ich aus dem Wust an Datum und Größe den Dateinamen extrahieren kann..
Mitglied: Biber
12.09.2008 um 18:46 Uhr
Hmmja, Haegar75,

bei aller Liebe zu Batch-Lösungen... lass uns bitte noch ein paar Zeilen bei der Backup-Strategie verweilen...

So, wie sich das End-Wunsch-Ergebnis darstellen müsste, erzeugst Du doch täglich eine Delta-Sicherung (alle heute geänderten Dateien) und dieses Delta speicherst Du als eine ZIP oder RAR-Datei weg.

Wäre es da nicht simpler und wartbarer, jeden gatesverdammten Tag per Taskplaner einen Batchjob anzustoßen, der alle Dateien mit heutigen Datum im ...\src-Verzeichnis zusammensammelt und in eine (heut z.B.) 2008-09-12.zip schreibt?
Oder welches bisher geplante Feature würde dann fehlen?

Grüße
Biber
Bitte warten ..
Mitglied: Haegar75
12.09.2008 um 18:55 Uhr
Nunja, das mache ich ja im Prinzip auch mit den "kleinen" Dateien (inkrementelles Backup mit Xcopy)
Den oben beschriebenen Eiertanz wollte ich mir nur mit den mehreren hundert MB großen Brocken abhalten, da der Platz auf dem Sicherungslaufwerk begrenzt ist..
Das sei zu meiner Verteidigung zu sagen..
Bitte warten ..
Mitglied: Biber
12.09.2008 um 19:40 Uhr
...in diesem Fall würde ich dann eher den Weg gehen, mit ZWEI komplettsicherungs-ZIPs zu arbeiten.

In der ersten Komplett-ZIP-Datei (die für Mo, Mi, Fr) lässt Du dein ZIP-Programm jeweils alle src-Files aktualisieren, die verglichen mit dem letzten Stand im Archiv neuer sind; in der anderen Zip-Datei (die für Mo und Mi) machst Du dasselbe Spielchen.
Somit hast Du immer die Daten von heute( im Src-Verzeichnis), den Vortags-Stand und den von vorgestern( oder älter).

Oder du nimmst nur ein Komplett-Archiv als zip und machst die Zwei-Dalta-Mimik nur mit Dateien, die sich im letzten Monat geändert haben.

Vorteil der ersten Lösung wäre: du kannst (solltest Du mal in Deinem Src-Ordner richtig was verkantet haben) immer noch per Knopfdruck auf einen in sich konsistenten Stand/zusammenpassende Dateien zurück.

Aus einem SRC-Ordner eine einzelne Datei aus einer Delta-Sicherung zurückzukopieren... hmmm..... kann klappen, muss aber nicht.

Aber ich wäre auch bereit, meine Einwände zurückzustellen, wenn Du auf Deinem Konzept bestehst...

Grüße
biber
Bitte warten ..
Mitglied: Haegar75
12.09.2008 um 20:06 Uhr
Naja, was heißt drauf bestehen.. Meine Einsichtigkeit wird eigentlich nur noch von meiner Bescheidenheit übertroffen!
Deine Einwände hab ich noch nicht ganz verstanden.. Was ich vorhabe ist ja eigentlich keine wirkliche Delta-Sicherung.. Die dbxe die ich sichern will (hatte mich eben vertan mit src..) kann ich ja nur als Ganzes anpacken. Ich möchte halt nur die Brocken austauschen die sich geändert haben.
Bitte warten ..
Mitglied: bastla
12.09.2008 um 22:50 Uhr
Hallo Haegar75 und Biber!

Unabhängig von den weiteren Überlegungen als Antwort auf die eigentliche Fragestellung: Als Ersatz der "fc"-Zeile sollte
01.
Z:\>for /f "delims=" %%i in (D:\copy.txt) do findstr /x /c:"%%i" D:\copyalt.txt>nul || for /f "tokens=3*" %%a in ("%%i") do echo %%b
die unterschiedlichen Dateien ausfiltern.

Grüße
bastla
Bitte warten ..
Mitglied: Haegar75
13.09.2008 um 21:17 Uhr
Funktioniert akkurat! Danke!!! Was macht das "token=3*" eigentlich?
Bitte warten ..
Mitglied: bastla
13.09.2008 um 22:46 Uhr
Hallo Haegar75!

Was macht das "token=3*" eigentlich?
Damit wird festgelegt, welche Teile der Zeile interessieren bzw den Schleifenvariablen (hier ab %%a) zugeordnet werden - so wird zB die Zeile
01.
12.09.2008  22:40             2.542 copyalt.txt
anhand der defaultmäßigen (daher auch keine Angabe von "delims=") Trennzeichen "Tab" und "Leerzeichen" in die Teile
01.
1:    12.09.2008 
02.
2:    22:40 
03.
3:    2.542 
04.
Rest: copyalt.txt
zerlegt.

Eigentlich benötigt wird zwar der Teil 4, aber, um für den Fall, dass der Dateinamen ein oder mehrere Leerzeichen enthalten könnte (wodurch auch noch die Teile 5, 6, etc entstünden), vorzusorgen, wird der Rest der Zeile durch die Angabe von "*" zu einem einzigen "token" (%%b) zusammengefasst.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Batch & Shell
Mehrere.csv Dateien zusammenfügen zu einer Datei mit bat (4)

Frage von Piotrney zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
CMS
Lokales Wordpress im LAN - wie aufsetzen? (16)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
IP im privaten Netz nicht erreichbar (14)

Frage von guntis zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...