解析动态大小的字符串

时间:2016-12-22 22:06:26

标签: batch-file scripting

我有一个变量:

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

我想在jre之后检索值。和.product这将是整数0.这里之间的值将始终是一个整数。变量可以字符串可以稍微改变,但[jre。] [integer] [.product]的格式将始终保持不变。因此,我无法使用硬编码值获取子字符串,因为字符串可能每次都不同,并且如果说字符串开头的第一个数字是3个数字而不是2个长,则在开头有更多字符。我怎么能这样做?

2 个答案:

答案 0 :(得分: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%

答案 1 :(得分:1)

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

试试这个