2016-12-22 37 views
1

我有一個變量:解析一個動態調整串

set myvar="26:deployment.javaws.jre.0.product=1.8.0_111" 

我要檢索的JRE後的值。和.product,它將是整數0.這裏的值將始終是一個整數。變量can可以稍微改變,但[jre。] [integer] [。product]的格式將始終保持不變。正因爲如此,我不能得到使用硬編碼值的子字符串,因爲字符串可能每次都不同,並且如果說在字符串開頭的第一個數字是3位數而不是2個長度,那麼開始時會有更多字符。我怎樣才能做到這一點?

回答

1
for /f "tokens=5 delims=:." %%a in ("%myvar%") do echo -%%a- 

試試這個

+0

完美的作品,謝謝! – user4264164

3

萬一點(和冒號)在jre.部分的前面的數量可能會有所不同,你可以這樣做:

set "myvar=26:deployment.javaws.jre.0.product=1.8.0_111" 

rem // Split off everything up to `jre.` (case-insensitive search): 
set "integer=%myvar:*jre.=%" 
rem /* Convert remaining portion to a signed 32-bit integer 
rem (everything up to the `.` in `.product` is regarded): */ 
set /A "integer=integer" 

echo %integer%