实际上我在批处理编程方面很差......
我有一个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
)
它用分号替换逗号(我不知道它是怎么回事)但是如何删除双引号....
答案 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 我使用了您的答案,该答案开箱即用,并做了一些“改进” :
@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”
我额外添加了一行。