Jika Anda hanya ingin semuanya setelah garis bawah (dan tidak perlu tahu panjang string atau di mana garis bawah itu, tetapi dapat mengandalkan hanya ada satu garis bawah), coba:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
Pada dasarnya, string Anda akan dibagi menjadi token menggunakan garis bawah sebagai pembatas (delims = _). Hanya yang kedua (token = 2) yang akan diteruskan (sebagai variabel %% a) ke loop for. Loop hanya akan berjalan sekali karena Anda berurusan dengan string tunggal dalam kasus ini.
Jika Anda ingin menyimpan barang sebelum dan sesudah garis bawah, coba:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
Perhatikan bahwa %% a adalah variabel untuk token pertama dari pemisahan; %% b adalah variabel untuk token kedua dari pemisahan.
help set
sebagaimana disebutkan dalam Apa cara terbaik untuk melakukan substring dalam file batch? di StackOverflow.