2014-08-29 61 views
2

我有一個文本文件,我用FOR循環讀取。對於每一行,我想提取一個從INDEX參數開始的子字符串。我的代碼如下:批處理文件:如何使用索引變量從FOR循環提取值的子字符串?

@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」這個詞。是否有可能完成我想要做的事情?

問候,

安德魯

回答

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:~!變量,並且因爲它們不存在,所以留給echo的唯一一件事是INDEX。有了延遲擴展,你不能使用嵌套變量 - 你可以用call,但這會損害你的性能

+0

非常感謝你!另外,您對我的其他帖子的評論非常有用! – Andrew 2014-08-29 09:37:00

相關問題