WinFuture-Forum.de: Batch für Bildersuche nötig? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Batch für Bildersuche nötig?


#1 Mitglied ist offline   lkz 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 09. Mai 20
  • Reputation: 0

geschrieben 09. Mai 2020 - 15:47

Hallo,
ich möchte Bilddateien aus einer Ordnerstruktur in einen Ordner kopieren.
Für alle Bilddateien eine Stapelverarbeitung durchführen.
Dann die Bilder wieder zurückkopieren.
Ich habe ewig herumrecherchiert, unten eine m. M. n. mögliche Lösung.
VG

Dieser Beitrag wurde von lkz bearbeitet: 10. Mai 2020 - 09:30

0

Anzeige



#2 Mitglied ist offline   Stef4n 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.216
  • Beigetreten: 20. August 18
  • Reputation: 251
  • Geschlecht:Männlich
  • Wohnort:RLP ~Mainz
  • Interessen:pc

geschrieben 09. Mai 2020 - 21:05

Welche Stapelverarbeitung möchtest du denn durchführen?

Selbst wenn du aus zB Ordner A, B und C alle Bild Dateien nach Ordner D kopierst um dann dort die Stapelverabeitung durchführen zu können, weisst du ja dann nicht mehr in welche Ordner die Bilder wieder zurück müssen.

Mit Irfan View kannst du Stapelbearbeitung durchführen. Ich nutze das um alle meine mit dem Handy geschossenen Bilder alle paar Monate zu verkleinern. Aber da habe ich dann auch alle Bilder in einem Ordner und läuft einwandfrei durch.
Vielleicht hast du damit aber auch die Möglichkeit Ordner übergreifend zu arbeiten. Dann könntest du dir die Kopiererei sparen.
... aber bitte vorher ein Backup machen! ;-)
0

#3 Mitglied ist offline   lkz 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 09. Mai 20
  • Reputation: 0

geschrieben 10. Mai 2020 - 09:32

Danke für die Antwort.
Habe es jetzt so gelöst:

Programm zum Rauskopieren
Option Explicit
Dim aktPath
Dim Ordner
Dim fso
Dim ConfigPath
Dim item
Dim fsoFile
Dim types
Dim Fld
Dim Folder
Dim fileName

' Alle relevanten (Bild-)Dateitypen
types = Array("JPG", "JPEG", "PNG", "BMP", "TIF", "TIFF", "GIF", "PDF")
aktPath = Replace(WScript.ScriptFullName ,WScript.ScriptName, vbNullString)
ConfigPath = aktPath & "cop\"

' Wenn der Ordner noch nicht existiert, soll er erstellt werden
set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(ConfigPath)Then
Set Ordner = fso.GetFolder(ConfigPath)
Else Set Ordner = fso.CreateFolder(ConfigPath)
End if

' Verzeichnisse rekursiv nach den Bilddateitypen durchsuchen
ProcessFolder aktPath
	
' Rekursive Methode zum Durchsuchen 
Sub ProcessFolder (Foldername)
	Set Folder=FSO.GetFolder(Foldername)
  For Each Fld in Folder.SubFolders
    ProcessFolder Fld
  Next
  For Each fileName In Folder.Files
	set fsoFile = fso.getFile(fileName)
    For Each item in types
		
			If UCase(fso.GetExtensionName(fileName.Name)) = item Then
				fso.CopyFile fsoFile.Path, ConfigPath, True 
			End If
		Next
  Next
End Sub



Programm zum wieder Reinkopieren
Option Explicit
Dim aktPath
Dim fso
Dim ConfigPath
Dim Fld
Dim Folder
Dim FileName
Dim imgFiles
Dim imgFile
Dim folderFileName
Dim folderFile
Dim imgFolder
Dim File

' Alle relevanten Bilddateitypen
aktPath = Replace(WScript.ScriptFullName ,WScript.ScriptName, vbNullString)
ConfigPath = aktPath & "cop\"

' Wenn der Ordner noch nicht existiert, soll er erstellt werden
set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(ConfigPath) Then
	set imgFolder = fso.getFolder(ConfigPath)
	
	Set imgFiles = imgFolder.Files


	For Each imgFile in imgFiles
		ProcessFolder aktPath, imgFile	
	Next	
Else
	WScript.Echo("Im aktuellen Verzeichnis existiert kein Ordner namens cop")
End If


	
' Rekursive Methode zum Durchsuchen 
Sub ProcessFolder (Foldername, Filename)
	Set Folder=fso.GetFolder(Foldername)
	Set File = fso.getFile(Filename)
	
	For Each Fld in Folder.SubFolders
		ProcessFolder Fld, Filename
	Next
	
	For Each folderFileName In Folder.Files
		set folderFile = fso.getFile(folderFileName)
    		
		If (folderFile.Name = File.Name) Then
			File.Name = File.GetBaseName & "_bearbeitet" & File.getExtensionName
			fso.CopyFile File.Path, folderFile.Path, True 
		End If
	Next  
End Sub


Dieser Beitrag wurde von lkz bearbeitet: 10. Mai 2020 - 09:33

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0