1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

via batch vergleichen und löschen

Discussion in 'Programmieren' started by aufwiedersehen, Feb 25, 2013.

Thread Status:
Not open for further replies.
  1. Hallo liebes Forum,

    habe auf einer Festpallte ca. 2000 Bilder (alles .jpg) in einem Ordner sitzen, sagen wir mal in G:\images\
    Fast alle Bilder sind unter Zahlen gespeichert, also z.B. 1234.jpg, jedoch sind auch eingie Namen mit dabei.
    Nun habe ich eine Excel Tabelle, die mit Zahlen gefüllt ist, wie z.B. 1234.jpg

    Folgendes möchte ich via Batch erreichen:

    wenn die zahl.jpg der Excel Tabelle mit der Bezeichnung des Bildes (zahl.jpg) auf der Festplatte übereinstimmt, dann soll nichts passieren. Alle anderen Bilder, die dann noch in G:\images sind und NICHT verglichen wurden (da ja nicht in der Excel vorhanden) sollen dann gelöscht werden.

    Hoffentlich habe ich alles verständlich erklärt - danke Euch :rolleyes:

    aufwiedersehen
     
  2. Hallo

    Da ich ein vorsichtiger Mensch bin wähl ich mal die Lösung mit Verschieben. Nachfolgend erst mal der Batch.


    Code:
    rem
    if not exist g:\Images_nl md g:\Images_nl
    if not exist g:\Images_l md g:\Images_l
    for /F "tokens=1 delims=" %%o in (g:\Images\Exjpgliste.csv) do (
    if exist %%o ( move g:\Images\%%o g:\Images_nl\ )
    )
    move g:\Images\*.jpg g:\Images_l\
    rem
    

    Als allererstes machst du mal von der Exceldatei eine Textdatei. Ich hab mal den Namen Exjpgliste.csv gewählt. Vorraussetzung für den Batch ist nur eine Spalte in der Exceldatei mit den Jpgs halt. Bitte vor den Speichern als Textdatei darauf achten.

    So nun zum Batch. Zuerst werden die neuen Ordner g:\Images_nl und g:\Images_l angelegt. _nl steht für nicht zu löschende Bilder und _l zu löschende Bilder. Dann werden die Dateien überprüft mit der Exjpgliste.csv, ob sie im Ordner existieren und die Bilder in die entsprechenden neuen Ordner verschoben. Wenn alles erledigt ist dürfte dann im Ordner g:\Images keine Bilder mehr sein. So jetzt kann man ja im "Windows Explorer" noch in die entsprechnden Ordner mal schauen, ob alles so in etwa richtig gelaufen ist. Evtl halt Anzahl der Dateien mit Excelliste vergleichen. Und man kann ja dann von Hand im "Windows Explorer" die entsprechenden Ordner löschen, die man nicht mehr braucht. bzw. den Ordner mit den Bildern, die man behalten will wieder umbenennen in g:\Images . So das ist mir einfach die sichere Methode. Evtl halt die Pfadangaben bzw Dateinamen anpassen.

    Gruß
     
  3. hallo silbersurfer,

    *daumenhoch*

    perfekt ! läuft perfekt und korrekt durch !

    DANKE :bet:
     
Thread Status:
Not open for further replies.

Share This Page