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é
Please also mark the comments that contributed to the solution of the article
Content-Key: 133051
Url: https://administrator.de/contentid/133051
Printed on: April 26, 2024 at 16:04 o'clock
6 Comments
Latest comment
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