Windows批处理文件无法使用变量来获取语法

时间:2015-08-09 10:30:45

标签: windows batch-file for-loop

我想在for循环中使用变量skip参数,但它不允许我这样做。 这是我的代码

@echo off
setlocal ENABLEDELAYEDEXPANSION

set /p testcase=<testcases.txt
set /a end=%testcase%*13

for /L %%P IN (1,13,%end%) DO (

    set skip=skip=%%P
    echo !skip!
    set vidx=0

    for /f "%skip%" %%A in (testcases.txt) do (
        set /a vidx=!vidx! + 1
        set var!vidx!=%%A
    )
)

这里跳过是skip = 1,但它不跳过任何一行。当我用skip = 1替换它时。然后它工作正常,但我想跳过变量号。每次迭代中的行数。请帮忙。

1 个答案:

答案 0 :(得分:3)

我认为有了这个逻辑,唯一的选择就是子程序:

@echo off
setlocal ENABLEDELAYEDEXPANSION

set /p testcase=<testcases.txt
set /a end=%testcase%*13

for /L %%P IN (1,13,%end%) DO (

    set skip=skip=%%P
    echo !skip!
    set vidx=0
    call :innerFor %%P

)

exit /b 0

:innerFor
    for /f "skip=%~1" %%A in (testcases.txt) do (
        set /a vidx=!vidx! + 1
        set var!vidx!=%%A
    )
 exit /b 0

FOR /F选项的参数化有点棘手.. 虽然我没有您文件的内容,但我无法测试它是否正常工作。