É assim que você escreveria o script, mas, como você mencionou no OP, você ainda tem o problema de: ser um personagem ilegal. E IMO não há maneira de contornar isso no Windows, caracteres ilegais não podem ser usados!
@echo off
echo Enter Filename
set /p name=
set newName=%name:_=:%
ren %name% %newNname%
Isso está dentro de um loop
@echo off
setlocal enabledelayedexpansion
for /f "delims=;" %%name in ('dir /b FOLDERNAME') do (
set newName=%%name
set newName=!newName:_=:!
ren %%name !newName!
)