Dateien umbenennen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
OLLI_S
Junior Member
Junior Member
Posts: 70
Joined: 2003-08-04, 07:43 UTC
Location: Muenchen

Dateien umbenennen

Post by *OLLI_S »

Liebe Community,

ich arbeite beruflich sehr viel mit Screen Shots und habe diese durchnummeriert.

Das Schreenshot Programm das ich verwende (Screenshot Captor) legt für jeden Screen Shot eine PNG und eine OBJECTS Datei an.
In der OBJECTS Datei ist der ursprüngliche Screen Shot gespeichert, aber auch alle Objekte wie Rahmen, Texte, Pfeile und andere Bilder.
Damit kann ich die Objekte auch nachträglich verändern oder löschen.

Ich habe also beispielsweise die folgenden beiden Screen Shots:
ABC_01 - Beschreibung Bild 1.png
ABC_01 - Beschreibung Bild 1.png.objects
ABC_02 - Beschreibung Bild 2.png
ABC_02 - Beschreibung Bild 2.png.objects

Im aktuellen Fall habe ich 56 Screen Shots.
Die ersten drei Buchstaben sind immer gleich.
Dann folgt die Nummerierung mit führender 0.
Anschließend die Beschreibung.

Ich habe öfters das Problem, dass zwischen den bestehenden Nummern neue Screen Shots dazu kommen.
Im aktuellen Beispiel nach der Nummer 6 und nach der Nummer 7 ein neuer.

Wie kann ich im Total Commander sagen:
Erhöhe die Nummerierung aller markierten Dateien um 1, wobei die Nummerierung an der 6. Stelle steht.
Bitte daran denken, dass jede Nummer 2x vorhanden ist.
Total Commander müsste also die 6. Stelle aller markierten Dateien auslesen und die Zahl an dieser Stelle um 1 erhöhen.

Ist das im Total Commander überhaupt möglich?

Gruß

OLLI
User avatar
GammelBert
Member
Member
Posts: 109
Joined: 2007-02-21, 18:42 UTC
Location: Germany

Post by *GammelBert »

Ich kenne keine Möglichkeit, das mit TC zu schaffen. Du könntest dir allerdings ein Script schreiben, das die selektierten Dateinen von TC als Parameter übergeben bekommt.
Last edited by GammelBert on 2010-10-04, 10:27 UTC, edited 1 time in total.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3894
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Automatisches Erhöhen kenne ich auch nicht, aber vielleicht hilft das ein wenig:

- Liste nach Name sortieren.
- Cursor auf die Datei bringen, die gerade noch ihre Nummer behalten soll (Typ JPG)
- Alt-Num + betätigen
=> alle Dateien mit der gleichen Dateiendung sind markiert

- Umsch Strg Pos1 betätigen
=> die oberen Dateien sind abgewählt

- Strg M betätigen und die Umbenennmaske [N1-3][C][N7-] eintragen
- Anzahl Stellen "2"
- Wert für "Starten bei" nach Bedarf


Das Gleiche nochmal für Typ "objects " ...
#5767 Personal license
OLLI_S
Junior Member
Junior Member
Posts: 70
Joined: 2003-08-04, 07:43 UTC
Location: Muenchen

Post by *OLLI_S »

Hallo sqa_wizard,
sqa_wizard wrote:Automatisches Erhöhen kenne ich auch nicht, aber vielleicht hilft das ein wenig:
Danke für Deine Antwort, hilft aber nur bedingt weiter.
Ich habe auch schon im Vorfeld daran gedacht das ganze so zu machen.
Sind halt zwei Schritte anstelle von einem.

Aber das ganze hat ein Problem:
Bei den Bildern (*.PNG) habe ich 64 Stück.
Diese sind von 01 bis 64 durchnummeriert, also kann ich ab dem Bild 07 den Zähler um 2 Stellen erhöhen.
Das funktioniert.

