Zahlen in Dateinamen entfernen, durch Zufall welche hinzufügen
Guten Morgen, Community.
Dies ist wahrscheinlich eine Aufgabe für unseren @bastla, gerne nehme ich aber auch Hilfe von anderen Personen an.
Hier mein Anliegen.
Ich habe ein Verzeichnis mit mehreren Dateien, die unterschiedlich heißen. Einige Dateinamen mit Zahlen drin, andere wieder nicht.
Nun möchte ich das alle Zahlen aus dem Dateinamen entfernt werden. Danach sollen die Dateien neu mit Zahlen versehen werden, die vorne an den Dateinamen gehangen werden.
Versuche es anhand eines Beispieles zu erklären:
Verzeichnis Musik
Datei 1: lied.mp3
Datei 2: lied-2.mp3
Datei 3: 3-lied.mp3
Script macht aus den Dateien dann zuerst "lied.mp3, lied-.mp3 und -lied.mp3". Nun soll das Script erkennen, wie viele Dateien es sind. In dem Fall 3 und fügt nun die Zahlen 1-3 bzw. 001-003 inkl. "-"vorne an die Dateinamen und das willkürlich:
Datei 1: 001-lied-.mp3
Datei 2: 002--lied.mp3
Datei 3: 003-lied.mp3
Hoffe ihr könnt mir helfen.
Gruß
d4shoerncheN
Dies ist wahrscheinlich eine Aufgabe für unseren @bastla, gerne nehme ich aber auch Hilfe von anderen Personen an.
Hier mein Anliegen.
Ich habe ein Verzeichnis mit mehreren Dateien, die unterschiedlich heißen. Einige Dateinamen mit Zahlen drin, andere wieder nicht.
Nun möchte ich das alle Zahlen aus dem Dateinamen entfernt werden. Danach sollen die Dateien neu mit Zahlen versehen werden, die vorne an den Dateinamen gehangen werden.
Versuche es anhand eines Beispieles zu erklären:
Verzeichnis Musik
Datei 1: lied.mp3
Datei 2: lied-2.mp3
Datei 3: 3-lied.mp3
Script macht aus den Dateien dann zuerst "lied.mp3, lied-.mp3 und -lied.mp3". Nun soll das Script erkennen, wie viele Dateien es sind. In dem Fall 3 und fügt nun die Zahlen 1-3 bzw. 001-003 inkl. "-"vorne an die Dateinamen und das willkürlich:
Datei 1: 001-lied-.mp3
Datei 2: 002--lied.mp3
Datei 3: 003-lied.mp3
Hoffe ihr könnt mir helfen.
Gruß
d4shoerncheN
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197558
Url: https://administrator.de/forum/zahlen-in-dateinamen-entfernen-durch-zufall-welche-hinzufuegen-197558.html
Ausgedruckt am: 12.04.2025 um 18:04 Uhr
13 Kommentare
Neuester Kommentar
Das müsste gehen:
(Verzeichnis mit den MP3 Dateien in Zeile 3 eintragen)
(Verzeichnis mit den MP3 Dateien in Zeile 3 eintragen)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off
setlocal ENABLEDELAYEDEXPANSION
set searchdir=C:\Musik\
set searchextension=*.mp3
set counter=1
cd /d "%searchdir%"
for /f "tokens=*" %%i IN ('dir /b /A-D "%searchdir%%searchextension%"') DO @(
call :removenumbers "%%i"
echo !filename!
move "%%i" "!filename!"
set /A counter=!counter!+1
)
goto end
:removenumbers
set filename=%~1
set extension=%filename:~-4%
set filename=%filename:~,-4%
for /L %%k in (0,1,9) DO @(
set filename=!filename:%%k=!
)
set filename=00%counter%-%filename%%extension%
goto :eof
:end
pause
Jetzt geht es mit Leerzeichen im Namen ... sorry
Ich lege Dir folgende Seite ans Herz (Alles rund um Stringmanipulationen per Batch):
http://www.dostips.com/DtTipsStringManipulation.php#Snippets.Remove
Ich lege Dir folgende Seite ans Herz (Alles rund um Stringmanipulationen per Batch):
http://www.dostips.com/DtTipsStringManipulation.php#Snippets.Remove
Ahhhh... hatte das "tokens=* in der ersten for-Schleife vergessen.
Habe das Script oben korrigiert jetzt läufts mit Leerzeichen im Namen!
eine kürzere Variante noch als Nachtrag:
Habe das Script oben korrigiert jetzt läufts mit Leerzeichen im Namen!
eine kürzere Variante noch als Nachtrag:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
setlocal ENABLEDELAYEDEXPANSION
set searchdir=C:\Musik\
set searchextension=*.mp3
set counter=1
cd /d "%searchdir%"
for /f "tokens=*" %%i IN ('dir /b /A-D "%searchdir%%searchextension%"') DO (
set filename=%%i
set extension=!filename:~-4!
set filename=!filename:~,-4!
for /L %%k in (0,1,9) DO @(
set filename=!filename:%%k=!
)
set finalname=00!counter!-!filename!!extension!
echo !finalname!
move "%%i" "!finalname!"
set /A counter=!counter!+1
)

