【问题标题】:Batch File: How can I extract the substring of a value from a FOR loop using an index variable?批处理文件:如何使用索引变量从 FOR 循环中提取值的子字符串?
【发布时间】:2014-08-29 09:18:30
【问题描述】:

我有一个使用FOR 循环读取的文本文件。对于每一行,我想从 INDEX 参数中提取一个子字符串。我的代码如下:

@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION

FOR /f "delims=" %%a IN (cases.txt) DO (
    SET INDEX=3
    SET LINE=%%a

    ECHO !LINE:~!INDEX!!
)
GOTO :EOF

ECHO 只是在每行的末尾附加了单词“INDEX”。有没有可能完成我想做的事情?

问候,

安德鲁

【问题讨论】:

    标签: windows batch-file for-loop


    【解决方案1】:
    @ECHO off
    SETLOCAL ENABLEDELAYEDEXPANSION
    
    FOR /f "delims=" %%a IN (cases.txt) DO (
        SET INDEX=3
        SET LINE=%%a
        for %%# in (!INDEX!) do echo  !LINE:~%%#!
    
    )
    GOTO :EOF
    

    当您问更广泛的question here 时,您可以在那里使用更多技术和解释来回答我更广泛的答案:-)

    您的代码会发生什么变化?

    解析器检查!!!line:~! 变量,因为它们不存在,所以只剩下一件事来回显是INDEX。通过延迟扩展,您不能使用嵌套变量 - 您可以使用 call ,但这会损害您的性能

    【讨论】:

    • 非常感谢!另外,您对我另一篇文章的评论非常有用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2021-02-17
    相关资源
    最近更新 更多