sirschubert
Goto Top

Suche Software die Verzeichnisse vergleicht und als Filter eine UND Verknüpfung bietet

Hallo Leute,

folgendes Szenario:

2 Verzeichnisse (beides Netzlaufwerke)
Das Quellverzeichnis sieht folgendermaßen aus (siehe Bild)
Das Zielverzeichnis soll nur einen Teil des Quellverzeichnisses kopiert bekommen.

Ich möchte das Wenn der Ordner Videos existiert auch ebenfalls die XML Files mit rüber kopiert werden.
Es sollen aber auch wirklich nur dann die XML Files kopiert werden. Sonst eben überspringen.

Ich habe hierzu auch schon eine "fast" Perfekte Software gefunden "Synchredible".
Einzige Einschränkung ist aber das man hiermit beim kopieren keine Verknüpfungen anlegen kann.

Es fehlt mir also die logische Abfrage (z.B. wenn Videos - dann XML kopieren - sonst überspringen) bzw. Verknüpfung (mpg+xml).

Hab hier mal etwas zu dem Thema gesucht. Per Script lässt sich dies vielleicht irgendwie realisieren. Aber das ist mir für den Zweck einfach zu aufwendig.

Abgesehen von "Synchredible" habe ich schon PureSync und FreeFileSync getestet. Diese bieten so eine Funktion aber nicht.

Hat einer von Euch ne Idee?

Besten Dank

Marcel

713b21efa330e51a4a553763fffe94b2

Content-ID: 204310

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

Ausgedruckt am: 23.11.2024 um 07:11 Uhr

certifiedit.net
certifiedit.net 07.04.2013 um 17:10:16 Uhr
Goto Top
Hi,

Warum schreibst du nicht einfach ein kleines powershell oder cmd Skript?

Gruß
sirschubert
sirschubert 07.04.2013 aktualisiert um 21:25:35 Uhr
Goto Top
Hi,

weil das für mich zu tief rein geht in die Skriptsprache.

Hinzu kommt noch das der(die) Ordner eins höher immer ganz anders benannt sind und man hier vermutlich mit variablen arbeiten müsste.

Also wenn du nicht schon ein fast fertiges Script für mich hast ...?! face-smile


Grüße Marcel
certifiedit.net
certifiedit.net 07.04.2013 um 21:31:46 Uhr
Goto Top
Hi,

nein, leider nicht. Allerdings kann ich mir nicht vorstellen, dass dies mehr als eine halbe- eine Stunde kosten würde - selbst ohne großes Vorwissen. Es kommt natürlich noch darauf an, welche Ordnerstruktur vorhanden ist.

Allerdings kann ich dir dafür am sinnvollsten Robocopy und Powershell empfehlen. Sollte alles sein, was du benötigst.
rubberman
rubberman 07.04.2013 um 21:44:05 Uhr
Goto Top
Hallo sirschubert.

mit einem kleinen Script sollte das tatsächlich der Weg des geringsten Widerstandes sein. Aber:
2 Verzeichnisse (beides Netzlaufwerke)
Das Quellverzeichnis sieht folgendermaßen aus (siehe Bild)
OK.
Hinzu kommt noch das der(die) Ordner eins höher immer ganz anders benannt sind ...
Ähm ... Wenn die Verzeichnisse selbst das Root der Netzlaufwerke bilden, was meinst du dann mit "eins höher"?

Kannst du die Struktur noch mal etwas beschreiben?

Grüße
rubberman
sirschubert
sirschubert 08.04.2013 um 12:02:23 Uhr
Goto Top
Hi,

Danke für Eure Antworten!

Hier wie das Verzeichnis "eins" höher ausschaut.
667c32aac0c6e8cf93c0a0cec7bd938c

Jeweils in dem Verzeichnis ist die Ordnerstruktur wie auf dem ersten Bild ganz oben.

Es müsste also in jedem Unterordner unter \\aidacompact\PatExport\ geprüft werden ob es das Verzeichnis "Videos" existiert und wenn ja dann soll der Originalordner kopiert werden zur irgendeinem anderen Netzlaufwerk. Sonst eben überspringen und nächsten Ordner prüfen ... usw.

