【问题标题】:batch file code to remove comma from .csv file从 .csv 文件中删除逗号的批处理文件代码
【发布时间】:2015-04-06 12:08:08
【问题描述】:

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

感谢您的帮助

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

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

我必须将 , 替换为 - 仅在第 1 列中。

我该怎么做??

【问题讨论】:

    标签: batch-file space trim comma


    【解决方案1】:
    @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
    

    这对我来说意义不大,但这已从第一行中删除了空格,其余部分在第一列中用 - 替换了 ommas。

    文件被读入%%c。因为col1 被初始化为empty,所以第一行没有定义col1,所以整行被分配给col1,空格被删除,结果echoed。

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

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 2018-11-26
      相关资源
      最近更新 更多