>>426
set n=8
:LOOP
for /f "usebackq delims=" %%a in ("%~1") do ( set "s=%%~a"
call ren "%~1" "%%s:~0,%n%%%%~x1"
goto :BREAK
)
:BREAK
shift
if not "%~1"=="" goto :LOOP

拡張子.batで保存。対象をこのバッチにドロップや送るで使用。複数可。コマンドからなら対象を引数に。
1行目のn=8が変更後ファイル名の文字数。適当に書き換えて
空ファイルだったりファイル名に使えない文字が合った場合はリネームに失敗し何も起こらない(たぶん)
エラー判定したりログ吐かせたければ自分で調べて改良してくれ