mtb4ever
Goto Top

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

Content-Key: 60737

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

Printed on: April 23, 2024 at 12:04 o'clock

Mitglied: 8644
8644 Jun 06, 2007 at 13:29:11 (UTC)
Goto Top
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
Member: Biber
Biber Jun 06, 2007 at 13:55:33 (UTC)
Goto Top
...und sicherheitsbericht_20070606_server2006.mp3 hört sich für mich relativ unglaubwürdig an... face-wink
Member: MTB4ever
MTB4ever Jun 06, 2007 at 14:20:09 (UTC)
Goto Top
war nur en beispielname:
hier ma 3 namen

david_anton_20070606_liederecke.mp3
andreas_meier_20070605_liederecke.mp3
markus_opfer_20070604_liederecke.mp3

soll halt im endeffekt am besten so heisten:

david_anton.mp3
andreas_meier.mp3
markus_opfer.mp3

wenn es möglich wäre ist sogar so noch besser:

david anton.mp3
andreas meier.mp3
markus opfer.mp3


ganze sollte in format einer batch datei werden
Member: Biber
Biber Jun 06, 2007 at 15:16:09 (UTC)
Goto Top
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:
>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
[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]
Member: MTB4ever
MTB4ever Jun 06, 2007 at 15:23:59 (UTC)
Goto Top
danke schön klappt einwandfrei
Member: MTB4ever
MTB4ever Jun 06, 2007 at 15:34:12 (UTC)
Goto Top
nur ein kleiner fehler kommt mit den leerzeichen

C:\Dokumente und Einstellungen\xxx>ren "C:\Dokumente und Einstellungen\xxx\Desktop\test\ZR_Zu_xls_%l.%m" "ZR Zu.xls"
Das System kann die angegebene Datei nicht finden.

datei heist: ZR_ZU_ordn_ung.xls
Member: Biber
Biber Jun 06, 2007 at 15:39:36 (UTC)
Goto Top
Jepp. Hast Recht.

Ich habe eben noch die "Tokens=.."-Klausel geändert oben im Schnipsel.

Bitte ändere sie auch in deiner Kopie auf: ..."tokens=1-5"...


Vorher stand falsch drin "tokens=1,2,5"

Gruss
Biber
Member: MTB4ever
MTB4ever Jun 06, 2007 at 17:53:05 (UTC)
Goto Top
Hallo,
kann mir mal einer bitte die Batch Commandozeile so
ändern wie ich es im folgenden Beispiel
zeige?

Also Standard von dir war:

for /f "delims=_. tokens=1-5" %i
in ('dir /b /s
x:\DeinDir\*_*_*_*.mp3') do ren
"%~fi_%j_%k_%l.%m" "%~ni
%j.%k"

ich habe jetzt so 60 Datein die z.B. so
heisen (ich schreibe mal ein paar
unterschiedliche hin, könnt ja dann sagen ob
das egal ist oder ob ich das beachten muss):
1.
Agent_Twist_live_Sputnik_Turntable_Days_28.5.2007.mp3
2.
Bitchbrothers_live_Sputnik_Turntable_Days_27.5.2007.mp3
3.
Freakster_FabienBrenner_live_Sputnik_Turntable_Days_26.5.2007.mp3
4. Mike La Funk live @ Sputnik Turntable
Days 26.5.2007.mp3
5.
Max_Riot_Alex_Carbo_live___Sputnik_Turntable_Days_27.5.2007.mp3

die sollen dann wenn möglich so
heisen:
1. Agent Twist.Mp3
2. Bitchbrothers.mp3
3. Freakster Fabian Brenner.mp3
4. Mike La Funk.mp3
5. Max Riot & Alex Carbo.mp3

der direkte Pfad lautet:
D:\+++\Mukke\+++\sttd2007 all>
Hoffe das macht keine Umstände.

Schonmal danke im Voraus.

MfG

MTB
Member: Biber
Biber Jun 07, 2007 at 05:39:31 (UTC)
Goto Top
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:

:: ---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
Member: MTB4ever
MTB4ever Jun 07, 2007 at 07:02:48 (UTC)
Goto Top
danke hat viel arbeit erspart!

mfG

MTB