簡體   English   中英

Windows批處理文件不能在語法中使用變量

[英]Windows Batch File can't use variable in for syntax

我想在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是skip = 1,但是它不會跳過任何行。 當我用skip = 1替換它時。 然后工作正常,但我想跳過變量號。 每次迭代中的行數。 請幫忙。

我認為使用這種邏輯,唯一的選擇是子例程:

@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選項的參數化有些棘手。。盡管我沒有文件的內容,但我無法測試這是否正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM