यदि आप केवल अंडरस्कोर के बाद सब कुछ चाहते हैं (और जरूरी नहीं कि स्ट्रिंग की लंबाई या जहां अंडरस्कोर है, लेकिन वहां केवल एक अंडरस्कोर होने पर भरोसा कर सकते हैं), कोशिश करें:
for /f "tokens=2 delims=_" %%a in ("%STRING%") do (
set AFTER_UNDERSCORE=%%a
)
मूल रूप से, आपका स्ट्रिंग एक सीमांकक के रूप में अंडरस्कोर का उपयोग करके टोकन में विभाजित हो जाएगा (delims = _)। लूप के लिए केवल दूसरा वाला (टोकन = 2) पास किया जाएगा (चर %% a)। लूप केवल एक बार चलेगा क्योंकि आप इस मामले में एक स्ट्रिंग के साथ काम कर रहे हैं।
यदि आप अंडरस्कोर से पहले और बाद में दोनों सामान बचाना चाहते हैं, तो कोशिश करें:
for /f "tokens=1,2 delims=_" %%a in ("%STRING%") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
)
ध्यान दें कि %% a विभाजन के पहले टोकन के लिए चर है; %% बी विभाजन के दूसरे टोकन के लिए चर है।
help setजैसा कि एक बैच फ़ाइल में सबस्ट्रिंग करने का सबसे अच्छा तरीका क्या है? StackOverflow पर।