Si solo quiere todo después del guión bajo (y no necesariamente conoce la longitud de la cadena o dónde está el guión bajo, pero puede confiar en que solo haya un guión bajo), intente:
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 = _). Solo el segundo (tokens = 2) se pasará (como variable %% a) al ciclo for. El bucle solo se ejecutará una vez, ya que se trata de una sola cadena en este caso.
Si desea guardar las cosas antes y después del guión bajo, intente:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Tenga en cuenta 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.
help set
como se menciona en ¿Cuál es la mejor manera de hacer una subcadena en un archivo por lotes? en StackOverflow.