Se você deseja apenas tudo após o sublinhado (e não sabe necessariamente o comprimento da string ou onde está o sublinhado, mas pode confiar na existência de apenas um sublinhado), tente:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
Basicamente, sua string será dividida em tokens usando o sublinhado como delimitador (delims = _). Somente o segundo (tokens = 2) será passado (como variável %% a) para o loop for. O loop será executado apenas uma vez, já que você está lidando com uma única string.
Se você deseja salvar o material antes e depois do sublinhado, tente:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Observe que %% a é a variável para o primeiro token da divisão; %% b é a variável para o segundo token da divisão.
help set
como mencionado em Qual é a melhor maneira de fazer uma substring em um arquivo em lotes? no StackOverflow.