PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (BATCH) - Umlaute und Sonderzeichen ersetzen.



Nightmare
06.04.2015, 10:46
Da einie (US)Streamhoster Probleme mit unseren Umlauten und Sonderzeichen haben, habe ich vor Monaten eine Batch geschrieben, die Videos umbenennt.

@echo off&setlocal
for /f "delims=" %%a in ('dir /a:-d /o:n /b /s *.flv *.wmv *.mp4 *.mkv *.avi *.mpg *.mpeg *.mov *.ts *.m2ts *.rm *.rmvb *.ogm *.webm *.txt *.jpg *.png *.gif') do call :next "%%a"
GOTO:EOF
:next
set "newname=%~nx1"
set "newname=%newname:ä=ae%"
set "newname=%newname:Ä=Ae%"
set "newname=%newname:ö=oe%"
set "newname=%newname:Ö=Oe%"
set "newname=%newname:ü=ue%"
set "newname=%newname:Ü=Ue%"
set "newname=%newname:ß=ss%"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=%"
set "newname=%newname:^=%"
set "newname=%newname:$=%"
set "newname=%newname:#=%"
set "newname=%newname:@=%"
set "newname=%newname:+=%"
set "newname=%newname:}=%"
set "newname=%newname:{=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:`=%"
set "newname=%newname:,=%"

ren %1 "%newname%"
Vielleicht brauch sie ja einer. Diese kann auch gern erweitert werden.

Nightmare
26.04.2015, 08:36
Ich habe gerade selbst feststellen müssen, bei sehr vielen Dateien, ist es leider nicht optimal. Aber vielleicht kann ja einer ein kleines Tool dafür schreiben.

HaZe
26.04.2015, 12:19
Die dürfte Probleme mit Pfaden mit Leerzeichen drin haben oder?
Bin jetzt nicht so der Batchzauberer, aber so wäre meiner Meinung nach besser: ren "%1" "%newname%"

- - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -

..is natürlich Quatsch. Aber ich kann meinen Beitrag irgendwie nicht mehr editieren.

- - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -

Für Don (und alle anderen mit Codepagegezicke).
Als ANSI File speichern (notepad.exe, Codierung ANSI wählen), dann sollte es gehen.



@echo off&setlocal
chcp 1252

for /f "delims=" %%a in ('dir /a:-d /o:n /b /s *.flv *.wmv *.mp4 *.mkv *.avi *.mpg *.mpeg *.mov *.ts *.m2ts *.rm *.rmvb *.ogm *.webm *.txt *.jpg *.png *.gif') do call :next "%%a"
GOTO:EOF
:next
set "newname=%~nx1"
set "newname=%newname:ä=ae%"
set "newname=%newname:Ä=Ae%"
set "newname=%newname:ö=oe%"
set "newname=%newname:Ö=Oe%"
set "newname=%newname:ü=ue%"
set "newname=%newname:Ü=Ue%"
set "newname=%newname:ß=ss%"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=%"
set "newname=%newname:^=%"
set "newname=%newname:$=%"
set "newname=%newname:#=%"
set "newname=%newname:@=%"
set "newname=%newname:+=%"
set "newname=%newname:}=%"
set "newname=%newname:{=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:`=%"
set "newname=%newname:,=%"

ren %1 "%newname%"

The Don
26.04.2015, 14:53
So rennt es bei mir perfekt.

@echo off&setlocal disabledelayedexpansion
set "FName="
for /f "delims=" %%a in ('dir /a:-d /o:n /b /s *.flv *.wmv *.mp4 *.mkv *.avi *.mpg *.mpeg *.mov *.ts *.m2ts *.rm *.rmvb *.ogm *.webm *.txt *.jpg *.png *.gif') do (
set "FName=%%~a"
call:next NFName
setlocal enabledelayedexpansion
echo ren "!FName!" "!NFName!"
endlocal
)
GOTO:EOF

:next
setlocal disabledelayedexpansion
for /f "tokens=2delims=:." %%b in ('chcp') do set "CP=%%~b"
chcp 1252 > nul
for %%b in ("%FName%") do set "newname=%%~nxb"
set "newname=%newname:ä=ae%"
set "newname=%newname:Ä=Ae%"
set "newname=%newname:ö=oe%"
set "newname=%newname:Ö=Oe%"
set "newname=%newname:ü=ue%"
set "newname=%newname:Ü=Ue%"
set "newname=%newname:ß=ss%"
set "newname=%newname:)=%"
set "newname=%newname:(=%"
set "newname=%newname:&=and%"
set "newname=%newname:@=%"
set "newname=%newname:+=%"
set "newname=%newname:!=%"
set "newname=%newname:?=%"
set "newname=%newname:]=%"
set "newname=%newname:[=%"
set "newname=%newname:;=%"
set "newname=%newname:'=%"
set "newname=%newname:,=%"
chcp %CP% > nul
endlocal &set "%~1=%newname%"
exit /b