Jump to content

Batch-Skript zum Löschen namensgleicher Dateien aus zweitem Ordner (Dateiendung verschieden)?


Recommended Posts

Hallo zusammen,

 

ich denke, das Problem ist relativ einfach, aber ich konnte keine schnelle Lösung dafür finden...hat jemand eine Idee?

Also: Ich mache Bilder sowohl im RAW- als auch im JPG-Format und kopiere sie in Ordner, die wie folgt strukturiert sind:
(Betriebssystem: Windows10)
D:\20210829\arw
D:\20210829\jpg


Die Dateien in beiden Ordnern haben identische Namen, der einzige Unterschied ist ihre Erweiterung - jpg VS arw.
Dann beginne ich meine Auswahl und lösche alle JPGs, die ich nicht mehr benötige - und nun mein Problem im Workflow: Wie kann ich die entsprechenden ARW-Dateien im 2. Ordner einfach loswerden?

Kennt jemand ein kostenloses Programm, das diesen Job macht?
Vielleicht hat jemand ein Batch-Skript (oder kann eines erstellen) für diesen Zweck (oder mit PowerShell??) - ich kann mir nur vorstellen, dass sowas funktionieren würde, kenn mich aber mit Scripting nicht wirklich aus, leider...
Möglicherweise eine Batch-Datei, die ich einfach in den jeweiligen Hauptordner kopieren und dort ausführen könnte -also zb D:\20210829\ - die nur die beiden Unterordner \jpg und \arw scannen würde, damit man im Batch nicht für jeden Durchlauf die gesamte Ordnerstruktur ändern muss....

 

Freue mich über Ideen und bin für jede Hilfe dankbar!

LG Markus

Link to post

GCI D:\20210829\jpg | % { DEL "D:\20210829\arw\$($_.BaseName).arw" -EA Si }

 

Sorry, konnte nicht widerstehen :-) In lang:

GCI = Get-Childitem (aka "dir")

% ist Foreach - eine Schleife, die durch alle Ergebnisse von GCI durchläuft.

DEL ist klar - steht für Remove-Item

$_.Basename ist der Dateiname ohne Pfad und ohne Endung - wobei in $_ das jeweilige Item aus GCI steht, also immer eine einzelne Datei

-EA ist "ErrorAction"

Si ist "SilentlyContinue" - mach weiter, wenn's schiefgeht

 

Und ja, für sowas gibt's GUI-Tools noch und nöcher, die machen aber alle keinen Spaß.

  • Like 1
Link to post

Danke für den Input, Martin!

Sieht recht elegant aus, macht aber bei mir leider etwas anderes...und zwar werden genau alle Files aus dem ARW-Ordner gelöscht, die im JPG-Ordner vorhanden sind...also genau andersrum.

Vielleicht hatte ich mich unklar ausgedrückt: Es sollen am Ende in beiden Ordnern genau dieselben Dateien übrig bleiben, einmal die JPGs (die eben von mir dezimiert wurden und so die Vorgabe für die Löschaktion darstellen), im anderen Ordner dieselben Bilder im Format ARW.

 

Außerdem: Die Ordnerstruktur war nur ein Beispiel - manchmal ist es länger und komplexer, Datum + Name...zB - D:\20210822_die Reise nach Absurdistan - im schönen Abendlicht\  ;-) oder so....also durchaus mit Leerzeichen, Umlauten etc... dann die beiden Unterordner JPG und ARW.

Ich hab keine Ahnung wie powershell damit umgehen würde, deshalb war auch meine Gedanke, wenn man ein Skript od Batch-Skript von innerhalb des Hauptordners startet, dass man sich damit das jeweilige Korrigieren der Syntax ersparen würde.

(Oder gerade kommt mir noch ein anderer Einfall: Wenn das (Batch)Skript den Hauptordner zb D:\ nach allen Unterordnern mit der Systematik D:\DATUM_irgendeineZeichenkette\ durchsucht - wobei DATUM immer eine 8-stellige Zahl beginnend mit 20 ist - und dann diese vergleichende Löschoperation in allen jeweiligen JPG bzw ARW-Ordnern durchführt, dann würde man sich das explizite Referenzieren auf einen bestimmten Ordner ersparen und das ganz nebenbei gleich für alle zu behandelnden Ordner lösen :-) vielleicht ist das zu kompliziert, keine Ahnung....)

 

LG Markus

Link to post

Geht alles, aber fertige Skripts schreibt hier nur @BOfH_666 :aetsch3:

Rekursiv: "-recurse"

Wenn der Dateiname selbst eindeutig ist über alle Unterordner hinweg und wenn in \jpg\ nur JPG liegen, deren Pendant in \arw\ vorhanden sein muß - und ohne Gewähr!

$Ref = ( GCI "D:\20210829\jpg" -re ).BaseName; GCI "D:\20210829\arw" -re | % { If ( $Ref -notcontains $_.BaseName ) { DEL $_ } }

Wenn Dir die Hürde zum Skripten zu hoch ist, wäre "Windows Mass Renamer" vermutlich der richtige Suchbegriff im Browser.

Edited by daabm
Link to post
vor 16 Stunden schrieb MurdocX:

Leg was vor, dann können wir helfen. Jedem ein Skript schreiben geht ja nicht

So ist es.

Wir bieten gerne Hilfe zur Selbsthilfe, wenn möglich.

Ein gewisser Lerneffekt sollte sich beim Fragesteller einstellen, damit man befähigt ist zukünftig selbst Skripte dieser Art zu erstellen.

Wir sind keine "Skriptierstube", wir können tatsächlich nicht jedem sein custom skript schreiben.

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...