Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Harlekin256
Junior Member
Junior Member
Posts: 11
Joined: 2020-04-14, 07:52 UTC
Location: LK Bautzen

Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Harlekin256 »

Hallo,

der Thementitel ist leider etwas lang, aber ich möchte das "Problem" kurz beschreiben:

Wir nutzen dienstlich eine Panoramakamera, diese erstellt pro Panorama immer genau 406 Einzelbilder. Leider legt die Kamera die Bilder nicht in separaten Ordnern ab, so dass wir die Einzelbilder im Nachhinein immer wieder aufwändig in Ordner kopieren müssen. Und hier dachte ich, kommt der TC ins Spiel. Gibt es mit TC-Bordmitteln eine Möglichkeit, eine Art Automatismus (auf Knopfdruck) zu erstellen, der mir aus den tausenden Bildern immer Pakete mit 406 Bildern in separate Ordner kopiert?

Praktisch dachte ich es mir so:
linkes Fenster = Speicherkarte der Kamera mit den Einzelbildern

rechtes Fenster = Zielverzeichnis

Erstellen eines Buttons mit einer geeigneten Routine, die immer genau 406 Bilder nimmt und in einen Ordner verschiebt/kopiert.

Ich habe da momentan irgendwie keinen rechten Ansatz zur Lösung...

Vielen Dank schon mal für Lösungsansätze!

Viele Grüße, Tino
User avatar
Stefan2
Power Member
Power Member
Posts: 4155
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Stefan2 »

Hallo, willkommen Tino Harlekin256.
Harlekin256 wrote: 2020-04-14, 08:00 UTC
... der mir aus den tausenden Bildern immer Pakete mit 406 Bildern in separate Ordner kopiert?

Praktisch dachte ich es mir so:
linkes Fenster = Speicherkarte der Kamera mit den Einzelbildern

rechtes Fenster = Zielverzeichnis

Erstellen eines Buttons mit einer geeigneten Routine, die immer genau 406 Bilder nimmt und in einen Ordner verschiebt/kopiert.

Das kann man über die TC-eigenen Parameter und mit einem externen Skript machen (VBS, PowerShell, AutoHotkey).
Aber was bedeutet denn "in einen Ordner (im Zielverzeichnis) verschiebt"? Wie sollen diese Ordner denn heißen? Einfach durchnummerieren?





So etwas in der Art wurde bereits früher mal hier im Forum realisiert:
AutoHotkey: Select a amount of Files down >>> viewtopic.php?p=307215#p307215
Fehlt nur noch das automatische Kopieren.


 
Harlekin256
Junior Member
Junior Member
Posts: 11
Joined: 2020-04-14, 07:52 UTC
Location: LK Bautzen

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Harlekin256 »

Die Zielordner könnte man tatsächlich einfach durchnummerieren, oder bennenen "Pano 1", Pano 2" usw.

Hmm, externes Skript wäre jetzt nicht so toll, da bin ich leider nicht so fit :-(

vg, Tino
User avatar
Stefan2
Power Member
Power Member
Posts: 4155
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Stefan2 »

Das kann ja hier jemand für dich erstellen :D

Wie lauten denn die Dateinamen der Bilder.
Und, gehören da immer welche zusammen, oder werden die einfach von oben her jeweils 406 Stück abgezählt?



 
Harlekin256
Junior Member
Junior Member
Posts: 11
Joined: 2020-04-14, 07:52 UTC
Location: LK Bautzen

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Harlekin256 »

Oh, das wäre wirklich cool :-)

Die Dateinamen der Bilder lauten immer "IMG_1234.jpg", i.d.R. nutzen wir eine leere Speicherkarte, so dass das erste Bild immer "IMG_0001.jpg" heißt. Es gehören immer 406 nacheinander folgende (nach Dateiname sortierte) Bilder zusammen. Da wir die Ordner danach immer nach dem Ort des Panoramas umbenennen, können die neu erstellten Ordner ruhig wieder "Pano 1" usw. heißen.

vg, Tino
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48079
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *ghisler(Author) »

