Top-Themen

Aktuelle Themen (A bis Z)

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 Ordnersynchronisation mit Batch

Mitglied: 64572

64572 (Level 1)

25.04.2008, aktualisiert 03.05.2008, 4569 Aufrufe, 12 Kommentare

Automatisches Kopieren und Löschen in Bezug auf Quellordner

Hallo zusammen!

Ich möchte mir ein Backup-Skript bauen, welches die Dateien von meinem Desktop und Laptop synchronisiert. Also, wenn am Desktop was geändert wurde, wird das auch am Laptop geändert, und andersherum!

Alle Dateien kopieren ist dank ycopy kein Problem; das kommt erst auf, wenn es darum geht Dateien zu löschen!

Ein Beispiel: Ich habe Ordner für zu bearbeitende Fotos und fertige. Wenn ich jetzt Bilder fertig bearbeitet habe, werden diese vom "zu bearbeiten" in den "fertig" Ordner verschoben. Wenn ich xcopy drüber laufen lasse, erstellt er mir zwar unter "fertig" den Ordner mit den bearbeiteten Bilder, jedoch bleibt der Ordner unter "zu bearbeiten" bestehen!

Ich suche also eine Routine mit der ich Ordner bzw. Dateien vergleichen kann und, falls es im Zielordner überschüssige Ordner/Dateien gibt, diese zu löschen!

Ich hoffe es ist verständlich und nicht zu kompliziert geschildert!

Danke im Voraus...

Admirandis
Mitglied: 6741
25.04.2008 um 11:41 Uhr
mssync

geht 100% und kostenlos ....
Bitte warten ..
Mitglied: miniversum
25.04.2008 um 13:03 Uhr
Und per Batch gehts so:
01.
@echo off 
02.
 
03.
set src=F:\Quelle 
04.
set dst=F:\Ziel 
05.
if %src:~-1%==\ set src=%src:~0,-1% 
06.
xcopy "%src%" "%dst%" /c /s /e /r /v /d /y /i /h /f /o /x 
07.
 
08.
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\NUL set LWdst=%%L: 
09.
Subst %LWdst% "%dst%" 
10.
for /R %LWdst%\ %%i in ("*.*") do @FC "%%i" "%src%%%~pnxi" >nul || del /s /q "%%i" 
11.
Subst %LWdst% /D
Vorausgesetzt wird ein freier Laufwerksbuchstabe.
Bitte warten ..
Mitglied: 64572
25.04.2008 um 16:34 Uhr
Also ich werd mir eure sachen mal zu Gemüte führe

Ich meld mich, falls es noch Probleme geben sollte!

Auf jeden Fall schonmal danke für eure Hilfe!
Bitte warten ..
Mitglied: 64572
27.04.2008 um 14:10 Uhr
Also hab mir jetzt mal den Batch angeschaut. Funktioniert auch bis auf die Tatsache, dass die Ordner bestehen bleiben. Es werden also nur die Dateien in den Ordnern gelöscht. Ich schau mal, ob ichs noch hinbring!
Bitte warten ..
Mitglied: miniversum
27.04.2008 um 16:40 Uhr
Das
del /s /q "%%i"
sollte eigentlich Verzeichnisse und Dateien löschen.
Ist vielleicht ein Schreibschutz oder so drauf?
Zur Not kannst du die Option /F noch dazuhängen.
Bitte warten ..
Mitglied: Biber
27.04.2008 um 16:44 Uhr
Moin admirandis,

wenn Du die Ziel-Verzeichnisse löschen willst, die im Quellverzeichnis nicht mehr vorhanden sind, könntest Du miniversums Starategie nochmal anwenden.
Unter dem vorhandenen Schnipsel:
01.
 ... 
02.
REM Runde 1 war: ersetze Dest-Dir durch Laufwerksbuchstaben, wackele durch alle Unterverzeichisse und prüfe Dateien 
03.
Subst %LWdst% "%dst%" 
04.
for /R %LWdst%\ %%i in ("*.*") do @FC "%%i" "%src%%%~pnxi" >nul || del /s /q "%%i" 
05.
REM Runde 2: wackele durch alle Unterverzeichisse und prüfe,  ob Verzeichnis (noch) in Src existiert 
06.
FOR /R "LWdst%\" %%i in (.) do if not exist "%src%\%%~pnxi" do echo Rd "%%~fi" 
07.
Subst %LWdst% /D
[Ungetestete Skizze, "echo" nach dem Testen weglassen]