Bei den Objektdateien (.OBJECTS) habe ich nur 39 Dateien (ich habe also nicht in allen Bildern Objekte, wie Kommentare und Markierungen).
Beispielsweise haben nur die Bilder 06, 10 - 15, 17, 18, 20 - 25, 27 ... eine Objektdatei.
Hier muss ich also die Objektdateien manuell umbenennen, eine automatische Umbenennung führt nicht zum Ziel.

Ich habe dieses Problem aber immer wieder, so dass hier einen Feature Request absetzen möchte.
Beim Umbenennen würde ich gerne angeben können, an welcher Stelle (Zeichenposition) eine Nummer ist und um wie viele Stellen diese Nummer erhöht/verringert werden soll.

Gruß

OLLI
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Eine Lösung mit dem Script Content Plugin

Folgenden Script als "Increment.vbs" im Script-Plugin-Verzeichnis ablegen:

Code: Select all

content=filename
content1=filename
content2=filename
content3=filename
content4=filename
content5=filename
content6=filename
content7=filename
content8=filename
content9=filename

set oRegEx = New RegExp
with oRegEx
    .Pattern="(?=.*)(\d+)"
    Set Matches = .Execute(filename)
    If Matches.Count > 0 Then
        number = Matches(0).Value
        content  = .Replace(filename, Add(number,10))
        content1 = .Replace(filename, Add(number,1))
        content2 = .Replace(filename, Add(number,2))
        content3 = .Replace(filename, Add(number,3))
        content4 = .Replace(filename, Add(number,4))
        content5 = .Replace(filename, Add(number,5))
        content6 = .Replace(filename, Add(number,6))
        content7 = .Replace(filename, Add(number,7))
        content8 = .Replace(filename, Add(number,8))
        content9 = .Replace(filename, Add(number,9))
    end if
end with

function Add(number,value)
    newnumber = number + value
    do while len(newnumber) < len(number)
        newnumber = "0" & newnumber
    loop
    add = newnumber
End Function
Die "Script.ini" im Pluginverzeichnis anpassen:

Code: Select all

[Script]
Section=Increment
;js
;Extension
;exe-arc up
;AddZeros

[Defaults]
LongName=1
ParseDirs=0

[Increment]
script=Increment.vbs
LongName=0
Im MUT unter "Umbenennmaske:Dateiname" dann

Code: Select all

[=script.Result1]
eintragen. Das [E] unter Erweiterung entfernen.

Vor dem Umbenennen darauf achten, dass die Sortierreihenfolge so steht, dass die Datei mit der größten Zahl oben steht (sonst kann es Namenskonflikte geben).
Über Result2 kann ein Increment um 2, result3 incr. 3 ,.. ausgeführt werden.

HTH
Holger
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

Manche Loesungen sind zu einfach, als dass man darauf kommt: im MRT "Suchen und Ersetzen" nutzen.

Code: Select all

  Suchen:9 |8 |7 |6 |5 |4 |3 |2 |1 |0 |_8°|_7°|_6°|_5°|_4°|_3°|_2°|_1°|_0°
Ersetzen:° |9 |8 |7 |6 |5 |4 |3 |2 |1 |_90|_80|_70|_60|_50|_40|_30|_20|_10
Elegant ist zwar was anderes, funktioniert aber (unter bestimmten Voraussetzungen).
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Und jetzt bitte noch die Suchen&Ersetzen Lösung für die Aufgabe:
alle Zahlen mal 23 :wink:

Gruß
Holger
OLLI_S
Junior Member
Junior Member
Posts: 70
Joined: 2003-08-04, 07:43 UTC
Location: Muenchen

Post by *OLLI_S »

Hallo norfie²
norfie² wrote:Manche Loesungen sind zu einfach, als dass man darauf kommt: im MRT "Suchen und Ersetzen" nutzen.

Code: Select all

  Suchen:9 |8 |7 |6 |5 |4 |3 |2 |1 |0 |_8°|_7°|_6°|_5°|_4°|_3°|_2°|_1°|_0°