Das sollte eigentlich mit dem Mehfach-Umbenenntool gehen. Dieses kann aber nur umbenennen:
1. Kopieren sie wenn nötig alle Bilder in ein neues Verzeichnis, wo diese aufgeteilt werden sollen
2. Sortieren Sie sie nach Namen
3. Markieren Sie alle (Strg+A)
4. Öffnen Sie das Mehrfach-Umbenenntool
5. Geben Sie folgenden Umbenenntext an anstelle von [N]:
Ordner[C+1/406:2]\[N]
6. Überprüfen Sie in der Vorschau, ob alles wie gewünscht erscheint
7. Klicken Sie auf Start!
8. Sollten sie später merken, dass etwas nicht richtig war, können Sie das Umbenenntool mit einer beliebigen Datei öffnen und auf "Rückgängig" klicken, sofern Sie TC inzwischen nicht geschlossen hatten

Erklärung zum String Ordner[C+1/406:2]\[N]
Ordner -> optional, wird 1:1 in den Zielnamen übernommen.
C -> Zähler
1/406 -> nur alle 406 Dateien um 1 erhöhen
:2 -> Breite 2, also 01, 02 usw. können Sie auch weglassen oder mehr Stellen angeben
\ -> Erzeugt verzeichnis
[N] Originaldateinamen übernehmen
Author of Total Commander
https://www.ghisler.com
Harlekin256
Junior Member
Junior Member
Posts: 11
Joined: 2020-04-14, 07:52 UTC
Location: LK Bautzen

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Harlekin256 »

Hallo Herr Ghisler,

ich kann nur sagen: VIELEN DANK!!!!

DAS ist genau, was ich gesucht habe. Ich nutze den TC nun schon seit vielen Jahren, aber dass man im Umbenennen-Tool auch Ordner erzeugen kann, war mir bis heute unbekannt. Man lernt nie aus :-)

Problem gelöst, Danke auch an alle anderen Schreiber!

Viele Grüße
User avatar
Stefan2
Power Member
Power Member
Posts: 4155
Joined: 2007-09-13, 22:20 UTC
Location: Europa

VBScript: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Stefan2 »

ghisler(Author) wrote: 2020-04-14, 09:15 UTC ...
Harlekin256 wrote: 2020-04-14, 10:12 UTC Problem gelöst, Danke auch an alle anderen Schreiber!

Klasse, hier wird ihnen geholfen :D





Mein Beispielsskript in VisualBasicScript, v001

Code: Select all

REM Stefan 2020-04-14 Tue 11:42:46
REM https://ghisler.ch/board/viewtopic.php?p=383317#p383317


REM Purpose:
REM Nimm jeweils die Menge von "iAmountOfFilesToHandle" Dateien aus Ordner "strFolderLeft", 
REM erstelle in Ordner "strFolderRight" neue Ordner mit Namen "strTargetFolderName" plus Nummerierung
REM und kopiere die Dateien dort rein.



REM U S E R   S E T T I N G S
strFolderLeft = "c:\Temp\QUELLE\ListOfFiles\"
strFolderRight= "f:\T\ZIEL\"
strTargetFolderName = "\Pano_"
iAmountOfFilesToHandle=406
iFileSTARTNr = 1

'// #################################################
REM  T H E   C O D E
Set FSO = CreateObject("Scripting.FileSystemObject")

If NOT FSO.FolderExists(strFolderLeft) Then 
	MsgBox "Folder " & strFolderLeft & " not found?!?!?"
	WScript.Quit
End If
If NOT FSO.FolderExists(strFolderRight) Then 
	MsgBox "Folder " & strFolderRight & " not found?!?!?"
	WScript.Quit
End If

REM init
iFileNr = Right("0000" & iFileSTARTNr,4)
bCopyOverwrite = False
iFolderCount = 1