Anmerkung 1: Wenn tatsächlich der Fall eintritt, dass Du eine Verzeichnis-Hierarchie auf %src% entsorgt hast,
also eine Struktur "test\sub1\subsub2" komplett gelöscht hast, dann wird es nicht funktionieren.
Wenn es sich nur um eine Unterverzeichnisebene handelt schon.

Anmerkung 2: Auch wenn sich eine Sync-Mimik grundsätzlich mit Bordmitteln nachbilden lassen lässt:
ich würde dafür Tools verwenden, die darauf spezialisiert sind (s.o.).

Grüße
Biber
[Edit] @miniversum: Mit [for /R %LWdst%\ %%i in ("*.*") ...] erwischt Du nur Dateien, keine Verzeichnisse [/Edit]
Bitte warten ..
Mitglied: 64572
27.04.2008 um 20:47 Uhr
Werd wahrscheinlich zu nem Tool greifen, wenn ich es jetzt nicht mehr hinbekommen... Aber evtl find ich ja noch ne Methode für alles... Mal schauen!

So nebenbei: Eigtl sollte der "del" Befehl auch Verzeichnisse löschen!

/S Löscht alle Verzeichnisse und Dateien im angegebenen Verzeichnis
zusätzlich zu dem Verzeichnis selbst. Wird verwendet, um ganze
Verzeichnisbäume zu löschen.

(Auszug aus del /?). Komisch, dass es nicht klappt...
Bitte warten ..
Mitglied: bastla
27.04.2008 um 23:01 Uhr
Hallo admirandis!

Auch nebenbei: Deinen "Auszug aus del /?" bekomme ich (unter XP SP2) eigentlich für "rd /?" angezeigt ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
27.04.2008 um 23:49 Uhr
Moin admirandis,

noch nebenbeier:
Ob nun DEL oder RD aufgerufen ist relativ egal, weil mit dem bisherigen Konstrukt "...for /R %LWdst%\ %%i in ("*.*") do .." nur Dateien, aber keine Verzeichnisse erfasst werden. Und wenn rechts der DO-Anweisung nix ankommt, ist es im Ergebnis dasselbe, ob Du auf nix ein RD oder ein DEL anwendest.

Um Verzeichnisse abzuklappern habe ich oben eine zweite FOR /R-Anweisung ergänzt, was evtl. etwas untergegangen ist.

Grüße
Biber
Bitte warten ..
Mitglied: 64572
28.04.2008 um 00:17 Uhr
@bastla: Hast Recht! Fehler meinerseits! Sorry!

@Biber: Hab jetzt deinen Code mal reingebastelt! Hab das auch schon mit der FOR-Schleife beachtet. Aber wie du schon in deinem letzten Beitrag erwähnt hast, klappt das nicht mit ganze Ordnerstrukturen.
Eine seeehr unschöne Möglichkeit wäre die 2. FOR-Schleife einfach paar mal durchlaufen zu lassen, weil in dieser immer nur das unterste Verzeichnis gelöscht wird. Was aber nicht wirklich schön ist.

Ich bin nicht so der Batch-Pro, aber gibt es hier evtl auch sowas wie eine repeat-until-Schleife (wie z.B. in Pascal)?
Das wäre zwar auch nicht die schönste Lösung, aber es würde zumindest sauber laufen...

Grüße
Admirandis
Bitte warten ..
Mitglied: miniversum
28.04.2008 um 18:15 Uhr
Ich hab mir mal erlaubt den Biber-Batch etwas umzubauen. Vielleicht hilfts ja:
rem Ersetze Dest-Dir durch Laufwerksbuchstaben, wackele durch alle Unterverzeichisse und prüfe Dateien und Verzeichnisse. Existiert was nicht nim an es ist eine datei und lösche sie. Gibts nen Fehler beim Löschen nim an es ist ein Verzeichnis und lösche es.
Subst %LWdst% "%dst%"
FOR /F "delims=" %%i in ('dir /s /b "%LWdst%"') do if not exist "%src%\%%~pnxi" do (ECHO del "%%~fi" 2>NUL || ECHO Rd "%%~fi" 2>NUL)
Subst %LWdst% /D

