Si sólo quieres todo lo que hay después del guión bajo (y no sabes necesariamente la longitud de la cadena o dónde está el guión bajo, pero puedes confiar en que sólo hay un guión bajo), prueba:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
Básicamente, su cadena se dividirá en tokens utilizando el guión bajo como delimitador (delims=_). Sólo el segundo (tokens=2) se pasará (como variable %%a) al bucle for. El bucle sólo se ejecutará una vez, ya que en este caso se trata de una sola cadena.
Si quieres guardar lo que hay antes y después del guión bajo, prueba:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Observe que %%a es la variable para el primer token de la división; %%b es la variable para el segundo token de la división.