Ersetzen:° |9 |8 |7 |6 |5 |4 |3 |2 |1 |_90|_80|_70|_60|_50|_40|_30|_20|_10
Elegant ist zwar was anderes, funktioniert aber (unter bestimmten Voraussetzungen).
Super, das ist genau das, was ich gesucht habe.
Ich kann alle Dateien markieren und in der Vorschau wird die Nummer korrekt um 1 erhöht.
Perfekt.
Was bedeuten denn die Unterstriche und die "°" in der Funktion?

Wäre so eine Funktion nicht etwas für die Feature-Liste von Total Commander?
Ist dieser Wunsch beim Entwickler angekommen oder muss man die Idee anderswo eintragen?

Gruß

OLLI
User avatar
GammelBert
Member
Member
Posts: 109
Joined: 2007-02-21, 18:42 UTC
Location: Germany

Post by *GammelBert »

Es gibt ein Extra-forum für Suggestions, da kannst du es nochmal reinposten. Aber rechne nicht damit, dass der Entwickler auch antwortet. Dafür hat er nicht immer Zeit.

Ich persönlich finde nicht, dass dieses Feature in TC muss. Man kann es sich nämlich durch ein eigenes Skript recht einfach selbst basteln.
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

Was bedeuten denn die Unterstriche und die "°" in der Funktion?
Das sind Zeichen des Dateinamens.

Zur Erlaeuterung: so funktioniert es nur mit 2stelligen Zahlen. Die Einer-Stelle benoetigt zwingend ein nachfolgendes Zeichen, welches diese Stelle eindeutig kennzeichnet. Hier ist dies das folgende Leerzeichen " ".

Das Gradzeichen "°" wird (fast) nie in Dateinamen verwendet. Genau solch ein Zeichen wird temporaer fuer die "9" der Einer-Stelle gebraucht, damit mit hoher Wahrscheinlichkeit nicht zufaellig etwas mit anderen Dateinamenbestandteilen passiert. Den Unterstrich "_" haette man weglassen koennen, da "°" schon einzigartig sein sollte. Zur Sicherheit ist "_" mit drin und kennzeichnet hier den Beginn der 2stelligen Zahl. Dass das "°" schlussendlich nicht auftaucht, liegt daran, dass das MRT Mehrfachersetzungen stur von links nach rechts abarbeitet, wobei das Ergebnis der ersten Ersetzung als Ausgang fuer die folgende Ersetzung dient.
OLLI_S
Junior Member
Junior Member
Posts: 70
Joined: 2003-08-04, 07:43 UTC
Location: Muenchen

Post by *OLLI_S »

Liebe Community,

ich habe ein weiteres Problem.
Das ist aber ein neues Thema, das mit dem ersten Thema nichts zu tun hat.

Ich habe in einem Verzeichnis 40 Dateien.
Diese Dateien haben alle am Ende ein Datum im Format [TT] [MM] [JJJJ]
Der Rest der Dateien ist gleich.

Beispiele:
Ihre Rechnung vom 07 12 2005
Ihre Rechnung vom 17 03 2004

Ich will jetzt das das Datum umdrehen, als [JJJJ] [MM] [TT].

Ich habe die folgende Lösung gefunden:
[N1-17] [N25-28] [N22-23] [N19-20]

Gibt es etwas eleganteres?

Gruß

OLLI
User avatar
dumbledore954
Senior Member
Senior Member
Posts: 373
Joined: 2006-11-27, 08:10 UTC
Location: Hessisch Sibirien (Germany)

Post by *dumbledore954 »

Für den angestrebten Zweck ist das sicherlich die beste und auch eleganteste (weil auch nach einiger Zeit noch leicht nachvollziehbare) Lösung. Sie funktioniert aber nur, wenn der Text vor den Ziffern immer gleich lang ist. Sollte dies nicht der Fall sein, wäre dieses Template erste Wahl: [N-999-12] [N-4-0] [N-7-6] [N-10-9]
Gruß Michael

WinXPPro SP3, TC 7.56a
#7640 Personal licence
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Gibt es etwas eleganteres?
Ja!
Suchen nach:

Code: Select all

(\d{2}) (\d{2}) (\d{4})
Ersetzen durch:

Code: Select all

$3 $2 $1
[x] RegEx

HTH
Holger
Post Reply