批量移动CSV文件中的列

时间:2014-01-08 12:07:48

标签: batch-file csv

我有一个自动创建的CSV文件,其中包含多个列。其中一列称为“sn”。我需要确保sn永远不是CSV文件中的第一列。不幸的是我无法编辑创建程序的程序。

因此,在批处理文件中,我想:

  • 打开CSV
  • 检查sn列的位置
  • 如果它在第1列中,则将其移动到另一列(第2列没问题)
  • 保存更改

这是否可以在批处理文件中使用?

感谢。

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
(
 SET "choosing="
 SET "movecol="
 FOR /f "tokens=1*delims=," %%a IN (q20995223.txt) DO (
  IF NOT DEFINED choosing (
   IF "%%a"=="sn" SET movecol=Y
   SET choosing=N
  )
  IF DEFINED movecol (ECHO(%%b,%%a) ELSE (ECHO(%%a,%%b)
 )
)>newfile.txt

GOTO :EOF

如果第一行的第一列包含sn,则其余列向左移动一列,sn列移至最后一列。否则,文件将简单地复制到newfile.txt

q20995223.txt是我的测试文件。重命名它们是你的任务。