Bestimmte Begriffe aus Dateinamen entfernen
Hallo ich habe viele datein (an die 300) aus den ich z.b. aus sicherheitsbericht_20070606_server2006.txt z.B. die Zahlen 20070606 entfernen möchte. sind nicht immer txt dateien auch mal doc oder mp3 oder so was.
kann mir einer sagen wie das funktioniert dateien liegen unter C:\Dokumente und Einstellungen\xxx\Desktop\Kopie von test
MfG MTB
kann mir einer sagen wie das funktioniert dateien liegen unter C:\Dokumente und Einstellungen\xxx\Desktop\Kopie von test
MfG MTB
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 60737
Url: https://administrator.de/forum/bestimmte-begriffe-aus-dateinamen-entfernen-60737.html
Ausgedruckt am: 23.12.2024 um 02:12 Uhr
10 Kommentare
Neuester Kommentar
Hi,
heißen die alle so:
sicherheitsbericht_20070606_server2006
Falls ja, kannst du die nicht nach deinem Schema umbenennen, da die ja sonst alle den gleichen Dateinamen hätten. Und das geht ja nicht in einem Verzeichnis.
Gib uns doch mal ein paar weitere Beispiele.
Psycho
heißen die alle so:
sicherheitsbericht_20070606_server2006
Falls ja, kannst du die nicht nach deinem Schema umbenennen, da die ja sonst alle den gleichen Dateinamen hätten. Und das geht ja nicht in einem Verzeichnis.
Gib uns doch mal ein paar weitere Beispiele.
Psycho
Moin MTB4ever,
dann wäre der Ansatz aber nicht "Bestimmte Begriffe ..entfernen", sondern "Bestimmte Teile des Dateinamens entfernen".
Einer von vielen Ansätzen wäre am CMD-Prompt:
[wobei das "@echo" nur zum Testen ist, also das anzeigt, was ausgeführt werden würde.
Und statt "X:\DeinDir" muss natürlich Dein Verzeichnis rein.
Also "C:\Dokumente und Einstellungen\xxx\Desktop\Kopie von test\"]
Variante 2, wenn Leerzeichen im Spiel sind/rein sollen:
[Ungetestete Skizzen]
Gruss
Biber
[Edit] Zu spät gesehen:
Statt .... %i in ('dir /b /s x:\DeinDir\*_*_*_*.mp3') DO....
Neu:.... %i in ('dir /b /s "C:\Dokumente und Einstellungen\xxx\Desktop\Kopie von test\*_*_*_*.mp3" ') DO ....
[/Edit]
dann wäre der Ansatz aber nicht "Bestimmte Begriffe ..entfernen", sondern "Bestimmte Teile des Dateinamens entfernen".
Einer von vielen Ansätzen wäre am CMD-Prompt:
>for /f "delims=_. tokens=1-5" %i in ('dir /b /s x:\DeinDir\*_*_*_*.mp3') do @echo ren %~fi_%j_%k_%l.%m %~ni_%j.%k
--> david_anton.mp3
-->andreas_meier.mp3
-->markus_opfer.mp3
[wobei das "@echo" nur zum Testen ist, also das anzeigt, was ausgeführt werden würde.
Und statt "X:\DeinDir" muss natürlich Dein Verzeichnis rein.
Also "C:\Dokumente und Einstellungen\xxx\Desktop\Kopie von test\"]
Variante 2, wenn Leerzeichen im Spiel sind/rein sollen:
>for /f "delims=_. tokens=1-5" %i in ('dir /b /s x:\DeinDir\*_*_*_*.mp3') do @echo ren "%~fi_%j_%k_%l.%m" "%~ni %j.%k"
--> david anton.mp3
-->andreas meier.mp3
-->markus opfer.mp3
Gruss
Biber
[Edit] Zu spät gesehen:
Statt .... %i in ('dir /b /s x:\DeinDir\*_*_*_*.mp3') DO....
Neu:.... %i in ('dir /b /s "C:\Dokumente und Einstellungen\xxx\Desktop\Kopie von test\*_*_*_*.mp3" ') DO ....
[/Edit]
Moin MTB4ever,
die Dateinamen sind ja so unregelmäßig gebildet, dass da wenig mit einem Algorithmus zu automatisieren ist.
Jedenfalls nicht mit einem Algorithmus, den Du als Batch-Anfänger pflegen und anpassen kannst.
Ein Hilfsmittel zur halb-automatisierten Anpassung kann ich Dir noch schnell zusammenschroten:
Wenn Du diesen Batch im Verzeichnis Deiner *.mp3s aufrufst, dann kannst Du zumindest die Teilstrings entsorgen, die Du offensichtlich in jedem Fall für entbehrlich hältst.
Ein paar habe ich als Default vorgegeben, wenn Du "DeleteSuchmusterInMp3.bat" ohne Parameter aufrufst.
Aber Du kannst natürlich auch den Batch jeweils mit einem Parameter "ZuLöschenderSubString" aufrufen.
Somit wären wir ja doch bei der Lösung der Frage angelangt, die schon ursprünglich im Titel stand.
Es wird allerdings ein gewisser Bodensatz an *.mp3s übrigbleiben, die Du schneller manuell umbenennen solltest.
Aber ein bisschen Arbeit kann Dir der Schnipsel wohl ersparen.
Gruss
Biber
die Dateinamen sind ja so unregelmäßig gebildet, dass da wenig mit einem Algorithmus zu automatisieren ist.
Jedenfalls nicht mit einem Algorithmus, den Du als Batch-Anfänger pflegen und anpassen kannst.
Ein Hilfsmittel zur halb-automatisierten Anpassung kann ich Dir noch schnell zusammenschroten:
:: ---snipp DeleteSuchmusterInMp3.bat
@echo off & setlocal enableDelayedExpansion
If [%1]== goto :useDefaults
For %%i in ("*%~1*.mp3") Do call :deleteSubstr "%%i" "%~1"
goto :eof
:deleteSubstr Param1=Dateiname Param2=Substr2Delete
Set "new=%~1"
Echo ren "%~1" "!new:%~2=!"
goto :eof
:useDefaults
Call %0 ___Sputnik_Turntable_Days_
Call %0 "Sputnik Turntable Days"
Call %0 _live_
Call %0 27.5.2007
Call %0 26.5.2007
Wenn Du diesen Batch im Verzeichnis Deiner *.mp3s aufrufst, dann kannst Du zumindest die Teilstrings entsorgen, die Du offensichtlich in jedem Fall für entbehrlich hältst.
Ein paar habe ich als Default vorgegeben, wenn Du "DeleteSuchmusterInMp3.bat" ohne Parameter aufrufst.
Aber Du kannst natürlich auch den Batch jeweils mit einem Parameter "ZuLöschenderSubString" aufrufen.
Somit wären wir ja doch bei der Lösung der Frage angelangt, die schon ursprünglich im Titel stand.
Es wird allerdings ein gewisser Bodensatz an *.mp3s übrigbleiben, die Du schneller manuell umbenennen solltest.
Aber ein bisschen Arbeit kann Dir der Schnipsel wohl ersparen.
Gruss
Biber