在bat文件中提取倒数第​​二个子字符串

extract second last Substring in bat file

我正在尝试使用批处理文件获取文件名中最后一个和倒数第二个句号 (.) 之间的子字符串,文件名可以有任意数量的句号。文件名如下所示,在此特定示例中输出应为“8”。

文件名:a_b_c_d_e.1.2.3.4.5.6.7.8.9

我尝试了下面的部分,但它总是在第一个句号之后输出字符串,即 1.2.3.4.5.6.7.8.9 而不是“8”。

设置“字符串=a_b_c_d_e.1.2.3.4.5.6.7.8.9”

@echo %string:*.=%

暂停

任何工作建议都会有所帮助。

您可以使用文件修饰符语法。

用反斜杠替换所有点,然后通过附加 \..

获取父目录
@echo off
set "string=a_b_c_d_e.1.2.3.4.5.6.7.8.9"

for /F "delims=" %%X in ("%string:.=\%\..") do echo %%~nX