批处理文件代码,用于从.csv文件中删除逗号

时间:2015-04-06 12:08:08

标签: batch-file space trim comma

我需要一个批处理文件代码来从我的.csv文件的第一列中删除逗号,并从.csv文件的第一行中删除空格。

感谢您的帮助

我在.csv文件中有以下数据:

Column 1          Column 2
"LAMAR,JOY"       indian
"Samar,sinha"     American

我必须用 - 仅替换到第1列。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "col1="
(
 FOR /f "delims=" %%c IN (q29471006.txt) DO (
  FOR /f "tokens=1delims= " %%a IN ("%%c") DO (
   IF DEFINED col1 (
    SET "col1=%%a"
    SET "col1=!col1:,=-!"
    SET "line=%%c"
    SET "line=!line:* =!"
    ECHO(!col1! !line!

   ) ELSE (
    SET "col1=%%c"
    SET "col1=!col1: =!"
    ECHO(!col1!
   )
  )
 )
)>u:\newfile.txt

由于您没有显示您对输出的期望,我们不得不猜测。

我使用了一个名为q29471006.txt的文件,其中包含我的测试数据。

此例程的输出(在u:\newfile.txt中)是

Column1Column2
"LAMAR-JOY"       indian
"Samar-sinha"     American

这对我来说没什么意义,但是从第一行中移除了spa,其余部分在第一列中用-替换了ommas。

该文件被读入%%c。由于col1已初始化为为空,因此未为第一行定义col1,因此整行都已分配给col1,空格已移除并且结果echo编辑。

由于现在定义了col1,所以在分隔列的空间(它的固定列格式,而不是csv)上对行进行标记之后处理剩余的行。%%a获取第一列并分配给col1,然后将,替换为-%%c中的整行已分配给line,然后从line删除包含第一个空格的字符所需的输出因此col1 +的内容已删除的空格+ line中该行的其余部分。