【问题标题】:Parse a dynamically sized string解析动态大小的字符串
【发布时间】:2016-12-22 22:06:25
【问题描述】:

我有一个变量:

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

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

【问题讨论】:

    标签: batch-file scripting


    【解决方案1】:

    如果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%
    

    【讨论】:

      【解决方案2】:
      for /f "tokens=5 delims=:." %%a in ("%myvar%") do echo -%%a-
      

      试试这个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-13
        • 2021-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-27
        相关资源
        最近更新 更多