如何用分号替换逗号并使用bat文件删除文件中的双引号

时间:2014-04-10 07:38:37

标签: batch-file

实际上我在批处理编程方面很差......

我有一个csv文件,其中数据就像这样

"column1","column2","column2"
"value1","value2","value3"

我必须用分号替换逗号并删除双引号。

MY输出应该是这样的..

 column1;column2;column2
 value1;value2;value3

我试过这样的事情..

@echo off
setlocal enabledelayedexpansion

for /f "delims==" %%A in (input.csv) do (
  set string=%%A & echo !string:,=;! >> output.csv
)

它用分号替换逗号(我不知道它是怎么回事)但是如何删除双引号....

3 个答案:

答案 0 :(得分:1)

@echo off
    setlocal enableextensions disabledelayedexpansion
    (for /f tokens^=1^-3delims^=^,^" %%a in (input.csv) do (
        echo(%%a;%%b;%%c
    ))>output.csv

真实案例就像发布一样简单,只需在for命令中将“有问题”字符定义为分隔符即可将其删除。

答案 1 :(得分:0)

以下是一种方法:在两次传递中,它将所有双引号\q替换为空,然后将所有,替换为;

这使用名为repl.bat的帮助程序批处理文件 - 从https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

下载

repl.bat放在与批处理文件相同的文件夹中或放在路径上的文件夹中。

type "file.csv" | repl "\q" "" x |repl "," ";" L >"newfile.csv"

<强> inputfile中

"column1","column2","column2"
"value1","value2","value3"

<强> OUTPUTFILE

column1;column2;column2
value1;value2;value3

答案 2 :(得分:0)

感谢 MC ND 我使用了您的答案,该答案开箱即用,并做了一些“改进”

  • 4列
  • 以逗号作为分隔符
  • 将.csv更改为.txt文件
@echo off        
    setlocal enableextensions disabledelayedexpansion
    
    (for /f tokens^=1^-4delims^=^,^" %%a in (input.csv) do (
    
        echo(%%a,%%b,%%c,%%4
    
    ))>output.txt

输入文件如下:

“ column1”,“ column2”,“ column3”,“ column4”

“ value1”,“ value2”,“ value3”,“ value4”

“ value5”,“ value6”,“ value7”,“ value8”

我额外添加了一行。