如何在批处理中读取CSV文件的特定列中的值?

时间:2014-03-28 11:56:01

标签: windows batch-file csv

我打算编写一个批处理脚本,我需要逐个扫描CSV文件的特定列中的值,并将它们存储在变量中以便进一步处理。

说,以下是CSV文件:

A1, B1, C1, D1, E1
A2, B2, C2, D2, E2
A3, B3, C3, D3, E3
.., .., .., .., ..

我必须阅读D1,使用它执行命令的值,读取D2,执行命令等等。

如何实现这一目标?

2 个答案:

答案 0 :(得分:4)

为什么你的"逗号分隔价值"文件...不是逗号分隔?它们是标签还是空格分隔?值本身是否有空格?

for /f "tokens=4 delims=, " %%a in (data.csv) do (
    echo run command here "%%a"
)
  • 这将针对文件
  • 中的每一行运行
  • " delims =,"在逗号或空格字符
  • 上拆分该行
  • tokens = 4选择拆分后的第4列

答案 1 :(得分:0)

使用此功能,它将解决您的问题:

CSVReader reader = null;

try 
{
    reader = new CSVReader(new FileReader(dir));
    String[] row;
    List<?> content = reader.readAll();

    for (Object object : content) 
    {
        row = (String[]) object;
        for (int i = 0; i < row.length; i++) 
        {
            // display CSV values
                System.out.println("Cell column index: " + i);
                System.out.println("Cell Value: " + row[i]);
                System.out.println("-------------");
        }
    }
}catch (FileNotFoundException e) 
{
    System.err.println(e.getMessage());
}
catch (IOException e) {
    System.err.println(e.getMessage());
}