使用批处理脚本从字符串中提取数字部分

时间:2018-12-28 08:23:20

标签: windows batch-file scripting

我的文件名为abcd_1234.java。如何使用批处理脚本仅提取数字并将其存储到变量中。输出应为1234。

字符串没有固定长度,如果字符串是testfile_345.java,则输出应为345。

在Unix中,我发现这很容易,但是在批处理中,我没有得到正确的命令。 请帮忙。

谢谢。

1 个答案:

答案 0 :(得分:0)

要获取文件名的最后下划线下划线部分,
使用字符串替换将下划线替换为空格,并使用简单的for进行迭代。

@Echo off & setlocal EnableDelayedExpansion
for %%A in (*_*.java) do (
    set "fname=%%~nA"
    set "fname=!Fname:_= !"
    for %%B in (!fname!) Do set Number=%%B
    Echo number from %%A is !Number!
)

示例输出:

number from abc__def_123.java is 123
number from abc_123.java is 123