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-Key: 29204

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

Printed on: April 24, 2024 at 21:04 o'clock

Member: djbrandt
djbrandt Mar 29, 2006 at 08:48:40 (UTC)
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
Member: Biber
Biber Mar 29, 2006 at 09:01:46 (UTC)
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
Member: JoKer23
JoKer23 Mar 29, 2006 at 09:14:57 (UTC)
Goto Top
Ihr seid echt klasse,
Vielen Dank.

P.S.: Beide Lösungen funktionieren absulut zufriedenstellend face-wink
Member: djbrandt
djbrandt Mar 29, 2006 at 09:28:55 (UTC)
Goto Top
Hi Biber,

das ist schon heftig, in einer Zeile.

Hut ab! face-smile

Grüße

Dieter
Member: Biber
Biber Mar 29, 2006 at 09:30:39 (UTC)
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
Member: JoKer23
JoKer23 Mar 29, 2006 at 11:19:42 (UTC)
Goto Top
was macht eigentlich des da?
setlocal enableDelayedExpansion
Member: Biber
Biber Mar 29, 2006 at 17:22:08 (UTC)
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