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

Frage Entwicklung Batch & Shell

GELÖST

Verzeichnisse Vergleichen Skript

Mitglied: fugu

fugu (Level 2) - Jetzt verbinden

10.10.2006, aktualisiert 23:33 Uhr, 6082 Aufrufe, 8 Kommentare

Moinz @Batchler!

Vorweg kurz die Sinn-Erläuterung: Ich möchte, dass ein Verzeichnis auf meiner Platte in regelmässigen, kurzen Abständen mit einem identischen Verzeichnis auf einer anderen Platte synchronisiert wird.

Sync-Tool hab ich schon einige probiert, aber keines hat mit überzeugt. Das eine stürzt ständig ab, das andere braucht für die 700MB fast 'ne Stunde und das wieder nächste ist mir einfach zu teuer, um nur ein Verzeichnis zu sync'en...

Ich hab mir als Grundlage die "QuickNDirtySync" vom Biber genommen.
@Biber: Ich hoffe du bist nicht böse über mein Plagiat!

01.
@echo off 
02.
 
03.
set src=D:\Auslagerungsdateien 
04.
set dst=E:\Auslagerungsdateien 
05.
 
06.
set log=C:\Backup-Logs\%date%.log 
07.
 
08.
for %%i in ("%src%\*.*") do ( 
09.
   if not exist "%dst%\%%~nxi" ( 
10.
      xcopy %src%\%%~nxi %dst%\%%~nxi /i /c /e /q /y || echo Kopiere neue Datei %src%\%%~nxi.>%log% 
11.
   ) else ( 
12.
      fc "%%i" "%dst%\%%~nxi">nul || xcopy %src%\%%~nxi %dst%\%%~nxi /i /c /e /q /y || echo Kopiere erneuerte Datei %src%\%%~nxi.>%log% 
13.
14.
15.
 
16.
for %%i in ("%dst%\*.*") do ( 
17.
   if not exit "%src%\%%~nxi" ( 
18.
      del /s /q %%i || echo Alte Datei %dst%\%%i entfernt.>%log% 
19.
20.
)
Jetzt habe ich drei Probleme, die ich nicht zu lösen vermag:

1. Es wird kein Log angelegt. Das Verzeichnis "C:\Backup-Logs" ist vorhanden.
2. In der Rückwärtssuche zum Dateien löschen bekomme ich die Fehlermeldung
01.
""D:\Auslagerungsdateien\%~nxi"" ist syntaktisch an dieser Stelle nicht verarbeitbar.
3. Das Skript arbeitet nicht rekursiv durch die Unterverzeichnisse!

Gibt's dazu evtl. auch 'ne Q'n'D - Lösung?
Oder sollte ich auf VB ausweichen (wovon ich leider überhaubt keine Ahnung habe)?
Oder sollte ich mir doch 'ne SyncSoft kaufen? Wenn ja, welche würdet ihr empfehlen?

So, ich glaub, ich hab alles gepostet, was mir auf der Seele brennt...

Thx, Fugu
Mitglied: miniversum
10.10.2006 um 13:55 Uhr
Ist zwar was anderes aber gehts so?

@echo off & setlocal

set Quelle="E:\quelle"
set Ziel="E:\ziel"
:: Quelle und Ziel als Laufwerke einbinden
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 LWdelquelle=%%L:
if %LWdelquelle.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)

if (%Quelle:~2,1%)==( subst %LWdelquelle% %Quelle% > NUL
if (%Quelle:~2,1%)==(\) net use %LWdelQuelle% %Quelle% > NUL
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 LWdelZiel=%%L:
if %LWdelZiel.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)

if (%Ziel:~2,1%)==( subst %LWdelZiel% %Ziel% > NUL
if (%Ziel:~2,1%)==(\) net use %LWdelZiel% %Ziel% > NUL

:: Eine Liste alles Dateien und Verzeichnisse im Ziel erzeugen
:: Danach alle Dateien und Verzeichnisse die nicht in der Quelle vorhanden sind löschen
dir /s /b /ad %LWdelZiel% >%temp%\OnlyInTarget.Lst
for /F "delims=: tokens=2" %%a in (%temp%\OnlyInTarget.Lst) do if NOT exist %LWdelQuelle%\%%a\NUL RD /Q /S "%LWdelZiel%%%a"
dir /s /b /a-d %LWdelZiel% >%temp%\OnlyInTarget.Lst
for /F "delims=: tokens=2" %%a in (%temp%\OnlyInTarget.Lst) do if NOT exist %LWdelQuelle%\%%a del /Q /S "%LWdelZiel%%%a"

:: Laufwerksbuchstaben für Quelle und Ziel entfernen
subst %LWdelquelle% /D > NUL
net use %LWdelquelle% /Delete > NUL
subst %LWdelZiel% /D > NUL
net use %LWdelquelle% /Delete > NUL

:: Jetzt die Dateien die von Quelle nach Ziel kopieren
xcopy %Quelle% %Ziel% /v /f /d /s /e /r /y /z /i

das log fehlt noch, solte aber kein problem sein.

miniversum
Bitte warten ..
Mitglied: bastla
10.10.2006 um 14:05 Uhr
Hallo Fugu!

Vielleicht wäre XXCOPY etwas für diesen Zweck - siehe zB http://www.xxcopy.com/xxcopy27.htm#tag_231 und http://www.xxcopy.com/xxcopy27.htm#tag_13.

HTH
bastla
Bitte warten ..
Mitglied: Escobar
10.10.2006 um 15:13 Uhr
Jetzt habe ich drei Probleme, die ich nicht
zu lösen vermag:
1. Es wird kein Log angelegt. Das
Verzeichnis "C:\Backup-Logs" ist
vorhanden.
2. In der Rückwärtssuche zum
Dateien löschen bekomme ich die
Fehlermeldung
01.
> ""D:\Auslagerungsdateien\%~nxi"" 
02.
> ist syntaktisch an dieser Stelle nicht 
03.
> verarbeitbar. 
04.
> 
3. Das Skript arbeitet nicht rekursiv durch
die Unterverzeichnisse!

also bei mir laeuft da garnix...

soweit erstmal dass er es kopiert:
01.
REM @echo off 
02.
 
03.
set src=meineQuelle 
04.
set dst=meinZiel 
05.
 
06.
set log=C:\%date%.log 
07.
 
08.
REM den abschliessenden backslash vom quellpfad deleten: 
09.
if %src:~-1%==\ set src=%src:~0,-1% 
10.
xcopy "%src%" "%dst%" /c /s /e /r /v /d /y /i /h /f /o /x >> %log%
wenn du mehrere zeilen in eine datei schreiben willst (hier dein log), dann musst du das mit >> machen statt mit > da die datei bei jedem eintrag sonst ueberschrieben wird.

Esco
Bitte warten ..
Mitglied: Supaman
10.10.2006 um 16:02 Uhr
Sync-Tool hab ich schon einige probiert, aber keines hat mit überzeugt.
Das eine stürzt ständig ab, das andere braucht für die 700MB fast 'ne Stunde
und das wieder nächste ist mir einfach zu teuer, um nur ein Verzeichnis zu sync'en...

versuchs mal mit vice versa pro 2 - das geht prima und kostet nur ca $60.
http://www.tgrmn.com
Bitte warten ..
Mitglied: fugu
10.10.2006 um 22:47 Uhr
*stutz* PUH - das muss ich erst mal verdauen...
Danke schon mal - ich werd's in Ruhe durchgucken und testen
Bitte warten ..
Mitglied: fugu
10.10.2006 um 22:49 Uhr
waddet nich so alles gibt...
auch den werde ich mal genau unter die Lupe nehmen 8-)
Bitte warten ..
Mitglied: Escobar
10.10.2006 um 23:02 Uhr
2. In der Rückwärtssuche zum Dateien löschen bekomme ich die Fehlermeldung

du hast da einen syntaxfehler drin, es musst exiSt heissen

Esco
Bitte warten ..
Mitglied: Escobar
10.10.2006 um 23:33 Uhr
hallo,

hier nun die batch, die vollstaendig funktionieren muesste

01.
@echo off 
02.
 
03.
set src=meineQuelle 
04.
set dst=meinZiel 
05.
set log=C:\%date%.log 
06.
 
07.
if %src:~-1%==\ set src=%src:~0,-1% 
08.
xcopy "%src%" "%dst%" /c /s /e /r /v /d /y /i /h /f /o /x >> %log% 
09.
 
10.
Subst Z: %dst% 
11.
for /R Z:\ %%i in ("*.*") do @FC "%%i" "%src%%%~pnxi" >nul || del /s /q "%%i" && echo %%i geloescht>>%log%
anregung dazu gabs hier: http://www.administrator.de/Verzeichnisse_und_Unterverzeichnisse__per_c ...

Esco
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Verzeichnisse vergleichen mit Zwischenschritt
gelöst Frage von H41mSh1C0RBatch & Shell22 Kommentare

Hi@All, Ablauf: 1. Verzeichnis A (root: c:\temp\dir1) einlesen (pfad ab root, name, länge, letzte mal geschrieben) > Ergebnis in ...

Batch & Shell
Dateiversionen mit Skript vergleichen und wenn Datei neuer ist, installieren
Frage von Jens4everBatch & Shell9 Kommentare

Moin zusammen, ich bräuchte mal eure Hilfe bitte. Könnte ihr mir helfen, das zu realisieren als Skript? Am liebsten ...

Sicherheitsgrundlagen
Rechtevergabe Verzeichnisse
Frage von karin1511Sicherheitsgrundlagen3 Kommentare

Weiß jemand, ob es möglich ist, einem User zwar Schreib- aber keine Lese-Rechte auf ein Verzeichnis zu gewähren (Win2008Server)? ...

Batch & Shell
Umstrukturierung von Verzeichnissen
Frage von original-meiBatch & Shell5 Kommentare

Hallo zusammen, nach einigen Stunden komme ich jetzt nicht mehr weiter und erhoffe mir hier Hilfe von euch. Hier ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 8 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit24 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen23 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...