Jeśli chcesz tylko wszystko po podkreślniku (i niekoniecznie znasz długość łańcucha lub gdzie jest podkreślnik, ale możesz polegać na tym, że jest tylko jeden podkreślnik), spróbuj:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
Zasadniczo twój ciąg znaków zostanie podzielony na tokeny przy użyciu podkreślnika jako ogranicznika (delims=_). Tylko drugi z nich (tokens=2) zostanie przekazany (jako zmienna %%a) do pętli for. Pętla zostanie uruchomiona tylko raz, ponieważ w tym przypadku mamy do czynienia z pojedynczym łańcuchem znaków.
Jeśli chcesz zapisać rzeczy zarówno przed jak i po podkreślniku, spróbuj:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Zauważ, że %%a jest zmienną dla pierwszego tokena podziału; %%b jest zmienną dla drugiego tokena podziału.