Kann jemand von euch diesen Batch anpassen? Zeichenfolge in Dateinamen automatisch durch andere ersetzen...

Bulliwolle

Benutzer
Mitglied seit
29. Dez 2015
Beiträge
23
Punkte für Reaktionen
1
Punkte
3
Hallo zusammen,

nachdem ich hier irgendwo gelesen habe, das der ein oder andere seine Audio-Bibliothek für die AudioStation auf Vordermann gebracht hat, habe ich das mit dem Programm TagScan auch mal gemacht.

Nach mehreren Abenden Arbeit bin ich nun soweit durch. Allerdings habe ich nun ein Problem:

Ich habe meine Hörbuchsammlung komplett neu getagt und den Dateinamen dann aus Track+Titel+Album zusammensetzen lassen. Bei den meisten Dateien sieht das toll aus, nur bei einer bekannten Reihe mit ??? im Namen nicht. Hier werden die ??? im Dateinamen in !!! umgewandelt. Das geht gar nicht:cry:
Ich möchte sowohl den Interpreten- als auch den Album-Tag aber nicht verändern, da sollen die Zeichen drin bleiben.

Mein Ziel ist also, dass die Zeichenfolge !!! immer durch das Wort 'Fragezeichen' ersetzt wird, egal an welcher Stelle es sich im Dateinamen befindet oder in welchem Unterordner die Datei liegt.

Abhilfe habe ich vermutlich zumindest zum Teil in einem Administratorenforum gefunden. Hier hatte ein User ein ähnliches Anliegen und jemand hat ihm diesen Batch genannt:

Code:
::--- Renamer.cmd
@echo off & setlocal enableDelayedExpansion
for %%i in ("c:\rename\*%%20*.*") do (
     set "neu=%%~nxi"
     Echo ren "%%i" "!neu:%%20=_!"
)

Ich habe das für mich wie folgt abgewandelt, was aber nicht funktionierte:

Code:
::--- Renamer.cmd
@echo off & setlocal enableDelayedExpansion
for %%i in ("L:\!FragezeichenTemp\*%!!!*.*") do (
     set "neu=%%~nxi"
     Echo ren "%%i" "!neu:%!!!=Fragezeichen!"
)


Ich bin ein absoluter Nichts-Checker was jegliche Programmiersprachen und -codes angeht. Ist hier vielleicht jemand, der sich damit auskennt und mir helfen kann?

Vielen Dank!
Wolle

Für den Fall, dass es von Interesse ist, den Threat mit dem o.g. Batch von 2009 habe ich durch Google hier gefunden: htt**://administrator.de/forum/dateiname-bestimmtes-zeichen-unbestimmter-stelle-suchen-ersetzen-batch-130517.html
 

Stationary

Benutzer
Sehr erfahren
Mitglied seit
13. Feb 2017
Beiträge
3.970
Punkte für Reaktionen
1.278
Punkte
194
Mit einiger Sicherheit gehören schon mal vor die drei !!! keine Prozentzeichen. Die waren in der verlinkten Batchdatei nötig, weil dort nach “%20” gesucht werden sollte. Versuch’ mal, die wegzulassen.
 

saffi

Benutzer
Mitglied seit
28. Nov 2017
Beiträge
45
Punkte für Reaktionen
2
Punkte
8
Ich würde zum Test erstmal die Ordnerstruktur dafür belassen. Ausserdem wurde und ein Umbenennungsbeispiel weiterhelfen!.

Als einzige Anmerkung zum geposteten Code, in der Pfadangabe leuchtet mir das Ausrufezeichen vor FragezeichenTemp nicht ganz ein. Oder aber das Ausrufezeichen in der letzten Zeile steht verkehrt. Ausserdem wurde ich bspw. Vorerst keine langen Ordnernahmen verwenden, da der Prozess im DOS abläuft. Generell ist da die Zeichenlange für Dateien und Ordner 8 plus Dateiendung für Dateien. Ja, seit Windows 95 glaube ich kann man das auch mit längeren Zeichenfolgen händeln, aber würde dies erstmal als Ausschlusskreterium mit ins Auge fassen!
 

Stationary

Benutzer
Sehr erfahren
Mitglied seit
13. Feb 2017
Beiträge
3.970
Punkte für Reaktionen
1.278
Punkte
194
in der Pfadangabe leuchtet mir das Ausrufezeichen vor FragezeichenTemp nicht ganz ein
Das hat der TE da vermutlich drin, weil er den Ordner so benannt hat. Es soll von “!” auf “Fragezeichen” umbenannt werden, deswegen hat er den Ordner wohl so genannt.
 

Bulliwolle

Benutzer
Mitglied seit
29. Dez 2015
Beiträge
23
Punkte für Reaktionen
1
Punkte
3
Ich habe gar keine Benachrichtigung über neue Antworten bekommen, daher schaue ich gerade erst durch Zufall hier rein... Habe ich wohl vergessen anzuklicken.

Danke erstmal für die Hinweise!

Den Ordner in dem einige Dateien zum Testen liegen, habe ich jetzt mal in "ABC" umbenannt. Einfach und kurz. Tatsächlich hatte er vorher den Namen "!FragezeichenTemp", das mache ich immer dann, wenn ich einen Ordner der Einfachheit halber kurzzeitig ganz oben in der Ordnerstruktur haben möchte.

Beispiel.JPG

So sieht jetzt ein kleiner Teil des Ordners aus, in dem die Dateien umbenannt werden sollen. Datei
01. Das Ungeheuer aus dem Meer - Die drei !!! 7 - und der unheimliche Drache.mp3
sollte danach folglich
01. Das Ungeheuer aus dem Meer - Die drei Fragezeichen 7 - und der unheimliche Drache.mp3
heißen.


