做了一个简单程序测度滞后赋值,但是找不到为何第一行第一个数据显示不正确,其它都是正确的。请大佬帮助指导一下 。
测试目标如下:将test.csv中a,b后的数值提取出来。
1)test.csv的数据如下:
a,1,b,2
a,2,b,3
a,3,b,4
a,4,b,5
a,5,b,6
a,6,b,7
a,7,b,8
a,8,b,9
a,9,b,10
a,10,b,11
a,11,b,12
2)编写的程序如下:
%echo off
set "var=a,b"
for %%a in (%var%) do set %%a=true
setlocal enabledelayedexpansion
(echo ,%var%
for /f "tokens=* delims=," %%i in (test.csv) do (
set line=
for %%j in (%%i) do (
if defined !det! set line=!line!,%%j
set "det=%%j"
)
echo !line!
))>chk.csv
chk.csv
3)得到的结果如下:
,a,b
,2
,2,3
,3,4
,4,5
,5,6
,6,7
,7,8
,8,9
,9,10
,10,11
,11,12
问题是:第二行期待的结果应该是:,1,2,但是显示仅仅是,2。检查了程序没有找到头绪,请高手帮助指点一下,哪里错了 |