Bei Dateinamen vorne etwas hinzufügen (batch)
Hallo!
Ich bin auf der Suche nach einer Lösung für mein für euch sicher läppisches Problem.
Und zwar befinden sich in meinem Ordner C:\Lieder 3 Dateien:
z.B
3 - TitelDesLiedes.mp3
7 - TitelDesLiedes.mp3
15 - TitelDesLiedes.mp3
Ich kenne 3 Variablen:
%Lied1% -> z.B 15
%Lied2% -> z.B 7
%Lied3% -> z.B 3
Ich kenne nur die Zahl, nicht den Titel des Liedes!
Jetzt sollten die 3 Dateien umbenannt werden:
Lied 1_15 - TitelDesLiedes.mp3
Lied 2_7 - TitelDesLiedes.mp3
Lied 3_3 - TitelDesLiedes.mp3
Habe es so probiert:
ren "C:\Lieder\%nr1%*" Lied1_%nr1%*
Ergebnis:
Vorher: 1 - Robyn.mp3
Nacher:
Lied1_1yn.mp3
Der erste Teil wird weggeschnitten
Eine For-Schleife ist nicht unbedingt notwendig, da es ja nur 3 Dateien sind...
Könnt ihr mir bitte weiterhelfen?
Danke schon mal!
Ich bin auf der Suche nach einer Lösung für mein für euch sicher läppisches Problem.
Und zwar befinden sich in meinem Ordner C:\Lieder 3 Dateien:
z.B
3 - TitelDesLiedes.mp3
7 - TitelDesLiedes.mp3
15 - TitelDesLiedes.mp3
Ich kenne 3 Variablen:
%Lied1% -> z.B 15
%Lied2% -> z.B 7
%Lied3% -> z.B 3
Ich kenne nur die Zahl, nicht den Titel des Liedes!
Jetzt sollten die 3 Dateien umbenannt werden:
Lied 1_15 - TitelDesLiedes.mp3
Lied 2_7 - TitelDesLiedes.mp3
Lied 3_3 - TitelDesLiedes.mp3
Habe es so probiert:
ren "C:\Lieder\%nr1%*" Lied1_%nr1%*
Ergebnis:
Vorher: 1 - Robyn.mp3
Nacher:
Lied1_1yn.mp3
Der erste Teil wird weggeschnitten
Eine For-Schleife ist nicht unbedingt notwendig, da es ja nur 3 Dateien sind...
Könnt ihr mir bitte weiterhelfen?
Danke schon mal!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 85925
Url: https://administrator.de/contentid/85925
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
14 Kommentare
Neuester Kommentar
Bei 3 Dateien würde ich den Explorer verwenden: Rechtsklick auf die Datei > Umbenennen.
Die Variablen %nrx% sind ja überhaupt nicht definiert.
... und ich würde einfach die Datei markieren und F2 drücken.
... aber wenn's denn schon per CMD sein soll:
In der ersten Klammer steht die jeweilige Zuordnung zwischen Lied-Nr und Nr im Titel des Liedes.
Grüße
bastla
[Edit] Da bin ich anscheinend etwas spät eingestiegen ... [/Edit]
... aber wenn's denn schon per CMD sein soll:
for %i in (1:15 2:7 3:3) do @for /f "tokens=1-2 delims=:" %a in ("%i") do @for /f "delims=" %d in ('dir /b *.mp3^|findstr /b /c:"%b -"') do ren "%d" "Lied %a_%~nxd"
Grüße
bastla
[Edit] Da bin ich anscheinend etwas spät eingestiegen ... [/Edit]
Hallo Ghandi!
Kann ich nicht nachvollziehen - bei mir funktioniert auch die erste Variante; allerdings ist es so, dass, wenn sich das Ganze innerhalb einer "for"-Schleife abspielt, %v% zwar einen (neuen) Wert erhält, dieser aber nicht angezeigt werden kann, da Variableninhalte grundsätzlich nur einmal, am Beginn einer Schleife, ausgewertet werden - und zu Beginn Deiner Schleife war %v% noch leer.
Beschreibe doch Dein Vorhaben / den Gesamtablauf ein wenig näher, damit zB ersichtlich wird, wo und wie die erstmalige Wertzuweisung der Variablen %Lied1% erfolgt - vielleicht lässt sich dort gleich ansetzen.
Ansonsten noch ein Hinweis: Die Klammern sind überflüssig, wenn nicht noch andere Befehle dazwischen stehen sollen, und es gäbe auch einen Ansatz ohne "if":
Grüße
bastla
Kann ich nicht nachvollziehen - bei mir funktioniert auch die erste Variante; allerdings ist es so, dass, wenn sich das Ganze innerhalb einer "for"-Schleife abspielt, %v% zwar einen (neuen) Wert erhält, dieser aber nicht angezeigt werden kann, da Variableninhalte grundsätzlich nur einmal, am Beginn einer Schleife, ausgewertet werden - und zu Beginn Deiner Schleife war %v% noch leer.
Beschreibe doch Dein Vorhaben / den Gesamtablauf ein wenig näher, damit zB ersichtlich wird, wo und wie die erstmalige Wertzuweisung der Variablen %Lied1% erfolgt - vielleicht lässt sich dort gleich ansetzen.
Ansonsten noch ein Hinweis: Die Klammern sind überflüssig, wenn nicht noch andere Befehle dazwischen stehen sollen, und es gäbe auch einen Ansatz ohne "if":
set Lied1=00%Lied1%
set Lied1=%Lied1:~-3%
Grüße
bastla