2016-12-22 2 views
1

У меня есть переменная:Разбор динамического размера строки

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

Я хочу, чтобы получить значение после JRE. и .product, который будет целым числом. Значение между ними всегда будет целым числом. Строка переменной может немного изменяться, но формат [jre.] [Integer] [. Product] всегда будет оставаться неизменным. Из-за этого я не могу просто получить подстроку, используя жестко заданные значения, потому что строка может быть разной каждый раз и иметь больше символов в начале, если сказать, что первая цифра в начале строки составляет 3 цифры вместо двух длинной. Как я могу это сделать?

ответ

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%