Nachtrag: Ich habe die Prozentzeichen vor den "!!!" mal weggemacht, allerdings passiert weiterhin gar nichts. Das alles in Unterordnern steht, scheint das ganze ja nochmal zu erschweren, allerdings passiert auch nichts, wenn ich Testweise die Dateien eines Ordners dirkekt nach ABC kopiere.
 
Zuletzt bearbeitet:

saffi

Benutzer
Mitglied seit
28. Nov 2017
Beiträge
45
Punkte für Reaktionen
2
Punkte
8
Bin leider nicht in der Lage und der Zeit, Dein Beispiel besser nachzuspielen. Aber auf der Such im Natz nach einer Lösung habe ich das hier gefunden. Vllt hilft das ja.

batch rename
 
  • Like
Reaktionen: Bulliwolle

Bulliwolle

Benutzer
Mitglied seit
29. Dez 2015
Beiträge
23
Punkte für Reaktionen
1
Punkte
3
Ich habe daraus mal das hier gemacht:
Code:
FORFILES /s
set LIST1=%1
set LIST2=%LIST1:!!!=Fragezeichen%
ren %LIST1% %LIST2%

Ohne das FOREFILES /s hat es tatsächlich für den Ordner geklappt, in dem der Batch lag.

Ich habe es allerdings auch mit dem FOREFILES nicht hinbekommen, dass alle Unterordner mit einbezogen werden...

Wenn ich den Batch starte, werden zwar alle Dateine der Unterordner aufgelistet (hier nur ein kleiner Ausschnitt aus der Mitte)

Code:
"01. »Der Potter« tritt auf – und wieder ab - Die drei !!! 20- und die flammende Spur.mp3"
"02. Zu viele Neue auf der Szene - Die drei !!! 20- und die flammende Spur.mp3"
"03. Morton wird eingeschaltet - Die drei !!! 20- und die flammende Spur.mp3"
"04. Das Haus auf dem Hügel - Die drei !!! 20- und die flammende Spur.mp3"
"05. Es spukt schon wieder - Die drei !!! 20- und die flammende Spur.mp3"
"06. Fischt der feine Angler im Trüben! - Die drei !!! 20- und die flammende Spur.mp3"
"07. Die Falle schnappt zu - Die drei !!! 20- und die flammende Spur.mp3"
"08. Man wird handelseinig - Die drei !!! 20- und die flammende Spur.mp3"
"folder.jpg"

L:\ABC>set LIST1="01. Ein Hilferuf - Die drei Fragezeichen 1- und der Super-Papagei.mp3"

L:\ABC>set LIST2="01. Ein Hilferuf - Die drei Fragezeichen 1- und der Super-Papagei.mp3"

L:\ABC>ren "01. Ein Hilferuf - Die drei Fragezeichen 1- und der Super-Papagei.mp3" "01. Ein Hilferuf - Die drei Fragezeichen 1- und der Super-Papagei.mp3"

L:\ABC>FORFILES /s

"001 - Der Super - Papagei"
"002 - Der Phantomsee"
"003 - Der Karpatenhund"
"004 - Die schwarze Katze"
"005 - Der Fluch des Rubins"
"006 - Der sprechende Totenkopf"
"007 - Der unheimliche Drache"

aber umbenannt wird dann nur die Datei im Stammverzeichnis. Dabei rödelt der Batch bei ca. 160 Dateien in 20 Unterordnern (was nur ein kleiner Versuchsteil ist) mehrere Minuten, weil er nach jeder Umbenennung wieder alle Dateien aus den Unterordnern auflistet...
 

saffi

Benutzer
Mitglied seit
28. Nov 2017
Beiträge
45
Punkte für Reaktionen
2
Punkte
8
Weiter unten in den Kommentaren meines Links stand was mit /p für Ordner. Das müsste sicher noch hinzu gefügt werden. Heute Nachmittag nach der Arbeit schau ich mir mal das genauer an. Du kannst auch mal die Hilfe zu forfiles in der Kommandozeile aufrufen. Bis später.

Lesestoff: Forfiles

@Nachtrag: versuche mal mit dieser Zeile: FORFILES /s /m *.*

Und du solltest strickt zwei Dateien machen! Nicht nur eine Batchdatei! Ich denke die List Funktion ist eine Art Schleife. Deswegen zeigt er dir immer die Dateien am Schluss mit an. Versuch macht klug.?
 
Zuletzt bearbeitet:

Bulliwolle

Benutzer
Mitglied seit
29. Dez 2015
Beiträge
23
Punkte für Reaktionen
1
Punkte
3
Ich habe jetzt tatsächlich mal einiges gelesen, die Forfiles-Seite hatte ich auch entdeckt, daher habe ich das /s gehabt ;-)
Ich verstehe aber auch noch nicht wirklich, was das %1 als "Argument" da zu suchen hat, allerdings läuft es ohne das komplett schief.

In der Frustration habe ich aber nochmal weiter recherchiert und bin tatsächlich auf ein Programm gestoßen, was mir helfen konnte!!! :D
Das Programm Total Commander zeigt alle Dateien aus allen Unterordnern an und hat dann sogar eine "Suchen-Ersetzen-Funktion" für die Dateinamen!!

Entsprechend ist wenigstens mein Problem jetzt gelöst, auch wenn ich im Batch-Schreiben dafür jetzt nur marginal schlauer bin?
 
  • Like
Reaktionen: saffi


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat