cottonwood
Goto Top

Datum im Dateinamen sortierbar machen

Hi,

ich habe Dateien in einem Ordner, die im Format tt.mm.jj*.pdf vorliegen. Die möchte ich umbenennen.

Um zu erkennen, welche bereits umbenannt wurden, sollen dabei die Punkte durch - ersetzt werden. Aus tt.mm.jj* soll also jj-mm-tt* werden. Leider bin ich nicht weiter gekommen, als bis dahin, dass ich die neuen Dateien mit einem Präfix zu versehen:

for %i in (??.??.*) do ren %i 14_09_%i

ergibt folgenden Befehl

ren 19.10.12_12.04_Telefax.02232509779.pdf 14_09_19.10.12_12.04_Telefax.02232509779.pdf

Was muss ich tun, um das Datum wie geschreiben gedreht zu bekommen?:

ren 19.10.12_12.04_Telefax.02232509779.pdf 12_10_19_12.04_Telefax.02232509779.pdf

Content-Key: 248616

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

Printed on: April 23, 2024 at 23:04 o'clock

Member: colinardo
Solution colinardo Sep 08, 2014 updated at 18:14:57 (UTC)
Goto Top
Hallo Cottonwood, Willkommen auf Administrator.de!
z.B. so:
Zur Info: Zeile 6 ist durch ein vorangestelltes echo noch nicht scharf geschaltet sondern gibt für deine Tests den Rename-Vorgang nur auf der Konsole aus.
@echo off & setlocal enabledelayedexpansion
set "folder=C:\temp"  
for %%a in ("%folder%\??.??.??_*") do @(  
	set "name=%%~nxa"  
	set "newname=!name:~6,2!_!name:~3,2!_!name:~0,2!!name:~8!"  
	echo ren "%%a" "!newname!"  
)

Noch zur Info: Die gängigen Rename-Programme wie
können das mit Regular-Expressions, out-of-the-box

Für das Bulk Rename Utility z.B. wären das dann folgende Einstellung im Bereich Regex

Match: ^(\d{2})\.(\d{2})\.(\d{2})(.*)
Replace: \3_\2_\1\4

Grüße Uwe
Member: Cottonwood
Cottonwood Sep 08, 2014 at 18:15:49 (UTC)
Goto Top
Super. Ich danke dir.