Verzeichnisabgleich

Ein fotografierender Kollege bat mich, ihm eine Lösung zu schreiben, mit der er Verzeichnisse abgleichen kann.
Hintergrund:
Die Bilder kommen quasi im Doppelpack auf seine Platte. Einmal als JPG-File (platzsparend) und zum anderen als RAW-Datei, die enorm viel Platz braucht.
Die Namen der Dateien sinid identisch, nur der Suffix ist unterschiedlich.
Für jeden Tag, an dem er fotografiert, wird von ein Ordner angelegt, der zwei Unterordner JPG und NEF beinhaltet.
Die JPG-Bilder werden von ihm begutachtet und gelöscht, falls er sie nicht gut findet. Damit hat er aber noch die NEF-Dateien auf der Platte.
Und die sollen vom Script gelöscht werden.

Mein Script liest also den NEF-Ordner aus und durchsucht dann den JPG-Ordner nach den zugehörigen JPG's.
Sind die nicht vorhanden, wird auch das verwaiste NEF-File gelöscht.


 

option explicit
on error resume next

dim destpath, jpgpath, nefpath
dim FSO, wshell, fa,f,i, filename

set FSO = CreateObject("Scripting.FileSystemObject")
set wshell = CreateObject("WScript.Shell")

fa = Array("jpg","nef")


folderauswahl

if fso.FolderExists (destpath & "\" & fa(0)) then set jpgpath = fso.getfolder(destpath & "\" & fa(0)) else wscript.echo "FEHLER  - " & fa(0)&" -Ordner nicht vorhanden!!!" & wscript.quit
if fso.FolderExists (destpath & "\" & fa(1)) then set nefpath = fso.getfolder(destpath & "\" & fa(1)) else wscript.echo "FEHLER  - " & fa(1)&" -Ordner nicht vorhanden!!!" & wscript.quit

abgleich_lesen


Sub FolderAuswahl
  Const WINDOW_HANDLE = 0
  Const NO_OPTIONS = 0
  Const OverWriteFiles = True
dim objShell :  Set objShell = CreateObject("Shell.Application")
dim objFolder :  Set objFolder = objShell.BrowseForFolder (WINDOW_HANDLE, "Foto-Ordner auswählen:", NO_OPTIONS, "C:\ ")
dim objFolderItem :  Set objFolderItem = objFolder.Self
  destPath = objFolderItem.Path
End Sub


sub abgleich_lesen

for each i in nefpath.files
filename = fso.getbasename(i)
if not fso.FileExists(jpgpath & "\" & filename &".jpg") then
fso.DeleteFile nefpath & "\" & filename & ".nef"
end if
next

end sub

  • Donnerstag, 22 März 2018

Leave a comment

You are commenting as guest.