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