我想在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替换它时。然后它工作正常,但我想跳过变量号。每次迭代中的行数。请帮忙。
答案 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
选项的参数化有点棘手..
虽然我没有您文件的内容,但我无法测试它是否正常工作。