derdoctor
Goto Top

Sonderzeichen aus FOR Variable entfernen

Habe gestern bereits eine Anfrage bezüglich des Auslesens einer beschreibenden Datei und der Weiterverwendung des Ausgelesenen zu einem Dateinamen für eine 3. Dritte Datei gestellt.
1234.txt enthält "titel" "interpret"
1234.wav Umbennen in "titel""interpret".wav

Habe mit dem Batch das mir gestern empfohlen wurde, auch schon einige tausend Dateien so umbenannt wie ich mir das vorgestellt habe, aber dann fiel mir auf,
dass nicht alle Dateien umgenannt wurden. Der Grund dafür ist, das in einigen wenigen der Beschreibenden Textdateien "/" ein Slash imm Titelnamen verwendet wird:
Emiliana, Torrini / Albert & blabla (Radio Edit).

Die Klammern und das Kaufmanns "und" sind kein Problem, aber das Slash ist eins, da das in Dateinamen nicht verwendet werden darf.
Die Frage nun, kriegt man das mit irgendeinem FOR Parameter weg bzw ignoriert?
Es muss nicht aus der Datei verschwinden, aber es darf eben nicht in die %%a Variable mit hinein. (wenn die anderen Sonderzeichen mit weg sind wärs auch nicht schlimm)
In der Hilfe zum For Befehl und auch im Web habe ich wenig brauchbares gefunden.

Vielleicht erbarmt sich hier nochmal jemand für mich??

Gute Besserung

Doc
Kommentar vom Moderator Biber am 05.02.2010 um 13:52:02 Uhr
1234.wav Umbennen in "titel""interpret".wav
#rgc=646

Content-ID: 134149

Url: https://administrator.de/forum/sonderzeichen-aus-for-variable-entfernen-134149.html

Ausgedruckt am: 23.12.2024 um 14:12 Uhr

77559
77559 22.01.2010 um 19:01:23 Uhr
Goto Top
Hallo Doc,

wenn du eine Frage zu einem bestehenden Thread hast, solltest du die auch da unterbringen oder zu mindestens einen Link zu diesem Thread angeben. So machst du es potentiellen Helfern schwer. Du kannst Zeichen in For Variablen nicht direkt ersetzen, nimm eine :Subroutine und ersetze die Sonderzeichen dort in einer Hilfsvariable.

for /f "delims=" %%i in ('dir /b /a-d *.txt') do if exist "%%~ni.wav" (  
    for /f "usebackq tokens=5,6 delims=;" %%a in ("%%i") do Call :Ren "%%~ni.*" "%%a - %%b.*"   
) 
pause
Goto :Eof
:Ren
Set "NewName=%~2"  
Set "NewName=%NewName:/=;%"  
Ren %1 "%NewName%"  

ungetestet.

Gruß
LotPings
Biber
Biber 05.02.2010 um 13:55:21 Uhr
Goto Top
Moin dudoctor,

geht das noch weiter mit diesem Beitrag oder war's das schon?

Sag doch mal bitte den Stand des Projektfortschritts an....

Grüße
Biber aka derbiber
derdoctor
derdoctor 05.02.2010 um 17:06:31 Uhr
Goto Top
Oh sorry ich hab wohl vergessen den "Beitrag als gelöst markieren" knopf zu drücken.

vielen Dank