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

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

说,以下是CSV文件:

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

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

这怎么能实现?

为什么你的“逗号分隔值”文件…不是逗号分隔? 它们是制表符还是空格分开? 值本身是否有空格?

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

使用这个,它会解决你的问题:

 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()); }