for / f循环“令牌和分隔符”不适用于变量(批处理文件)

时间:2015-06-14 12:31:13

标签: variables batch-file

最近我发了一个批处理文件我遇到了问题, 当我做一个for / f循环时,我在“标记”中使用了一个变量,就像这个例子:

for /f "delims= tokens=!count2!" %%a in ('type test.txt 2^>nul') do (
你可以在循环中看到,我有变量!count2!。 当我测试它时,它显示!count2!" was unexpected at this time。我不知道为什么?

任何人都可以帮忙吗?

这是我尝试过的完整代码:

@echo off
setlocal enableextensions enabledelayedexpansion
set "count1=0"
set "count2=0"
for /l %%b in (1 1 10) do (
    set /a "count2+=1"
    set /a "count1+=1"
    for /f "delims= tokens=!count2!" %%a in ('type test.txt 2^>nul') do (
        set "str!count1!=%%a"
    )
)
echo !str1! !str2! !str3! !str4!
pause

顺便说一句,test.txt包含test hello # ###

并且,我想将testhello####设置为自己的变量(str1,str2,str3和str4)。

并且我尝试用%代替!

告诉我,如果我不够清楚!

感谢所有帮助:)

1 个答案:

答案 0 :(得分:2)

为什么要打扰令牌?

@echo off
setlocal enabledelayedexpansion
set /a count=0
for /f "delims=" %%i in (test.txt) do for %%j in (%%i) do (
  set /a count+=1
  set str!count!=%%j
)
set str