Hi du,
hab bei euch mal mitgelesen und muss leider sagen, dass es bei mir nicht funktioniert
ja ich habe den Pfad angepasst auf C:\
ja ich hab da eine Testdatei namens Testosteron.mp3 erstellt.
habs dann mal anlaufen lassen und erstmal nichts passiert.
Nachdem ich dann ein "Pause" eingefügt habe, gibt er mir den richtigen neuen Dateinamen aus (logisch ist ja echo) und in der nächsten Zeile schreibt er
liegt der fehler bei mir oder beim Skript ?
Nebenbei wahnsinnig schnell das Ganze zusammengebaut
meinen Respekt
Grüße
Exzellius
PS: hab die verkürzte Version des Skriptes genommen
[EDIT]
Entwarnung !
Hab anscheinend nicht die Berechtigung zum Umbenennen auf C:\ -_-
ich hab die Datei zwar selbst erstellt, aber egal.
Sobald ich die Datei in meine Eigenen Dateien gelegt habe funktioniert alles wie gewünscht.
[/EDIT]
hab bei euch mal mitgelesen und muss leider sagen, dass es bei mir nicht funktioniert
ja ich habe den Pfad angepasst auf C:\
ja ich hab da eine Testdatei namens Testosteron.mp3 erstellt.
habs dann mal anlaufen lassen und erstmal nichts passiert.
Nachdem ich dann ein "Pause" eingefügt habe, gibt er mir den richtigen neuen Dateinamen aus (logisch ist ja echo) und in der nächsten Zeile schreibt er
1
Das System kann die angegebene Datei nicht finden.
Nebenbei wahnsinnig schnell das Ganze zusammengebaut
Grüße
Exzellius
PS: hab die verkürzte Version des Skriptes genommen
[EDIT]
Entwarnung !
Hab anscheinend nicht die Berechtigung zum Umbenennen auf C:\ -_-
ich hab die Datei zwar selbst erstellt, aber egal.
Sobald ich die Datei in meine Eigenen Dateien gelegt habe funktioniert alles wie gewünscht.
[/EDIT]

Oder das :D jo danke dir hast mir sehr geholfen.
Grüße
Exzellius
Grüße
Exzellius
@ colinardo
Anstelle von Kunststücken wie
(wobei Du Dich auch noch darauf verlassen musst, dass der Pfad tatsächlich mit einer Laufwerksangabe beginnt) würde sich vielleicht ein
aufdrängen (wenn schon kein
Grüße
bastla
Anstelle von Kunststücken wie
1
2
2
%searchdir:~0,2%
cd "%searchdir%"
cd /d "%searchdir%"
PushD
/ PopD
benötigt werden sollte) ...Grüße
bastla
merci @bastla , man lernt halt immer was dazu !