sarekhl
Goto Top

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é

Content-Key: 133051

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

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: bastla
bastla 09.01.2010 um 21:57:37 Uhr
Goto Top
Hallo SarekHL!

Irgendwie fühle ich mich mit dieser Frage angesprochen ... face-wink

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
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
Mitglied: StefanKittel
StefanKittel 09.01.2010 um 23:35:41 Uhr
Goto Top
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
Mitglied: bastla
bastla 10.01.2010 um 00:29:53 Uhr
Goto Top
@StefanKittel
einfach "epaper" durch nichts ersetzen.
Was meinst Du macht wohl die folgende Zeile face-wink
set "Neu=%Neu:ePaper=%"
Grüße
bastla
Mitglied: StefanKittel
StefanKittel 10.01.2010 um 00:49:43 Uhr
Goto Top
Hallo,
ich hab ja nun nicht gesagt, dass Deine Lösung nicht funktionieren würde.
Aber für was einmaliges würde ich das fertige Tool verwenden.
Stefan
Mitglied: bastla
bastla 10.01.2010 um 09:16:07 Uhr
Goto Top
@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 ... face-wink

Grüße
bastla
Mitglied: SarekHL
SarekHL 10.01.2010 um 09:26:04 Uhr
Goto Top
Richtig, Bastla ....

Es geht darum, daß ich in ein Verzeichnis täglich die aktuelle Ausgabe unserer Tageszeitung downloaden will. Leider haben die keinen FTP-Server, so daß ich nur per Browser herunterladen kann. Ich habe mir das schon mit dem "iMacro"-Plugin für Firefox weitgehend automatisiert, aber der Dateiname der vom Verlag generierten Files ist eben so blöd wie vorhin beschrieben.

Und nun will ich dann ab und zu (also nicht einmalig) die Batch über das Verzeichnis laufen lassen, um die noch nicht korrigierten Dateinamen anzupassen. Die bereits korrigierten Dateinamen sollen dabei unverändert bleiben, darum kann ich eben nicht einfach die ersten sechs und die letzten sieben Zeichen entfernen.

Ich probiere Dein Script nachher mal aus, auf jeden Fall sage ich schon mal Danke!