TotalCommander - dateinamenzähler
6 Antworten1'925 AufrufeGestartet von Punktmann ·
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?
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
... 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...)
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
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).
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
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.
=> 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
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.
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
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:
=> Dieses UMBENENN.BAT führt dann die Umbenennungen durch.
Ähnliches am Schluss:
=> 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
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