Se volete solo tutto dopo il trattino basso (e non sapete necessariamente la lunghezza della stringa o dove si trova il trattino basso, ma potete contare sul fatto che ci sia solo un trattino basso), provate:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
Fondamentalmente, la tua stringa sarà divisa in token usando il trattino basso come delimitatore (delims=_). Solo il secondo (tokens=2) sarà passato (come variabile %%a) al ciclo for. Il ciclo verrà eseguito solo una volta poiché in questo caso si tratta di una singola stringa.
Se volete salvare le cose sia prima che dopo il trattino basso, provate:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Notate che %%a è la variabile per il primo token della divisione; %%b è la variabile per il secondo token della divisione.