Dateien mehrfach umbenennen, Zahlen in Klammern ab (1)?

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Shirkahn
Junior Member
Junior Member
Posts: 7
Joined: 2014-08-05, 07:19 UTC

Dateien mehrfach umbenennen, Zahlen in Klammern ab (1)?

Post by *Shirkahn »

Hallo,
ich möchte mit dem Mehrfach-Umbenenn-Tool mehrere Fotos umbenennen. Dazu nutze ich die EXIF-Daten. Diese haben, durch die schnelle Aufnahmefolge, die gleiche Aufnahmezeit.
Beim umbenennen schlägt das Programm die Nummerierung (2), (3) usw vor.

Ist es möglich, auch der ersten Datei die Zahl (1) zuzuweisen? Damit diese in der Dateiansicht in die richtige Reihenfolge kommen? Windows hat da ja so seine Probleme.

Grüße
User avatar
tuska
Power Member
Power Member
Posts: 3755
Joined: 2007-05-21, 12:17 UTC

Post by *tuska »

So eine Konstellation ergibt sich bei mir nur, wenn ich die Bild-Nr. bei der Umbenennung nicht mitberücksichtige,
d.h. wenn ich die Bild-Nr., zB P1234567 oder IMG_1234 explizit aus dem neuen Dateinamen (MUT: "Neuer Name") entferne.
(Die Aufnahmezeit könnte theoretisch bei allen Bildern gleich sein).

Wenn Du beispielsweise im "Mehrfach-Umbenenn-Tool..." (MUT) als Dateinamen folgenden Wert eingibst:

Code: Select all

[=exif.Originaldatum.YMD]_[=exif.TimeOriginal.h.m.s]_[N]
dann stellt sich meines Erachtens dieses Problem nicht und eine chronologische Reihenfolge wäre ebenfalls gegeben.
Gruß,
Karl
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: Zahlen in Klammern ab (1) ergänzen

Post by *Stefan2 »

Hallo und willkommen, Shirkahn.
Shirkahn wrote: Ist es möglich, auch der ersten Datei die Zahl (1) zuzuweisen?

Nein, das ist im MUT nicht möglich.




Als Nothilfe kann man im Ordner mit den Fotos ein Skript laufen lassen, welches dieses nachholt.



VON:
A.txt
A (2).txt
A (3).txt
Abc.txt
Abc (2).txt
Abc (3).txt

ZU:
A (1).txt
A (2).txt
A (3).txt
Abc (1).txt
Abc (2).txt
Abc (3).txt



zB dieses PowerShell-Skript:

GCI|%{$A=$_.BaseName; IF($A.EndsWith(" (2)")){ $B=$A.SubString(0,$A.length-4);IF(Test-Path($B+$_.Extension)){Ren ($B+$_.Extension)($B+" (1)"+$_.Extension)}}}



Langfassung:

Code: Select all

#Für jede "XXX (2).ext"-Datei, wenn "XXX.ext" existiert, ändere "XXX.ext" zu "XXX (1).ext"

Get-ChildItem | ForEach-Object{
	$CurrentFile=$_.BaseName;
	IF($CurrentFile.EndsWith(" (2)")){ 
		$FirstFile = $CurrentFile.SubString(0,$CurrentFile.length-4);
		IF( Test-Path($FirstFile+$_.Extension) ){
			Ren ($FirstFile + $_.Extension)($FirstFile + " (1)" + $_.Extension)
		}
	}
}




- - -


Mit diesem Befehl kann man sich (etwas angepasst) einen Button erstellen:

Kommando: PowerShell -NoExit
Parameter: GCI|%%{$A=$_.BaseName; IF($A.EndsWith(' (2)')){ $B=$A.SubString(0,$A.length-4);IF(Test-Path($B+$_.Extension)){Ren ($B+$_.Extension)($B+' (1)'+$_.Extension)}}}
Startpfad:
Icon: powershell
Tooltip:



oder einen Benutzerdefinierten Befehl, welchem man auch ein Tastaturkürzel zuweisen kann.



---

Entferne '-NoExit' aus dem Befehl, um das schwarze Fenster sich automatisch schließen zu lassen



- - -

EDIT:
Beispiel hinzugefügt.
Last edited by Stefan2 on 2018-04-09, 19:56 UTC, edited 1 time in total.
Shirkahn
Junior Member
Junior Member
Posts: 7
Joined: 2014-08-05, 07:19 UTC

Post by *Shirkahn »

Hallo,

@tuska
Deine Namensvariante habe ich mir auch schon überlegt. Aber ich wollte die Dateinamen mit Absicht nicht länger machen als nötig.

@Stefan2
Die Idee mit dem PS-Script gefällt mir bisher am besten. Vielen Dank dafür! :-)

Grüße
Post Reply