axfa77
Goto Top

Umbenennung von 18 Dateien inkl. auslesen des Datums

Hallo,

da mir dieses Forum schon einmal in meiner "Not" super geholfen hat, hier nochmals ein Problem wo mir der Lösungsansatz fehlt.

Ich habe 18 Dateien, welche umbenanntt werden müssen, so sehen die Dateien (Name immer gleich, xx beschreibt das Datum (Tag) des aktuellen Monats) ursprünglich aus:

CX2010A.xxA -> (901)
CX2010B.xxA -> (902)
CX4010A.xxA
CX4010B.xxA
CX4110A.xxA
CX4110B.xxA
CX3401.xxA
C0101A.xxA
C0101B.xxA
BC6602.xxA
BC3101.xxA
BC6201.xxA
SC2602.xxA
SC2612.xxA.
SC2702.xxA
DC4000.xxA
ANILINE.xxA
C0179.xxA -> (918)

Diese Dateien sollen wie folgt umbenannt werden:

DAYxx.901
DAYxx.902

...
...

DAYxx.918

Ich zergrübele mir den Kopf, finde keine vernünftige Lösung dazu.

Ich wäre für jeden Ansatz / Hilfestellung dankbar.

Gruß

Content-Key: 205543

Url: https://administrator.de/contentid/205543

Printed on: April 20, 2024 at 06:04 o'clock

Member: Endoro
Endoro Apr 24, 2013 at 08:12:06 (UTC)
Goto Top
Hallo axfa77,

ist "xx" eine zweistellige Zahl, mit führender Null?

Gruss!
Member: axfa77
axfa77 Apr 24, 2013 at 08:25:53 (UTC)
Goto Top
Hallo Endoro,

ja sollte so sein, xx steht für den Tag im Monat, kann also von 01 - 31 sein.

Also z.B. SC2702.24A (24. des Monats) müsste in DAY24.915 umbenannt werden.

Gruß
Member: Endoro
Endoro Apr 24, 2013 at 08:33:44 (UTC)
Goto Top
Zwei Fragen noch:

  1. warum fehlen die Zahlen, könntest du die nachtragen?
  2. so wenige Dateien, warum nicht manuell umbenennen?

Gruss!
Member: colinardo
colinardo Apr 24, 2013 updated at 09:17:09 (UTC)
Goto Top
Hi Afaxa,
@echo off & setlocal ENABLEDELAYEDEXPANSION
set counter=0
for %%i IN (*.??A) DO @(
	set oldname=%%i
	set /A counter +=1
	set day=!oldname:~-3,2!
	if !counter! GEQ 10 (set num=9!counter!) else (set num=90!counter!) 
	ren "!oldname!" "DAY!day!.!num!"  
)

p.s. besorg Dir mal ein vernünftiges FileRename-Programm wie z.B. http://www.publicspace.net/windows/BetterFileRename/

Grüße Uwe
Member: axfa77
axfa77 Apr 24, 2013 at 08:42:31 (UTC)
Goto Top
Hallo,

Zu 1: Die fehlen, weil ich dort eine "Gemeingültigkeit" einbauen will. Es kann u.U. sein das dort ein kompletter Monat an Daten umbenannt werden sollen also 18 x 31 Daten, abhängig vom Datum.

Zu 2: Genau das ist mein Problem, das kostet mich jeden Tag mindestens 10-15Min Arbeit face-sad

Wäre super, wenn da Automatismus reinkäme.

Gruss
Member: axfa77
axfa77 Apr 24, 2013 updated at 08:55:13 (UTC)
Goto Top
Hallo Uwe,

vielen Dank dafür erstmal, auch für den Link!

Ist hierbei "sichergestellt", das auch wirklich Dateiname "SC2702" die "915" bekommt?

Werde es gleich mal testen.


Vielen Dank!

Edit: Habs getestet, leider nimmt das Skript die Dateien unabhängig vom Dateinamen, "einfach" der Reihe nach. face-sad
Ganz wichtig ist, daß z.B. CX2010.24A auch zu DAY24.901 umbenannt wird.
Member: colinardo
colinardo Apr 24, 2013 updated at 08:55:36 (UTC)
Goto Top
Zitat von @axfa77:
Ist hierbei "sichergestellt", das auch wirklich Dateiname "SC2702" die "915" bekommt?
ich ging nur davon aus das die Dateien nach diesem Muster aussehen : *.??A
und die 9 immer gleich bleibt und die Zahl dahinter immer weiter hochgezählt wird. Von einer Zuordnung war in deiner Frage keine Rede. Den Monatstag wird natürlich von der Erweiterung entnommen *.(xx)A
Dachte das der Monatstag das wichtige Element ist.
Member: Endoro
Endoro Apr 24, 2013 at 09:01:02 (UTC)
Goto Top
Zitat von @axfa77:
Hallo,

Zu 1: Die fehlen, weil ich dort eine "Gemeingültigkeit" einbauen will. Es kann u.U. sein das dort ein kompletter
Monat an Daten umbenannt werden sollen also 18 x 31 Daten, abhängig vom Datum.


Das geht ja so nicht.

Gruss!
Member: colinardo
colinardo Apr 24, 2013 updated at 09:16:40 (UTC)
Goto Top
Zitat von @axfa77:
Edit: Habs getestet, leider nimmt das Skript die Dateien unabhängig vom Dateinamen, "einfach" der Reihe nach. face-sad
Ganz wichtig ist, daß z.B. CX2010.24A auch zu DAY24.901 umbenannt wird.

dann sollte das gehen wenn die Reihenfolge wichtig ist:

@echo off & setlocal ENABLEDELAYEDEXPANSION
set counter=0
for %%i IN (CX2010A.??A CX2010B.??A CX4010A.??A CX4010B.??A CX4110A.??A CX4110B.??A CX3401.??A C0101A.??A C0101B.??A BC6602.??A BC3101.??A BC6201.??A SC2602.??A SC2612.??A SC2702.??A DC4000.??A ANILINE.??A C0179.??A) Do @(
	set oldname=%%i
	set /A counter +=1
	set day=!oldname:~-3,2!
	if !counter! GEQ 10 (set num=9!counter!) else (set num=90!counter!) 
	ren "!oldname!" "DAY!day!.!num!"  
)
Member: axfa77
axfa77 Apr 24, 2013 updated at 09:18:21 (UTC)
Goto Top
Gerade getestet, funktioniert leider nicht.

Jetzt "tut" sich gar nichts nach Ausführen der Batch.

@Endoro: Wie meinst Du das? Ich kann doch von z.B. ANILINE.xxA 31 Dateien haben? ANILINE.01A, ANILINE.02A, ANILINE.03A...

Danke übrigens für die schnellen Antworten!
Member: colinardo
colinardo Apr 24, 2013 updated at 09:19:30 (UTC)
Goto Top
Hatte einen Schreibfehler drin, ist korrigiert und getestet, probiers nochmal,
Member: axfa77
axfa77 Apr 24, 2013 at 09:26:24 (UTC)
Goto Top
Es funktioniert!!

Grössten Respekt und Dank!

Gruß