[PC: batch-Dateien] rename-Probleme

Der Name ist Programm . Alles , was NICHTS mit euren Rollern zu tun hat , kommt hier rein . Viel Spaß !
Antworten
Benutzeravatar
Frank67
Kymco-King
Beiträge: 5719
Registriert: 14.06.2010, 14:38
Wohnort: Parchim
Hat sich bedankt: 12 Mal
Danksagung erhalten: 212 Mal
Kontaktdaten:

[PC: batch-Dateien] rename-Probleme

Beitrag von Frank67 »

Moin Leute - besonders an die PC-Freaks.

Ja, ich rhabt richtig gelesen: Es geht um Stapelverarbeitung per .bat-Datei.

folgendes Problem:

ich habe diverse Dateien, die im Dateinamen ein gemeinsames "Muster" haben, welches umbenannt werden soll.

Komischerweise klappt es problemlos, wenn ich es mit Sound-Dateien durchführe:
ren "*_deu.*" "*_eng.*"

Aber wenn ich eine andere Datei -XML-Dateien mit der Endung .loc umstellen will, dann wird nicht das gemeinsame Muster ausgetauscht, sondern es wird hinten an .loc angehängt:
ren "*German.loc" "*English.loc"
..ergibt *german.locEnglish.loc anstatt *English.loc

Hat jemand vielleicht eine Idee, warum er Sound-Dateien problemlos umbenennt, aber die XML-Dateien mit Endung .loc falsch umbenannt werden?

(Anscheinend übersehe ich etwas oder es bedarf Zwischenschritte)


Danke für eure Anregungen!
Gruß Frank

Was ist Elektrizität?

Morgens mit Hochspannung aufstehen,
mit Widerstand zur Arbeit gehen,
den ganzen Tag gegen den Strom schwimmen,
abends geladen nach Hause kommen,
an die Dose fassen
und eine gewischt bekommen!


DAS ist Elektrizität!
Atlas
Testfahrer de luxe
Beiträge: 101
Registriert: 31.05.2008, 11:25
Wohnort: Rheinbach
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Atlas »

Probier mal das Ganze mit dem Zusatz /b
wenn es mit ren nicht geht, dann:
copy/b German.loc english.loc
Benutzeravatar
Frank67
Kymco-King
Beiträge: 5719
Registriert: 14.06.2010, 14:38
Wohnort: Parchim
Hat sich bedankt: 12 Mal
Danksagung erhalten: 212 Mal
Kontaktdaten:

Beitrag von Frank67 »

Moin Atlas,

also anstatt ren (ren für rename) copy? und dann /Y /B hinterher oder nur /B?
(Weil unter Win per Stapelverarbeitung zu kopieren, verwende ich:
xcopy "<Ursprungspfad>\*<dateinamenfragment>.*" "<Zielpfad>\" /Y
...was ja problemlos klappt)

Ich werde es nachher mal testen und Rückmeldung geben.


Ich vermute aber auch, dass er komischerweise mit der als .loc getarnten XML Probleme bekommt, wenn ich per Wildcards gleich mehrere Dateien umbenennen möchte...
Vielleicht sollte ich ja auch mal mit in diese Richtung testen, dass ich zuerst die Endung ändere, bevor ich den Dateinamen ändere und anschließend die Dateiendung wieder auf *.loc setze...


Naja, mal die Sachen durchtesten. - Irgendwo muss ja der Hase im Pfeffer begraben liegen...

Rückmeldung folgt. - Danke erst einmal!
Gruß Frank

Was ist Elektrizität?

Morgens mit Hochspannung aufstehen,
mit Widerstand zur Arbeit gehen,
den ganzen Tag gegen den Strom schwimmen,
abends geladen nach Hause kommen,
an die Dose fassen
und eine gewischt bekommen!