(Die ECHOs nach 'nem erfolgreichen Test entfernen)
Bitte warten ..
Mitglied: 64572
03.05.2008 um 09:51 Uhr
Hallo zusammen!

Nachdem ich jetzt noch länger rumprobiert hab und nichts dabei rausgekommen ist, habe ich zum Tool "Robocopy" gegriffen. Damit geht alles auch noch schön in einer Batch datei und es gibt wunderbar viele Optionen zum einstellen. Kann ich jedem nur wärmstens empfehlen!

An dieser Stelle möchte ich nochmal allen Beteililgten für ihre Hilfe danken!

Gruß
Admirandis
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Ordnersynchronisation via VBScript
gelöst Frage von DeeJayBeeVB for Applications9 Kommentare

Guten Morgen zusammen! Ich habe drei Verzeichnisse, die ich synchronisieren, bzw. aufteilen muss. Quellverzeichnis "C:\data\" - enthält diverse Ordner ...

Batch & Shell
Batch: Batch in batch in cfg schreiben
gelöst Frage von pixelBfBatch & Shell2 Kommentare

Hayy, ich bin neu hier im forum:)) Meine frage: Kann ich eine batch schreiben die was in eine batch ...

Windows Server

Rückgabewerte einer Batch an die aufrufende Batch

gelöst Frage von ThomasH2Windows Server2 Kommentare

Hallo, ich würde gerne eine elegante Möglichkeit erfahren, wie von einer Batch ein Wert an die aufrufende Batch übergeben ...

Batch & Shell

Batch aus Batch mit anderen Rechten starten

gelöst Frage von thilo-55Batch & Shell15 Kommentare

Hallo zusammen, bin schier am verzweifeln: System ist Win7 mit Benutzer "User" mit user-rechten und "Admin" mit admin-rechten (wer ...

Neue Wissensbeiträge
Sicherheit

Interessante Methode für Leute, die in einer Windowsdomäne starke Kennwörter erzwingen wollen

Information von DerWoWusste vor 3 StundenSicherheit3 Kommentare

Dieser Artikel beschreibt, wie man auch ohne 3rd-party-tools die Kennwortsicherheit in Windows-Domänen erhöhen kann. Der Grundgedanke lautet: wir prüfen ...

Windows Server

SBS 2011: Installation von KB4457144 schlägt beim Reboot fehl - Von Dienst gesperrte Schriftart ursächlich

Tipp von the-buccaneer vor 14 StundenWindows Server1 Kommentar

Moinsen zusammen! Das hat mich einige graue Haare gekostet: Ein SBS 2011 weigerte sich schon im August, das monatl. ...

Windows Netzwerk
Browser-Lags und IPv6
Erfahrungsbericht von NixVerstehen vor 20 StundenWindows Netzwerk1 Kommentar

Hallo zusammen, wir betreiben als kleines Speditionsunternehmen ein überschaubares Windows-Netzwerk mit Win10-Clients sowie einem Server 2016 Essentials als "eierlegende ...

Humor (lol)

Erstaunlich, Windows mit extremer Laufzeit (Server) lol

Tipp von mathu vor 22 StundenHumor (lol)5 Kommentare

Was es so alles gibt. :-)

Heiß diskutierte Inhalte
Hyper-V
Windows Serer 2016 Standard virtualisieren
gelöst Frage von fritte87Hyper-V33 Kommentare

Hallo zusammen, ich muss für eine kleine Firma ein entsprechendes neues kleines Konzept bauen. Ich habe einen Server Standard ...

Windows Server
Fileserver von 2012 R2 auf 2012R2
gelöst Frage von ThabeusWindows Server23 Kommentare

Moin moin, leider war in der Vergangenheit der Fokus des Betriebs nicht auf Langfristigkeit ausgelegt. Daher stehe ich jetzt ...

Windows Server
Kann DNS-Einträge nicht finden
gelöst Frage von BPeterWindows Server19 Kommentare

Hallo, wenn ich folgenden Befehl absetze, bekomme ich eine Liste zurück mit allen Einträgen der DNS-Zone. Wenn ich aber ...

Router & Routing
Größere Zahl VPN-Verbindungen mit Fritz-Box einrichten
Frage von miscmikeRouter & Routing15 Kommentare

Hallo Zusammen, ich supporte verschiedene Kunden mit bestehenden LAN-LAN-Kopplungen via FritzBox (7490, FritzOS 7.01) . Anwendungen sind z.B. Kaspersky-KSC ...