如果我们在批处理中要处理类似如下数据,我们可以用这个方法
data.csv
2,张三,80
4,李四,90
===== 结束 ======
@echo off
set file=data.csv
for %%i in (%file%) do (
echo config = %%i
for /f "tokens=1-3 delims=," %%a in (%%i) do (
echo 学号=%%a 名称=%%b 成绩=%%c
)
)
结果如下
config = data.csv
学号=2 名称=张三 成绩=80
学号=4 名称=李四 成绩=90
======================= 分割线 =====================
如果你想把配置写在当前批处理中,可以试试这个方法
@echo off
set list="2,张三,80" "4,李四,90"
for %%i in (%list%) do (
echo config = %%i
for /f "tokens=1-3 delims=," %%a in (%%i) do (
echo 学号=%%a 名称=%%b 成绩=%%c
)
)
得到
config = "2,张三,80"
学号=2 名称=张三 成绩=80
config = "4,李四,90"
学号=4 名称=李四 成绩=90
这里格式为: "ID,名称,成绩" 空格 "ID,名称,成绩"
我们先按空格分开各行数据,再在里面按逗号分割
双引号不能删,多行数据只能写在一行里面,因为批处理不支持变量有多行文字
======================= 分割线 =====================
在shell里面就简单明了多了
file=data.csv
IFS=","
while read id name score
do
echo 学号=$id 名称=$name 成绩=$score
done < $file