Grüße Marcel
rubberman
rubberman 08.04.2013 um 21:05:24 Uhr
Goto Top
Hallo sirschubert,

du verwirrst mich immer noch face-surprise
  • Oben redest du von Netzlaufwerken, unten sehe ich einen Netzwerkpfad.
  • Oben möchtest du noch alles außer dem XML File kopiert habe falls das Verzeichnis "Videos" fehlt, unten soll der gesamte Ordner unkopiert bleiben.

Hmm. Um mal ein Stück vorwärts zu kommen, folgende Batchdateien (*.cmd) ...
1. Für den Fall dass nur die XML Datei ausgeschlossen werden soll:
@echo off &setlocal

set "src=\\aidacompact\PatExport"  
set "dest=\\server\share"  
set "check=Videos"  
set "excrobocopy=/XF *.xml"  

for /d %%i in ("%src%\*") do (  
  set "folder=%%~nxi"  
  dir /ad "%%i\%check%" >nul 2>&1 && (  
    set "exc="  
  ) || (
    set "exc=%excrobocopy%"  
  )
  call :robocopy
)

pause
goto :eof

:robocopy
robocopy "%src%\%folder%" "%dest%\%folder%" %exc% /MIR /COPY:DAT /R:10 /W:30 /IPG:1  
goto :eof

2. Für den Fall dass das gesamte Verzeichnis ausgeschlossen werden soll:
@echo off &setlocal

set "src=\\aidacompact\PatExport"  
set "dest=\\server\share"  
set "check=Videos"  

for /d %%i in ("%src%\*") do (  
  set "folder=%%~nxi"  
  dir /ad "%%i\%check%" >nul 2>&1 && (  
    call :robocopy
  )
)

pause
goto :eof

:robocopy
robocopy "%src%\%folder%" "%dest%\%folder%" /MIR /COPY:DAT /R:10 /W:30 /IPG:1  
goto :eof

Grüße
rubberman
sirschubert
sirschubert 10.04.2013 um 00:05:03 Uhr
Goto Top
Hallo Rubbermann,

vielen Dank erst mal für deine Mühe.

Dann habsch mal wohl etwas falsch ausgedrückt.

Also Netzwerkpfad ist eher richtig. Könnte aber auch draus ein Netzlaufwerk machen wenn das leichter zu handhaben wäre für das Script.

Quelle: \\aidacompact\PatExport\OrdnernameXXX\
Ziel: \\nasserver\

Die Daten im Quell Ordner werden ständig aktualisiert und mit neuen Daten gefüllt.

Was das kopieren betrifft so möchte ich das:
wenn unter \\aidacompact\PatExport\OrdnernameXXX\ ein Ordner "Videos" existiert (oder in dem Ordner *.mpg Dateien) dann soll er bitte den Order \OrdnernameXXXX\Videos kopieren zu \\nasserver\OrdnernameXXX\Videos und er soll auch noch die Patient.XML mitkopieren. Sonst eben überspringen und den nächsten Ordner unter \\aidacompact\PatExport prüfen.

Abgesehen davon sollte dann natürlich das Script alle schon bereits kopierten Ordner ins Zielpfad nicht noch mal erneut kopieren sondern bei der nächsten Scriptausführung überspringen.

Lässt sich sowas mit einem Script überhaupt realisieren?

Bei deinen beiden Scripts streiche ich leider die Segel was das verstehen angeht. face-sad

Danke
Marcel
rubberman
rubberman 10.04.2013 um 21:59:20 Uhr
Goto Top
Hallo sirschubert,

dann sollte es etwa so funktionieren:
@echo off &setlocal

set "src=\\aidacompact\PatExport"  
set "dest=\\nasserver"  
set "check=Videos\*.mpg"  
set "filter=*.mpg *.xml"  

for /d %%i in ("%src%\*") do (  
  set "folder=%%~nxi"  
  dir /a "%%i\%check%" >nul 2>&1 && (  
    call :robocopy
  )
)

pause
goto :eof

:robocopy
robocopy "%src%\%folder%" "%dest%\%folder%" %filter% /S /XC /XN /XO /COPY:DAT /R:10 /W:30 /IPG:1  
goto :eof
Grüße
rubberman