Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Umbenennung von 18 Dateien inkl. auslesen des Datums

Frage Entwicklung Batch & Shell

Mitglied: axfa77

axfa77 (Level 1) - Jetzt verbinden

24.04.2013 um 10:04 Uhr, 1166 Aufrufe, 12 Kommentare

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ß
Mitglied: Endoro
24.04.2013 um 10:12 Uhr
Hallo axfa77,

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

Gruss!
Bitte warten ..
Mitglied: axfa77
24.04.2013 um 10:25 Uhr
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ß
Bitte warten ..
Mitglied: Endoro
24.04.2013 um 10:33 Uhr
Zwei Fragen noch:

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

Gruss!
Bitte warten ..
Mitglied: colinardo
24.04.2013, aktualisiert um 11:17 Uhr
Hi Afaxa,
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set counter=0 
03.
for %%i IN (*.??A) DO @( 
04.
	set oldname=%%i 
05.
	set /A counter +=1 
06.
	set day=!oldname:~-3,2! 
07.
	if !counter! GEQ 10 (set num=9!counter!) else (set num=90!counter!)  
08.
	ren "!oldname!" "DAY!day!.!num!" 
09.
)
p.s. besorg Dir mal ein vernünftiges FileRename-Programm wie z.B. http://www.publicspace.net/windows/BetterFileRename/

Grüße Uwe
Bitte warten ..
Mitglied: axfa77
24.04.2013 um 10:42 Uhr
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

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

Gruss
Bitte warten ..
Mitglied: axfa77
24.04.2013, aktualisiert um 10:55 Uhr
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.
Ganz wichtig ist, daß z.B. CX2010.24A auch zu DAY24.901 umbenannt wird.
Bitte warten ..
Mitglied: colinardo
24.04.2013, aktualisiert um 10:55 Uhr
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.
Bitte warten ..
Mitglied: Endoro
24.04.2013 um 11:01 Uhr
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!
Bitte warten ..
Mitglied: colinardo
24.04.2013, aktualisiert um 11:16 Uhr
Zitat von axfa77:
Edit: Habs getestet, leider nimmt das Skript die Dateien unabhängig vom Dateinamen, "einfach" der Reihe nach.
Ganz wichtig ist, daß z.B. CX2010.24A auch zu DAY24.901 umbenannt wird.

dann sollte das gehen wenn die Reihenfolge wichtig ist:

01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set counter=0 
03.
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 @( 
04.
	set oldname=%%i 
05.
	set /A counter +=1 
06.
	set day=!oldname:~-3,2! 
07.
	if !counter! GEQ 10 (set num=9!counter!) else (set num=90!counter!)  
08.
	ren "!oldname!" "DAY!day!.!num!" 
09.
)
Bitte warten ..
Mitglied: axfa77
24.04.2013, aktualisiert um 11:18 Uhr
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!
Bitte warten ..
Mitglied: colinardo
24.04.2013, aktualisiert um 11:19 Uhr
Hatte einen Schreibfehler drin, ist korrigiert und getestet, probiers nochmal,
Bitte warten ..
Mitglied: axfa77
24.04.2013 um 11:26 Uhr
Es funktioniert!!

Grössten Respekt und Dank!

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien zusammenführen inkl. finden von doppelten Einträgen (3)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
Dateien im Ordner auslesen und umbennen (10)

Frage von jocheng zum Thema Batch & Shell ...

Batch & Shell
Ordner inkl. Unterordner nach Dateien überprüfen (4)

Frage von belfry zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...