我需要将csv文件中的"""
替换为""
,以替换文件中包含这些字符串的行。
基本上,我需要这个:
"Pipe 60"""
看起来像这样:
"Pipe 60""
该字段是将数据导入回我正在使用的清单软件中所需的关键字段。当我在记事本中删除多余的报价时,它会毫无问题地导入。问题是,有几个像这样的关键字段,并且通过记事本编辑每个字段很费时间。
我尝试了在以前的帖子中找到的以下代码,但输出文件未显示任何数据:
@echo off
setlocal enableextensions enabledelayedexpansion
(for /f "tokens=*" %%f in (a.csv) do if not "%%f"=="" (
set "line=%%f"
set "line=!line"""=""!"
echo(!line!
)) > b.csv
endlocal
这是我的csv文件的示例:
000,,PipeSm,,1
000,,"Pipe 60""",,1
000,,PipeMd,,1
我不经常使用批处理文件,因此将不胜感激。
答案 0 :(得分:0)
按原样尝试:
@echo off
SET "ImportFolder=C:\Users\jdoe\Desktop\Removing Quotes\ImportFolder
setlocal enabledelayedexpansion
(for /f "tokens=*" %%f in (a.csv) do (
set "line=%%f"
echo(!line:"""=""!
)
)> b.csv
编辑
根据您的评论,进行一下操作。.仍然假设文件名为a.csv
,并且还请注意,这会将更改写回到原始文件,因此请首先在虚拟文件上进行测试。
@echo off
set "_infile=C:\Users\jdoe\Desktop\Removing Quotes\ImportFolder\a.csv"
for /f "tokens=2* delims=]" %%f in ('type "%_infile%" ^| find /v /n "" ^& break ^> "%_infile%"') do (
set "line=%%f"
setlocal enabledelayedexpansion
set "line=!line:"""=""!"
echo(!line!
endlocal
)>>"%_infile%"