【问题标题】:extract second last Substring in bat file在bat文件中提取倒数第​​二个子字符串
【发布时间】:2021-02-18 20:15:31
【问题描述】:

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

设置“string=a_b_c_d_e.1.2.3.4.5.6.7.8.9”

@echo %string:*.=%

暂停

任何可行的建议都会有所帮助。

【问题讨论】:

    标签: batch-file cmd substring


    【解决方案1】:

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

    用反斜杠替换所有点,然后通过附加\..来获取父目录

    @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
    

    【讨论】:

    • 谢谢@jeb。为我解决了一个问题。
    • 如果文件名存储在另一个文本文件(如 filename.txt)而不是变量中,是否可以使用它?
    • @AmitSingla 然后你应该把它从那个文件读入一个变量
    • 知道了,也试试。
    • 你应该问一个新问题。提示,您不能在 for-meta-variable 上使用变量搜索/替换语法
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    相关资源
    最近更新 更多