Punkte aus Dateinamen per Batch entfernen
Hallo ihr Lieben,
ich bin ziemlicher Anfänger und habe leider keine Ahnung von Skript-Sprache. Nun soll ich aber bei uns Dateien umbenannt werden und zwar so, dass die Punkte aus dem Dateinamen entfernt werden. Die Dateinamen sind immer gleich aufgebaut. Und zwar wie folgt: z.zzzz.zzzzzz.z_zzzz.pdf
Die ersten 3 Punkte sollen entfernt werden, der Punkt für die Dateiendung natürlich nicht. Ich hab mich jetzt mal hier um gesehen und hab etwas gefunden und versucht das umzuschreiben:
::-- snipp RenPdfs.bat
:: ALT: Y.YYYY.YYYYYY.Y_YYYY.PDF --> Dateimaske ?.????.??????.?_????.PDF
:: in NEU: YYYYYYYYYYYY.PDF
@echo off & setlocal enableDelayedExpansion
For %%a in ( ?.????.??????.?_????.PDF) do Set "Name=%%~na" & ren "%%a" "!name:.=!.PDF"
::-- snapp RenPDFs.bat
Leider war der Erfolg sehr mäßig, sprich gar nicht da. Die Dateien wurden nicht umbenannt. Die Batch-Datei habe ich in dem Verzeichnis mit Admin-Rechten ausgeführt, in dem auch die pdf-Dateien liegen.
Kann mir vielleicht jemand helfen und sagen, wie ich es richtig schreiben muss?
Vielen Dank schon mal für die Mühe.
Mit freundlichen Grüßen
Tamara Janle
ich bin ziemlicher Anfänger und habe leider keine Ahnung von Skript-Sprache. Nun soll ich aber bei uns Dateien umbenannt werden und zwar so, dass die Punkte aus dem Dateinamen entfernt werden. Die Dateinamen sind immer gleich aufgebaut. Und zwar wie folgt: z.zzzz.zzzzzz.z_zzzz.pdf
Die ersten 3 Punkte sollen entfernt werden, der Punkt für die Dateiendung natürlich nicht. Ich hab mich jetzt mal hier um gesehen und hab etwas gefunden und versucht das umzuschreiben:
::-- snipp RenPdfs.bat
:: ALT: Y.YYYY.YYYYYY.Y_YYYY.PDF --> Dateimaske ?.????.??????.?_????.PDF
:: in NEU: YYYYYYYYYYYY.PDF
@echo off & setlocal enableDelayedExpansion
For %%a in ( ?.????.??????.?_????.PDF) do Set "Name=%%~na" & ren "%%a" "!name:.=!.PDF"
::-- snapp RenPDFs.bat
Leider war der Erfolg sehr mäßig, sprich gar nicht da. Die Dateien wurden nicht umbenannt. Die Batch-Datei habe ich in dem Verzeichnis mit Admin-Rechten ausgeführt, in dem auch die pdf-Dateien liegen.
Kann mir vielleicht jemand helfen und sagen, wie ich es richtig schreiben muss?
Vielen Dank schon mal für die Mühe.
Mit freundlichen Grüßen
Tamara Janle
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 275510
Url: https://administrator.de/forum/punkte-aus-dateinamen-per-batch-entfernen-275510.html
Ausgedruckt am: 14.05.2025 um 00:05 Uhr
12 Kommentare
Neuester Kommentar
Hallo Tamara,
Wenn du in Zeile 7 das REM entfernst, werden von ALLEN Dateien im aktuellen Verzeichnis die Punkte entfernt aber die Endungen beibehalten.
Gruß,
@Snowman25
€dit:
Angepasst, damit auch Leerzeichen im Dateinamen ordentlich verarbeitet werden.
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "delims=" %%i IN ('DIR /b') DO (
SET a=%%~ni
SET b=%%~xi
ECHO !a:.=!!b!
REM REN "%%i" "!a:.=!!b!"
)
Wenn du in Zeile 7 das REM entfernst, werden von ALLEN Dateien im aktuellen Verzeichnis die Punkte entfernt aber die Endungen beibehalten.
Original | Ergebnis |
---|---|
ab.cd.ef.gh.bmp | abcdefgh.bmp |
test.bat | test.bat |
Gruß,
@Snowman25
€dit:
Angepasst, damit auch Leerzeichen im Dateinamen ordentlich verarbeitet werden.
Zitat von @Sommerpalme73:
Hallo Snowman25,
vielen Dank für die Hilfe. Aber irgendwie bin ich zu blöd. Ich habe jetzt in dem Verzeichnis, in dem die pdf-Dateien
liegen, eine BATCH-Datei mit deinem Skript erstellt und also Admin laufen lassen. Es sollen dann irgendwie gefüllte tausende
Dateien geändert werden, nur nicht die, die ich möchte:
Hallo Snowman25,
vielen Dank für die Hilfe. Aber irgendwie bin ich zu blöd. Ich habe jetzt in dem Verzeichnis, in dem die pdf-Dateien
liegen, eine BATCH-Datei mit deinem Skript erstellt und also Admin laufen lassen. Es sollen dann irgendwie gefüllte tausende
Dateien geändert werden, nur nicht die, die ich möchte:
Es dürfte relativ egal sein, wo die Batch liegt, du musst ihr allerdings noch sagen wo sie die Dateien bearbeiten soll
z.B. so:
<code/>cd DeinPfad
Hallo Sommerpalme73,
wenn du das Skript per
Da soll das natürlich NICHT sein!
Du musst entweder ein CD in das Verzeichnis machen, oder die Batch NICHT als Admin ausführen (sollte nicht nötig sein).
Unter Umständen hast du ein paar Dateien in deinem
Hier eine Auflistung von meinem Win7 System32-Ordner, welche einen Punkt enthalten:
Du möchtest ausserdem den Befehlsaufruf in der FOR-Schleife in
Gruß,
@Snowman25
€dit:
benutze
wenn du das Skript per
Rechtskick -> Ausführen als..
öffnest, liegt das Working Directory
bei %windir%\system32
.Da soll das natürlich NICHT sein!
Du musst entweder ein CD in das Verzeichnis machen, oder die Batch NICHT als Admin ausführen (sollte nicht nötig sein).
Unter Umständen hast du ein paar Dateien in deinem
SYSTEM32
-Ordner umbenannt.Hier eine Auflistung von meinem Win7 System32-Ordner, welche einen Punkt enthalten:
Gfxres.ar-SA
Gfxres.cs-CZ
Gfxres.da-DK
Gfxres.de-DE
Gfxres.el-GR
Gfxres.en-US
Gfxres.es-ES
Gfxres.fi-FI
Gfxres.fr-FR
Gfxres.he-IL
Gfxres.hr-HR
Gfxres.hu-HU
Gfxres.it-IT
Gfxres.ja-JP
Gfxres.ko-KR
Gfxres.nb-NO
Gfxres.nl-NL
Gfxres.pl-PL
Gfxres.pt-BR
Gfxres.pt-PT
Gfxres.ro-RO
Gfxres.ru-RU
Gfxres.sk-SK
Gfxres.sl-SI
Gfxres.sv-SE
Gfxres.th-TH
Gfxres.tr-TR
Gfxres.zh-CN
Gfxres.zh-TW
GfxUI.exe
lmmonres.cs
lmmonres.da
lmmonres.de
lmmonres.es-CO
lmmonres.es
lmmonres.fi
lmmonres.fr-CA
lmmonres.fr
lmmonres.hu
lmmonres.it
lmmonres.nl
lmmonres.no
lmmonres.pl
lmmonres.pt-BR
lmmonres.pt
lmmonres.sv
lmmonres.tr
lmmonres.zh
NetTrace.PLA.Diagnostics
Du möchtest ausserdem den Befehlsaufruf in der FOR-Schleife in
dir /b *.pdf
ändern.Gruß,
@Snowman25
€dit:
Z:
ist ein Netzlaufwerk und für deinen Administrator nicht verfügbar.benutze
PUSHD \\server\pfad\zum\mountpoint
anstelle des CD.