Zum Inhalt springen

TotalCommander - dateinamenzähler

6 Antworten1'925 AufrufeGestartet von Punktmann ·

PunktmannThemenstart372 Beiträge
#1
Ich brauche in einem ordner bei allen dateinamen feste zeichenanzahl in einer festen position, unabhängig davon, was für zeichen das sind, löschen. Im TotalCommander habe ich diese möglichkeit nicht gefunden. Gibt es sie doch?

Konkret: Es sind zeichen, die ich mal als 3-stellige zähler mit einem schrittwert 4 eingefügt und später in die freie positionen dazwischen neue dateien mit passendem zählerwert manuell eingesetzt habe. Nun ist diese anpassung fertig und ich brauche die alten, jetzt ziemlich chaotisch anmutenden zählwerte mit neuen, mit schrittwert 1 ersetzen. Solche zähler neu einzufügen ist das einfachste der welt. Doch wie bringe ich die alten weg, ohne jede datei extra manuell umbenennen zu müssen?

Guest
#2
... auf die Schnelle eingeworfen:

passt sowas auch?

http://support.microsoft.com/kb/320167/de

wär allerdings im Windows Exploder... Ob das im TotalCommander auch geht wär die Frage

(die MS-Seite ist für XP, aber unter Seven (steinigt mich, erlöst mich /emoticons/default_wink.png klappts auch... zählt dann automatisch mit 1 hoch... d.h. Dateinamen1 Dateinamen2 usw...)

Punktmann372 Beiträge
#3
Danke. Interessant und einfach. Allerdings habe ichs unter W98SE nicht geschafft, da wird nur der name der einzigen datei geändert, die markiert bleibt; anscheinend funzt es so erst in neueren Windows.

Doch sowas geht - nach dem erzielten resultat - im TC auch, man muss einfach den gemeinsamen namensteil neu eingeben, vorausgesetzt, er soll bei allen dateien gleich sein. Und das ist gerade der stein des anstosses: Die dateien hiessen ursprünglich nicht alle gleich und diese originalnamen sollen erhalten bleiben (der neue zähler steht am anfang des dateinamens).

dreael322 Beiträge
#4
Um wieviele Dateien geht es? Ansonsten musst Du halt evtl. etwas auf VBScript / Windows Script Host-Basis schreiben (Verzeichnis rekursiv mit dem FileSystemObject durchgehen ist nicht so kompliziert) und dann die gewünschte Umbenennung so durchführen.

=> Mach sonst ein vollständiges Musterbeispiel, als würdest Du in einer Firma eine billige Arbeitskraft am PC anstellen, Dir die Dateien umzubenennen.

Punktmann372 Beiträge
#5
Der anzahl der dateien liegt im mom um die 20. Die aufgabe wird sich allerdings voraussichtlich wiederholen und diese anzahl kann dabei ziemlich stark variieren.

Also ein beispiel für eine billige Arbeitskraft :mrgreen::

1. ursprünglicher zustand, dateien alfabetisch sortiert

dateiBE01

dateiBE02

dateiBEAAA

dateiBEAAAB

dateiSG01

dateiSG02

dateiSG02a

dateiSG02b

dateiSG03

dateiSG04

dateiZH01

dateiZH02

2. sortiert nach inhaltsbedeutung mit vorgesetztem zähler mit schritt 5, um weitere dateien dazwischen einfügen zu können

001dateiZH01

006dateiZH02

011dateiSG01

016dateiSG02

021dateiSG02a

026dateiSG02b

031dateiSG03

036dateiSG04

041dateiBE01

046dateiBE02

051dateiBEAAA

056dateiBEAAAB

3. weitere dateien dazwischen eingefügt

001dateiZH01

003dateiZH0aa <--

006dateiZH02

011dateiSG01

016dateiSG02

021dateiSG02a

026dateiSG02b

031dateiSG03

032dateiSGxyz <--

036dateiSG04

041dateiBE01

046dateiBE02

051dateiBEAAA

056dateiBEAAAB

jetzt brauche ich überall die ersten 3 zeichen entfernen

4. sortiert mit definitivem zähler am anfang

01dateiZH01

02dateiZH0aa

03dateiZH02

04dateiSG01

05dateiSG02

06dateiSG02a

07dateiSG02b

08dateiSG03

09dateiSGxyz

10dateiSG04

11dateiBE01

12dateiBE02

13dateiBEAAA

14dateiBEAAAB

Gewissermassen erinnert das an das alte gute Basic, wo jede programmzeile ihre nummer hat, die ihre position im programm bestimmt. Im laufe des programmierens werden neue zeilen eingefügt, andere gestrichen usw. und wenn alles fertig ist, soll das auch einigermassen schön und übersichtlich aussehen; so wird am ende noch einmal entsprechend sortiert. Nur, dort ist die zeilennummer eine eigenständige institution, mit der so gerechnet wird, für deren behandlung gibt es entsprechende funktionen. Der dateiname enthält sowas theoretisch nicht.

dreael322 Beiträge
#6
Ebenfalls eine Variante: awk (etwas Typisches aus der Linux-Kommandozeilenwelt).

=> Downloade Dir das Ganze, nimm %programFiles%\GnuWin32\bin in den %PATH% hinein, danach kannst Du eine Batchdatei wie diese hier kreieren:


REM Dateien umbenennen

dir /o/b|awk "BEGIN { i=1; } { printf(\"ren \\\"%s\\\" \\\"%03d%s\\\"\n\", $1, i, $1); i+=5; }" >%TEMP%\UMBENENN.BAT

type %TEMP%\UMBENENN.BAT

=> Dieses UMBENENN.BAT führt dann die Umbenennungen durch.

Ähnliches am Schluss:


REM Schluss-Umbenennung

dir /o/b|awk "BEGIN { i=1; } { printf(\"ren \\\"%s\\\" \\\"%02d%s\\\"\n\", $1, i, substr($1, 4)); i++; }" >%TEMP%\UMBENENN2.BAT

type %TEMP%\UMBENENN2.BAT
=> Dieses UMBENENN2.BAT führt dann die End-Umbenennung durch.

Punktmann372 Beiträge
#7
Danke. Eine präfabrizierte lösung gibt es in dem fall also offensichtlich nicht. Diese von dir scheint mir auf den ersten blick keineswegs kompliziert zu sein und/oder ausserhalb meines fassungsvermögensbereichs zu sein. Doch ich werde dazu einen moment brauchen, wo mich andere sorgen etwas weniger plagen werden und ichs mit sauberem kopf und der nötigen inneren ruhe angehen kann. Dann kommt hier sicher auch meine meldung über den erfolg dieser geschichte /emoticons/default_wink.png/emoticons/default_smile.png

Seite 1 von 1 · 7 Beiträge in diesem Thema