for /f "delims=" %%a in ('dir /b /a-d /s') do (
set "fname=%%~nxa"
set "fpath=%%~dpa"
setlocal enabledelayedexpansion
set "nname=!fname:~15!"
ren "!fpath!!fname!" "!nname!"
endlocal
)
This is the safe way to preserve exclamation marks.