Umbenennen, Zeichenreihenfolge ändern
Hi,
ich bräuchte Hilfe bei einer .bat Datei
hier soll sie liegen
und Dateien in dieser Form
und
Ich weiss leider gar nicht, wie ich das anfangen
soll und hoffe auf Eure helfenden Hände..
ich bräuchte Hilfe bei einer .bat Datei
hier soll sie liegen
C:\Programme\umbenennen.bat
und Dateien in dieser Form
D:\Test - 02.18.08 - Erstellt von Bob.jpg
in dieseD:\Mein Bild 2008-02-18.jpg
umbenennenund
D:\Test - 02.18.08 - Erstellt von Bob.jpg.txt
inD:\Mein Bild 2008-02-18.jpg.txt
Ich weiss leider gar nicht, wie ich das anfangen
soll und hoffe auf Eure helfenden Hände..
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81627
Url: https://administrator.de/forum/umbenennen-zeichenreihenfolge-aendern-81627.html
Ausgedruckt am: 20.02.2025 um 01:02 Uhr
7 Kommentare
Neuester Kommentar
Moin RF1986,
ich kann mir die Bemerkung nicht verkneifen, dass ich die Namenskonvention vorher und nachher gleichermaßen schwachsinnig finde.
Anyhow, wenn das einzig fassbare an diesen Dateien ist, dass sie alle auf "D:\" (im Root) liegen und irgendwo den Text "Erstellt von Bob." im Namen haben, dann wäre mein Vorgehen.
1. Öffne einen CMD-Prompt.
2. Schaffe Dir ein bisschen Platz zum Spielen durch diese Eingaben:
3. Wechsele auf d:\
4. Copy und Paste dieses hier:
5. wenn das angezeigte Ergebnis brauchbar aussieht, schicke diese Zeile nochmal ohne "echo" auf die Reise.
Von einem Batch würde ich abraten, weil Batche etwas sind,
Alle drei Punkte sehe ich als nicht gegeben. Mach solche Neben-der-Spur-Anforderungen mit Test/proof of concept und anschließendem Abfeuern am CMD-Prompt.
Grüße
Biber
ich kann mir die Bemerkung nicht verkneifen, dass ich die Namenskonvention vorher und nachher gleichermaßen schwachsinnig finde.
Anyhow, wenn das einzig fassbare an diesen Dateien ist, dass sie alle auf "D:\" (im Root) liegen und irgendwo den Text "Erstellt von Bob." im Namen haben, dann wäre mein Vorgehen.
1. Öffne einen CMD-Prompt.
2. Schaffe Dir ein bisschen Platz zum Spielen durch diese Eingaben:
Prompt $p_$_$g
mode con cols=166 lines=44
4. Copy und Paste dieses hier:
for %i in ("*Erstellt von Bob.*") do for /f "tokens=3-5,9,* delims=. " %a in ("%i") do @echo rename "%i" "Mein Gott 20%c-%b-%a.%e"
Von einem Batch würde ich abraten, weil Batche etwas sind,
- was man/frau mehr als einmal im Leben braucht
- was man/frau deshalb abspeichert, weil sich darin kleine Anpassungen mit vertretbarem Aufwand und kalkulierbarem Risiko durchziehen lassen
- weil man/frau sie auch unbeaufsichtigt und ohne Ängste starten kann, weil sie robust und fehlertolerant sind/mit fehlenden Daten umgehen können.
Alle drei Punkte sehe ich als nicht gegeben. Mach solche Neben-der-Spur-Anforderungen mit Test/proof of concept und anschließendem Abfeuern am CMD-Prompt.
Grüße
Biber
Moin RF1986,
das hat mit dem %mypath0% IMHO nichts zu tun.
Die Syntax beim Rename erlaubt/erwartet KEINE Pfadangaben beim Ziel:
---> .... rename "%%i" "%mypath0%\Album C 20%%c-%%b-%%a.%%e"
Hier stört das %mypath0% beim Ziel. Nimm es raus.
Zur Fehlervermeidung (unabsichtliche Leerzeichen am Ende) könntest Du noch ändern:
JETZT: > set mypath0=%USERPROFILE%\Eigene Dateien\Eigene Bilder
Besser: > set "mypath0=%USERPROFILE%\Eigene Dateien\Eigene Bilder" (etc., bei allen Variablen)
Und nach dem @echo off ind der ersten Zeile gehört ein " & setlocal".
Also insgesamt als Eröffnung "@echo off & setlocal".
Grüße
Biber
das hat mit dem %mypath0% IMHO nichts zu tun.
Die Syntax beim Rename erlaubt/erwartet KEINE Pfadangaben beim Ziel:
---> .... rename "%%i" "%mypath0%\Album C 20%%c-%%b-%%a.%%e"
Hier stört das %mypath0% beim Ziel. Nimm es raus.
Zur Fehlervermeidung (unabsichtliche Leerzeichen am Ende) könntest Du noch ändern:
JETZT: > set mypath0=%USERPROFILE%\Eigene Dateien\Eigene Bilder
Besser: > set "mypath0=%USERPROFILE%\Eigene Dateien\Eigene Bilder" (etc., bei allen Variablen)
Und nach dem @echo off ind der ersten Zeile gehört ein " & setlocal".
Also insgesamt als Eröffnung "@echo off & setlocal".
Grüße
Biber
Tja, RF1986,
wenn ich mal kurz aus Deiner Anforderungsbeschreibung zitieren darf:
Wenn Du an diesem Muster die Token (bei Trennzeichen " " und "." durchzählst und dann mal das jetzige Suchmuster danebenhältst...
Wenn Du auch dieses Muster vorsehen willst, musst Du wohl eine dafür zugeschnittene FOR-Anweisung dazubasteln.
Und außerdem jeweils nur Dateien mit dem "passenden" Suchmuster in jeder FOR-Anweisung heranziehen.
Dazu musst Du die relativ pauschale Wildcard-Anweisung etwas genauer formulieren.
Die Varianten kannst Du am CMD-Prompt durchspielen mit dem DIR-Kommando. So müsste Typ1 ("Erstellt von Bob") in etwa zu fassen sein als
und Typ2 (Tillsitter)
BTW, ich habe oben schon erwähnt, dass ich es nicht sehe, dass Du für dieses problemchen einen stressarmen Batch hinschmettern kannst, der unbeaufsichtigt vor sich hin schnurren kann, oder?
Grüße
Biber
wenn ich mal kurz aus Deiner Anforderungsbeschreibung zitieren darf:
und Dateien in dieser Form
in diese
in
D:\Test - 02.18.08 - Erstellt von Bob.jpg
in diese
D:\Mein Bild 2008-02-18.jpg
umbenennen undD:\Test - 02.18.08 - Erstellt von Bob.jpg.txt
in
D:\Mein Bild 2008-02-18.jpg.txt
Wenn Du an diesem Muster die Token (bei Trennzeichen " " und "." durchzählst und dann mal das jetzige Suchmuster danebenhältst...
D:\Test - 02.18.08 - Erstellt von Bob.jpg.txt
[1D:\Test]delim[2-]delim[3tt]delim[4mm]delim[5jj]delim[6-]delim[7Erstellt]delim[8von]delim[9Bob]delim[RESTjpg.txt ]
[1D:\Test]delim[2-]delim[3tt]delim[4mm]delim[5jj]delim[6-]delim[7Erstellt]delim[8von]delim[9Bob]delim[RESTjpg.txt ]
D:\Impact 02.07.08 - by Tillsitter.jpg.txt
[1D:\Impact]delim[2tt]delim[3mm]delim[4jj]delim[5-]delim[6by]delim[7Tillsitter]delim[8jpg]delim[9txt]
... dieser Dateinamen hat einen anderen Aufbau.[1D:\Impact]delim[2tt]delim[3mm]delim[4jj]delim[5-]delim[6by]delim[7Tillsitter]delim[8jpg]delim[9txt]
Wenn Du auch dieses Muster vorsehen willst, musst Du wohl eine dafür zugeschnittene FOR-Anweisung dazubasteln.
Und außerdem jeweils nur Dateien mit dem "passenden" Suchmuster in jeder FOR-Anweisung heranziehen.
Dazu musst Du die relativ pauschale Wildcard-Anweisung etwas genauer formulieren.
Die Varianten kannst Du am CMD-Prompt durchspielen mit dem DIR-Kommando. So müsste Typ1 ("Erstellt von Bob") in etwa zu fassen sein als
dir /b "* - ??.??.?? - Erstellt von Bob.*"
[okay, oben in meinem ersten Posting habe ich geschrieben for %i in ("*Erstellt von Bob.*", aber auch damit wäre der Typ2 ausgeschlossen gewesen...}und Typ2 (Tillsitter)
dir /b "* ??.??.?? - by *.*"
BTW, ich habe oben schon erwähnt, dass ich es nicht sehe, dass Du für dieses problemchen einen stressarmen Batch hinschmettern kannst, der unbeaufsichtigt vor sich hin schnurren kann, oder?
Grüße
Biber