reinsala
Goto Top

Dateien anhand von TAGS in deren Einstellungen syncronisieren

Suche ein Tool welches wirklich synchronisiert was ich ausgewählt habe und nicht zum xten mal in diverse SUB SUB Verzeichnissen kopieren muss

Denke eine gängige Praxis ist das Synchronisieren von Bildern und Dateien zwischen einem PC, zum Laptop, zum Tablett und Handy.

Diese Synchronisation sei es Dropbox, Sugarsync oder hunderte andere Sync tools können immer Ordnerinhalte abgleichen. Das hat zu Folge man weicht von der Struktur wie die Ordner angelegt sind ab oder man kopiert unzählige Dateien in einen Ordner der wieder abgeglichen wird usw.

Meine Idee:
Nahezu jede Datei hat die sogenannten EXIF Informationen. Wenn z.B. in dem Feld TAG ein bestimmtes Schlüsselwort gefunden wird, kann ich im Windows explorer binnen Sekunden eine erstklassigen Filter nach TAG's setzen.
Wieso nicht ein Tag z.B. "SYNC" eintragen und dann alle die den Eintrag Sync haben wird mit dem Tablett und Handy oder anderen Verzeichnissen abgeglichen.

Eine Verfeinerung über SYNC1 oder SYNCTABLET ist nur ein weitere Möglichkeit.
Somit würden alle Dateien in Ihrem ursprünglichen Ort bleiben und zentral von Dort verwaltet werden .

Wer kennt ein Programm / Tool das diese Aufgaben beherrscht ? Danke

Content-Key: 187556

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

Printed on: April 25, 2024 at 11:04 o'clock

Member: pieh-ejdsch
pieh-ejdsch Jul 06, 2012, updated at Jul 08, 2012 at 10:33:22 (UTC)
Goto Top
moin reinsala,

Tools fürs exif Daten und Dateiegenschaften auslesen gibt es genug(z.B. jhead.exe, oder über vbs).

in einem reinen Batch Quick'n'Dirty ohne extra Tools "in etwa" so.
@echo off
setlocal

 rem fuer Dateien in Ordnern
set "ReadFileProperties1=Corbis"  
set SyncOrdner1="C:\Users\Public\Pictures\Sample Pictures\"  
set "SyncDatei1=*.jpg"  

 rem fuer Dateien in Unterordern
set "ReadFileProperties2=Jackson"  
set SyncUnterOrdner2="D:\Musik\M*"  
set "SyncUnterDatei2=*.mp3"  

 rem zu syncronisieren mit:
set "Ziel=D:\Auserhalb\"  

 rem Option "L" zeigt nur was es tun wuerde, wenn es nicht mehr als Option da ist  
set "xcopyZeigen=/LF"  

 rem Einstellungen Ende

set /a Copied=0
set "check=%ReadFileProperties1%"  
call :NextCheck
echo(
echo Suche nach %OrigString%
echo(
for %%i in (%SyncOrdner1%) do >&3 (<nul set /p "=%%~dpi") ^  
  &(set NL=1
    (for /f "delims=" %%i in (' 2^>nul findstr /mirc:"%Newstring%" "%%~dpi%SyncDatei1%" ') do >&3 (  
      if defined NL set "NL=" &echo() &xcopy %xcopyZeigen% /d "%%~i" "%Ziel%" |find /v "Datei(en) kopiert" &&set /a Copied+=1 )^  
    || (for /f "delims=" %%i in (' 2^>nul findstr /mic:"%OrigString%" "%%~dpi%SyncDatei1%" ') do >&3 (  
      if defined NL set "NL=" &echo() &xcopy %xcopyZeigen% /d "%%~i" "%Ziel%" |find /v "Datei(en) kopiert" &&set /a Copied+=1 )^  
    || echo ... Nichts gefunden.
  )

set "Check=%ReadFileProperties2%"  
call :NextCheck
echo(
echo Suche nach %OrigString%
echo(

for /d %%i in (%SyncUnterOrdner2%) do set "SubPath=" &pushD "%%~dpi" &call :SubFolders "%%~nxi" &popD  
echo(
echo %Copied% Datei^(en^) kopiert
pause
exit /b 0

:SubFolders
for /d %%i in (%1) do  set "subPath=%subPath%%%~i\"^  
  &>&3 (<nul set /p "=%subPath%%%~i\") &(set NL=1  
    (for /f "delims=" %%j in (' 2^>nul findstr /mirc:"%Newstring%" "%%~i\%SyncUnterDatei2%" ') do >&3 (  
      if defined NL set "NL=" &echo() &xcopy %xcopyZeigen% /d "%subPath%%%~j" "%Ziel%%subPath%%%~i\" |find /v "Datei(en) kopiert" &&set /a Copied+=1 )^  
    ||  (for /f "delims=" %%j in (' 2^>nul findstr /mic:"%OrigString%" "%%~i\%SyncUnterDatei2%" ') do >&3 (  
      if defined NL set "NL=" &echo() &xcopy %xcopyZeigen% /d "%subPath%%%~j" "%Ziel%%subPath%%%~i\" |find /v "Datei(en) kopiert" &&set /a Copied+=1 )^  
    || echo ... Nichts gefunden.
  ) & pushD "%%~i" &&call :Subfolders * &&popD &if not defined NL echo(  
goto :eof


:NextCheck
set "NewString="  
set "OrigString=%Check%"  
:check
if not defined check goto :eof
set "NewString=%NewString%%check:~0,1%."  
set "check=%check:~1%"  
goto :check
goto :eof

[Edit]
Code etwas Komplettiert und Kommentiert.
[/Edit]

Gruß Phil