iAnzahlDateienInQuelle = FSO.GetFolder(strFolderLeft).Files.Count
For xFileS=1 To iAnzahlDateienInQuelle / iAmountOfFilesToHandle +1

		If FSO.FileExists(strFolderLeft & "\" & "IMG_" & iFileNr & ".jpg") Then 
			strTargetFolder = strFolderRight & strTargetFoldername & iFolderCount 
			If NOT FSO.FolderExists(strTargetFolder) Then FSO.CreateFolder(strTargetFolder)
			
			For x=0 to iAmountOfFilesToHandle-1
				strImageFile =  "IMG_" & Right("0000" & iFileNr+x,4) & ".jpg"
				If FSO.FileExists(strFolderLeft &"\"& strImageFile) Then 
					If Not FSO.FileExists(strTargetFolder &"\"& strImageFile) Then 
						FSO.CopyFile strFolderLeft & "\" & strImageFile, strTargetFolder &"\"& strImageFile ,bCopyOverwrite
					End If
				Else
					MsgBox iFileNr+x-1 & " files and " & iFolderCount & " folders done."&vbLF&vbLF _
							&"No more file left?"&vbLF&"Not found: "&strImageFile&vbLF& "ALL DONE?"
					WScript.Quit 
				End If
			Next

			'next lot
			iFileNr = Right("0000" & iFileNr+x,4)
			Msgbox  iFileNr-1 & " files and " & iFolderCount & " folders done."
			iFolderCount = iFolderCount + 1
		Else
			MsgBox "ERROR: File not found: " & strImageFile
			WScript.Quit	
		End If

Next 'For xFileS


'#############
'Powershell, Erstelle 1000 Test-Dateien:
'1..1000|%{new-item ("IMG_{0:D4}.jpg" -f $_) -itemtype file}



Mein Beispielsskript in VisualBasicScript, v002

Code: Select all

REM v001: Stefan 2020-04-14 Tue 11:42:46	; initial release
REM v002: Stefan 2020-04-15 Wed 08:50:20	; cleaned-up code
REM Found at: https://ghisler.ch/board/viewtopic.php?p=383317#p383317


REM P U R P O S E:
REM VisualbasiScript to copy a batch of files to another folder. No TC need at all.
REM Nimm jeweils die Menge von "iAmountOfFilesToHandle" Dateien 
REM aus Ordner "strFolderSource", 
REM erstelle in Ordner "strFolderTarget" neue Ordner 
REM mit Namen "strFolderTargetNEWfolder" plus Nummerierung 1,2,3,...
REM und kopiere die Dateien aus Source dort rein.

'Powershell, Erstelle 3245 Test-Dateien:
'1..3245|%{new-item ("IMG_{0:D4}.jpg" -f $_) -itemtype file}



REM U S E R   S E T T I N G S

'Folder with files to copy:
strFolderSource = "c:\Temp\QUELLE\ListOfFiles\"
'Folder to copy to:
strFolderTarget= "f:\T\ZIEL\panotest\"
'Base name of new folder in strFolderTarget for each lot of iAmountOfFilesToHandle:
strFolderTargetNEWfolder = "\Pano_"
'Amount of files to copy to new folder:
iAmountOfFilesToHandle=406
'Filename-template:
sFileNameFront = "IMG_"
iFileSTARTNr = 1	'//becomes "0001"
sFileNameEnding =""
sFileNameExtension =".jpg"
'//FileName example: "IMG_0001.jpg"

'Show MsgBox:
bShowMessages = True



'// #################################################
REM  T H E   C O D E
Set FSO = CreateObject("Scripting.FileSystemObject")

If NOT FSO.FolderExists(strFolderSource) Then 
	MsgBox "Folder " & strFolderSource & " not found?!?!?"
	WScript.Quit
End If
If NOT FSO.FolderExists(strFolderTarget) Then 
	MsgBox "Folder " & strFolderTarget & " not found?!?!?"
	WScript.Quit
End If

REM init
iFileNr = Right("0000" & iFileSTARTNr,4)
bOverwriteExistingFilesOnFileCopy = False
iFolderCount = 1

REM
iAnzahlDateienInQuelle = FSO.GetFolder(strFolderSource).Files.Count
For xFileS=1 To iAnzahlDateienInQuelle / iAmountOfFilesToHandle +1

		If FSO.FileExists(strFolderSource & "\" & sFileNameFront & iFileNr & sFileNameEnding & sFileNameExtension) Then 
			strTargetFolder = strFolderTarget & strFolderTargetNEWfolder & iFolderCount 
			If NOT FSO.FolderExists(strTargetFolder) Then FSO.CreateFolder(strTargetFolder)
			
			For x=0 to iAmountOfFilesToHandle-1
				strImageFile =  sFileNameFront & Right("0000" & iFileNr+x,4) & sFileNameEnding & sFileNameExtension
				If FSO.FileExists(strFolderSource &"\"& strImageFile) Then 
					If Not FSO.FileExists(strTargetFolder &"\"& strImageFile) Then 
						FSO.CopyFile strFolderSource & "\" & strImageFile, strTargetFolder &"\"& strImageFile ,bOverwriteExistingFilesOnFileCopy
					End If
				Else
					MsgBox iFileNr+x-1 & " files // " & iFolderCount & " folders done."&vbLF&vbLF _
							&"No more file left?"&vbLF&"Not found: "&strImageFile&vbLF& "ALL DONE?"
					WScript.Quit 
				End If
			Next

			'init for next lot:
			iFileNr = Right("0000" & iFileNr+x,4)
			If(bShowMessages) Then Msgbox  iFileNr-1 & " files // " & iFolderCount & " folders done."
			iFolderCount = iFolderCount + 1
		Else
			MsgBox "ERROR: File not found: " & strImageFile
			WScript.Quit	
		End If

Next 'For xFileS
'#############


Hier noch ohne die Zuhilfenahme der TC-Parameter, sondern mit im Skript fest angegebene Pfade.

 
User avatar
tbeu
Power Member
Power Member
Posts: 1336
Joined: 2003-07-04, 07:52 UTC
Location: Germany
Contact:

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *tbeu »

Man kann mit dem Mover-Plugin auch eine vorgegebene Anzahl von Bildern in ein Zielverzeichnis verschieben.

Image: https://tbeu.de/forum/mover.png
TC plugins: Autodesk 3ds Max / Inventor / Revit Preview, FileInDir, ImageMetaData (JPG Comment/EXIF/IPTC/XMP), MATLAB MAT-file Viewer, Mover, SetFolderDate, Solid Edge Preview, Zip2Zero and more
User avatar
Frizz
Member
Member
Posts: 162
Joined: 2011-06-18, 12:20 UTC

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Frizz »

Im Dateimenue Packer anklicken, dann erscheint die Anwendungsauswahl.
Diese wird durch das plugin um den auswählbaren Punkt: Separate ergänzt.
Nach OK erscheint die Auswahl des Plugins mit 5 Wahlmöglichkeiten wie zum Beispiel "Separieren nach Jahr - Monat und Tag.
Funktioniert prima, dafür --- Herzlichen--- Dank.
Coronalen Gruß Frizz
Harlekin256
Junior Member
Junior Member
Posts: 11
Joined: 2020-04-14, 07:52 UTC
Location: LK Bautzen

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Harlekin256 »

Ich krame das Thema noch mal hervor...

Kann man die Funktion aus dem Umbenennen-Tool (Ordner[C+1/406:2]\[N]) auch auf einen Button legen?
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1013
Joined: 2004-07-29, 11:00 UTC

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *ZoSTeR »

Harlekin256 wrote: 2024-01-26, 15:05 UTC Kann man die Funktion aus dem Umbenennen-Tool (Ordner[C+1/406:2]\[N]) auch auf einen Button legen?
Ja, kann man:

- MRT aufrufen
- Einstellungen vornehmen
- F2 bzw rechts mittig "Einstellungen speichern" zb als "MRT_Ordner406"
- Button anlegen mit:

Befehl:
MULTIRENAME

Parameter:
MRT_Ordner406
Fla$her
Power Member
Power Member
Posts: 2299
Joined: 2020-01-18, 04:03 UTC

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Fla$her »

ZoSTeR wrote: 2024-01-26, 21:43 UTC Befehl:
MULTIRENAME

Parameter:
MRT_Ordner406
Befehl: MULTIRENAME==MRT_Ordner406
Overquoting is evil! 👎
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48079
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *ghisler(Author) »

Warnung: Wenn man es mit == angibt wird der Befehl sofort ohne Rückfrage ausgeführt!
Author of Total Commander
https://www.ghisler.com
Harlekin256
Junior Member
Junior Member
Posts: 11
Joined: 2020-04-14, 07:52 UTC
Location: LK Bautzen

Re: Kopieren einer vorgegebenen Anzahl von Bildern in neue Ordner

Post by *Harlekin256 »

ok, vielen Dank. Das hilft mir weiter!
Post Reply