Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理以移动CSV文件中的列_Batch File_Csv - Fatal编程技术网

Batch file 批处理以移动CSV文件中的列

Batch file 批处理以移动CSV文件中的列,batch-file,csv,Batch File,Csv,我有一个自动创建的CSV文件,其中包含多个列。其中一列称为“sn”。我需要确保sn永远不会是CSV文件中的第一列。很遗憾,我无法编辑创建程序的程序 因此,在批处理文件中,我希望: 打开CSV 检查序列号列的位置 如果在第1列,则将其移动到另一列(第2列可以) 保存更改 这在批处理文件中可能吗 谢谢。@ECHO OFF SETLOCAL ( 设置“选择=” 设置“movecol=” 对于(q20995223.txt)中的/f“tokens=1*delims=,”%%a( 如果未定义,请选择(

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

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

  • 打开CSV
  • 检查序列号列的位置
  • 如果在第1列,则将其移动到另一列(第2列可以)
  • 保存更改
这在批处理文件中可能吗

谢谢。

@ECHO OFF
SETLOCAL
(
设置“选择=”
设置“movecol=”
对于(q20995223.txt)中的/f“tokens=1*delims=,”%%a(
如果未定义,请选择(
如果“%%a”==“sn”设置movecol=Y
集合选择=N
)
如果定义了movecol(ECHO(%%b,%%%a)或ELSE(ECHO(%%a,%%%b)
)
)>newfile.txt
后藤:EOF
如果第一行的第一列包含
sn
,则剩余的列将向左移动一列,而
sn
列将移到最后一列。否则,文件将简单地复制到
newfile.txt


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

什么操作系统,什么编程语言,有什么限制?你尝试了什么?明天你会要求使用批处理文件编写数据库服务器。为什么不使用任何真正的编程语言来完成这项工作?你问题的答案是“是的,有可能”。但是相当多的努力。有了ruby和csv模块,这是微不足道的。只需谷歌“ruby csv教程”,你就可以在30分钟内为这项任务编写一个脚本。你好-好的,我正在寻找可行性反馈-我会寻找更好的解决方案!谢谢你的回复。太棒了。谢谢!