DAS ist Elektrizität!
Benutzeravatar
Frank67
Kymco-King
Beiträge: 5719
Registriert: 14.06.2010, 14:38
Wohnort: Parchim
Hat sich bedankt: 12 Mal
Danksagung erhalten: 212 Mal
Kontaktdaten:

Beitrag von Frank67 »

So, ich habe etwas weiter rumgespielt...

Also Umbenennen per eines Teils des Dateinamens per xcopy oder copy klappt nicht.

Jetzt habe ich auch einige eventuelle Möglichkeiten betreffs rename oder move versucht => ebenfalls kein Erfolg.

derzeit bin ich beim Testen über cmd-Datei die Umbenennung hin zu bekommen... - Doch leider muss ich erst einmal suchen, wie ich den String des Dateinamens ohne Endung einlese und wie ich nur einen definierten Teilsting aus dem Dateinamen ersetzen kann.

irgendwie muss ich das wohl über "%VAR:string1=string2" bewerkstelligen, während ich ren ausführe

Dazu werde ich wohl Strings einlesen und in Variablen setzen müssen, damit das klappt.

Ich werde mich also dazu mal schlaumachen - heißt: nachlesen - müssen...
Gruß Frank

Was ist Elektrizität?

Morgens mit Hochspannung aufstehen,
mit Widerstand zur Arbeit gehen,
den ganzen Tag gegen den Strom schwimmen,
abends geladen nach Hause kommen,
an die Dose fassen
und eine gewischt bekommen!


DAS ist Elektrizität!
Benutzeravatar
Frank67
Kymco-King
Beiträge: 5719
Registriert: 14.06.2010, 14:38
Wohnort: Parchim
Hat sich bedankt: 12 Mal
Danksagung erhalten: 212 Mal
Kontaktdaten:

Beitrag von Frank67 »

Bild
... ich bin fündig geworden


Das Problem lag wirklich darin, das er beim "normalen" rename-Befehl anscheinend einen Interpretationsfehler bekommt:

Wären die nicht zu verändernden und die zu verändernden Teile des Dateinamens "künstlich" -z.B. durch einen Unterstrich- getrennt und ich gebe dann diesen Unterstrich mit bei der Umbenennung an, dann weiß das System, wie es die Umbenennung vornehmen soll.
(nach diesem Muster waren ja auch die Sound-Dateien aufgebaut: Beispiel_ger.wav)
Ohne der künstlichen Trennung behandelt er "BeispielGerman.loc" als wenn das ein Dateiname ohne Endung wäre, an das er dann einfach English.loc als Dateiendung angefügt hat.


Damit er aber den Dateinamen richtig umbenennen kann, benötigt es eines kleinen Scriptes zur richtigen Erkennung/Handhabung von String-Teilen/Zeichenketten innerhalb des Dateinamens.

So habe ich folgende Script-Vorlage gefunden:

Code: Alles auswählen

@echo off %debug%
setlocal enabledelayedexpansion
for %%i in (%1) do (
 set x=%%i
 rename "%%i" "!x:%~2=%~3!"
)
angepasst auf meinen Fall lautet es dann:

Code: Alles auswählen

@echo off %debug%
setlocal enabledelayedexpansion
for %%i in ("*.loc") do (
 set x="%%i"
 rename "%%i" "!x:German=English!"
)

Damit lädt er sich in der 4. Zeile den Dateinamen als Variable %i.

In der 5. Zeile wird diese Variable %i (also der Dateiname "BeispielGerman.loc") nun nach der Zeichenfolge German durchsucht und durch English ersetzt. "rename" kann nun richtig interpretieren und die Datei als "BeispielEnglish.loc" umbenennen.
Gruß Frank

Was ist Elektrizität?

Morgens mit Hochspannung aufstehen,
mit Widerstand zur Arbeit gehen,
den ganzen Tag gegen den Strom schwimmen,
abends geladen nach Hause kommen,
an die Dose fassen
und eine gewischt bekommen!


DAS ist Elektrizität!
Antworten

Zurück zu „OFF TOPIC“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste