Wenn Sie nur alles nach dem Unterstrich haben wollen (und nicht unbedingt die Länge der Zeichenkette oder die Position des Unterstrichs kennen, sondern sich darauf verlassen können, dass es nur einen Unterstrich gibt), versuchen Sie es:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
Grundsätzlich wird Ihre Zeichenkette in Token aufgeteilt, wobei der Unterstrich als Begrenzer verwendet wird (delims=_). Nur das zweite (tokens=2) wird (als Variable %%a) an die for-Schleife übergeben. Die Schleife wird nur einmal durchlaufen, da es sich in diesem Fall um eine einzelne Zeichenkette handelt.
Wenn Sie das Zeug sowohl vor als auch nach dem Unterstrich speichern wollen, versuchen Sie es:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Beachten Sie, dass %%a die Variable für das erste Token des Splits ist; %%b ist die Variable für das zweite Token des Splits.