Відповіді:
Через те, як відсоткові відсотки використовуються для змінних, він псує те, що ви намагаєтеся зробити. Один із способів цього - затримка розширення. Ви також повинні уникнути відсотків, поставивши два з них підряд %%
.
Щось на зразок:
Setlocal EnableDelayedExpansion
set _name=s-t-r-i-n-g
set _name=!_name:-=%%_%%!
echo %_name%