Fehler in der Batch (Umlaute suchen und ersetzen)

The Snake

Neu angemeldet
Registriert
15 Juli 2013
Beiträge
152
Bei SzeneBox hat ein User eine Batch gepostet, welche ich gerade gebrauchen könnte, leider funktioniert die bei mir null.
Normal sollten damit Umlaute und Sonderzeichen in Videodatein ersetzt werden, aber genau das passiert nicht.
Hier mal die Batch
[src=batch]@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%"[/src]
 
Die CodePage muss geändert werden.
Code:
Expand Collapse Copy
@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:&=%"
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:,=%"
chcp %CP% > nul
endlocal &set "%~1=%newname%"
exit /b
Wenn alles ok ist kannst du 'echo' löschen, dann ist es scharf gestellt.
 
Zurück
Oben