Teile des Dateinamens entfernen per Batch
Hallo zusammen,
ich habe in einem Ordner diverse Dateien nach dem Schema ePaper2010-01-09-210049.pdf. Das "ePaper" steht immer am Anfang, dann kommt das Datum in der Form Jahr-Monat-Tag und dann ein weiterer Bindestrich und die Uhrzeit des Downloads als sechsstellige Zahl. Ich möchte davon eigentlich nur das "2010-01-09.pdf" behalten.
Geht das mit einer Batch-Datei? Diese darf dann aber nur die Dateien bearbeiten, die mit "ePaper" beginnen, also die Dateien, deren Name bereits gekürzt ist, soll die Batch in Ruhe lassen ...
Hat jemand eine Idee? Bastla vielleicht?
Danke,
André
ich habe in einem Ordner diverse Dateien nach dem Schema ePaper2010-01-09-210049.pdf. Das "ePaper" steht immer am Anfang, dann kommt das Datum in der Form Jahr-Monat-Tag und dann ein weiterer Bindestrich und die Uhrzeit des Downloads als sechsstellige Zahl. Ich möchte davon eigentlich nur das "2010-01-09.pdf" behalten.
Geht das mit einer Batch-Datei? Diese darf dann aber nur die Dateien bearbeiten, die mit "ePaper" beginnen, also die Dateien, deren Name bereits gekürzt ist, soll die Batch in Ruhe lassen ...
Hat jemand eine Idee? Bastla vielleicht?
Danke,
André
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133051
Url: https://administrator.de/forum/teile-des-dateinamens-entfernen-per-batch-133051.html
Ausgedruckt am: 07.04.2025 um 22:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo SarekHL!
Irgendwie fühle ich mich mit dieser Frage angesprochen ...
Grundsätzlich sollte das etwa so gehen (das "
Voaussetzung, damit das so funktionieren kann, ist zum einen die konsequente Verwendung des Benennungsschemas und, wichtiger, dass es für jeden Tag nur eine Datei gibt, da es ansonsten zur Namenskollision kommt ("ePaper2010-01-09-203212.pdf" und "ePaper2010-01-09-210049.pdf" müssten ja beide auf "2010-01-09.pdf" umbenannt werden).
Sollte die zweite Voraussetzung nicht zutreffen, müsstest Du einen Algorithmus für die Ermittlung einer alternativen Bezeichnung festlegen (oder einfach doch auch die Uhrzeit verwenden) ...
Grüße
bastla
Irgendwie fühle ich mich mit dieser Frage angesprochen ...
Grundsätzlich sollte das etwa so gehen (das "
echo
" vor dem "ren
" sorgt dafür, dass zunächst der Befehl für das Umbenennen nur angezeigt, aber noch nicht ausgeführt wird):@echo off & setlocal
set "Ordner=D:\Testordner"
for %%i in ("%Ordner%\ePaper20*.pdf") do call :ProcessFile "%%i"
pause
goto :eof
:ProcessFile
for /f "tokens=1-3 delims=-" %%a in ("%~n1") do set "Neu=%%a-%%b-%%c"
set "Neu=%Neu:ePaper=%"
echo ren %1 "%Neu%%~x1"
goto :eof
Sollte die zweite Voraussetzung nicht zutreffen, müsstest Du einen Algorithmus für die Ermittlung einer alternativen Bezeichnung festlegen (oder einfach doch auch die Uhrzeit verwenden) ...
Grüße
bastla
Hallo,
da, dass hier ja statisch ist, würde ich einfach http://www.1-4a.com/rename verwenden.
Einfach die ersten 6 Zeichen entfernen und gut. Oder einfach "epaper" durch nichts ersetzen.
Stefan
da, dass hier ja statisch ist, würde ich einfach http://www.1-4a.com/rename verwenden.
Einfach die ersten 6 Zeichen entfernen und gut. Oder einfach "epaper" durch nichts ersetzen.
Stefan
@StefanKittel

Grüße
bastla
einfach "epaper" durch nichts ersetzen.
Was meinst Du macht wohl die folgende Zeile set "Neu=%Neu:ePaper=%"
bastla
@StefanKittel
Abgesehen davon, dass wir ja noch gar nicht wissen, ob es nur eine einmalige Aktion sein soll, habe ich auch überhaupt nix gegen die Verwendung "fertiger" Tools; so weit "fertig" ist der Batch aber eigentlich auch schon ...
Grüße
bastla
Abgesehen davon, dass wir ja noch gar nicht wissen, ob es nur eine einmalige Aktion sein soll, habe ich auch überhaupt nix gegen die Verwendung "fertiger" Tools; so weit "fertig" ist der Batch aber eigentlich auch schon ...
Grüße
bastla