joker23
Goto Top

Per Batch Punkte aus Dateinamen entfernen

Problem bei einem System mit Punkten in Dateinamen

Ich suche eine Möglichkeit unter Windows (am liebsten per Batch) mehrere Dateien mit der Formatierung:
name.YYYY-MM-TT-HH.MM.SS.PDF
in
nameYYYY-MM-TT-HHMMSS.PDF
zu verwandeln.
Also kurz gesagt, die Punkte aus dem Dateinamen entfernen. Unter Linux hab ich das schon am Laufen (Perl & RegEx), aber aufgrund der gottgegebenen administrativen Faulheit, die mir innewohnt, möchte ich das in Zukunft gerne den Kunden unter Windows selber machen lassen.

Ich habe bereits eine recht ansehnliche Mehrfach umbenennen per Batch von Biber gefunden, aber leider war ich mit meinen eher mäßigen Batch-Erfahrungen nicht in der Lage, das so umzuschreiben, dass es auf mein Problem passt.

lg,
Jan

Content-ID: 29204

Url: https://administrator.de/forum/per-batch-punkte-aus-dateinamen-entfernen-29204.html

Ausgedruckt am: 23.12.2024 um 08:12 Uhr

djbrandt
djbrandt 29.03.2006 um 10:48:40 Uhr
Goto Top
Hi,

schnipp renamefiles.cmd -------
@echo off
for /f %%i in (test.txt) do @call :renamefile %%i
goto ende

:renamefile
set fname=%~n1
set ext=%~x1
set newname=%fname:.=%

ren %1 %newname%%ext%

goto ende

:ende

schnapp renamefiles.cmd -------


in der test.txt stehen die Dateinamen drin
(dir /b name.*.pdf > test.txt)


Grüße

Dieter
Biber
Biber 29.03.2006 um 11:01:46 Uhr
Goto Top
Moin,

da war ich wohl zu langsam.. face-wink

Ich hätte es wieder so gelöst:
::-- snipp RenPdfs.bat
:: ALT: name.YYYY-MM-TT-HH.MM.SS.PDF --> Dateimaske *.????-??-??-??.??.??.PDF
:: in NEU: nameYYYY-MM-TT-HHMMSS.PDF
@echo off & setlocal enableDelayedExpansion
For %%a in ( *.????-??-??-??.??.??.PDF) do Set "Name=%%~na" & ren "%%a" "!name:.=!.PDF"  
::-- snapp RenPDFs.bat

(Unterstellung: der Batch wird in dem Verzeichnis gestartet, in dem die *.PDFs sind)
Über eine Unterverzeichnisstruktur / eine ganze Platte:
::-- snipp GlobalRenPdfs.bat
@echo off & setlocal enableDelayedExpansion
For /f %%a in ('dir /b /s "%1\*.????-??-??-??.??.??.PDF"') do Set "Name=%%~na" & ren "%%~dpnxa" "!name:.=!.PDF"  
::-- snapp GlobalRenPDFs.bat 
(Aufruf mit 'GlobalRenPdfs d:' oder 'GlobalRenPdfs "f:\Eigene Dateien"' oder ohne Parameter = aktuelles Laufwerk)

Gruß Biber
JoKer23
JoKer23 29.03.2006 um 11:14:57 Uhr
Goto Top
Ihr seid echt klasse,
Vielen Dank.

P.S.: Beide Lösungen funktionieren absulut zufriedenstellend face-wink
djbrandt
djbrandt 29.03.2006 um 11:28:55 Uhr
Goto Top
Hi Biber,

das ist schon heftig, in einer Zeile.

Hut ab! face-smile

Grüße

Dieter
Biber
Biber 29.03.2006 um 11:30:39 Uhr
Goto Top
@joker
...absulut zufriedenstellend ...

Na, das geht uns aber runter wie Öl..

Da setze ich mal schnell den Beitrag auf gelöst, bevor Du uns hier mit solchen Superlativen zum Erröten bringst.. face-wink

Grüße
Biber
JoKer23
JoKer23 29.03.2006 um 13:19:42 Uhr
Goto Top
was macht eigentlich des da?
setlocal enableDelayedExpansion
Biber
Biber 29.03.2006 um 19:22:08 Uhr
Goto Top
Moin Jan,

  • suche bitte mal hier mit der Forumssuche nach "DelayedExpansion" -oder-

  • such in der M$-Hilfe nach "verzögert" ( "Help cmd|find "verzögert" ..am CMD-Prompt)

M$ kann das besser oder zumindest kürzer erklären als Dieter und ich zusammen.

Gruß Biber