我的公司中有多个来自不同公司的多个CSV文件,这些文件包含来自多个不同公司用户输入数据的多个SQL数据库的多个名称和电子邮件地址。我有一个SQL导出程序,将名称和电子邮件导出到CSV文件。我注意到偶尔有些电子邮件地址在电子邮件地址之前或之后有十六进制0x1F分隔符(在Notepad ++中它看起来像一个黑色的“美国”盒子)。使用批量从CSV文件中删除十六进制1F
我该如何编写一个简单的批处理文件来从任何可能具有该文件的CSV文件中查找并删除该分隔符。并使用/替换原始文件保存输出。最好使用简单的批处理命令,而不是Powershell或Java或其他类似的东西。这将在Windows 2008 R2的标准安装上运行,而无需添加任何额外的程序。
实施例:
指南: C:\上传
文件名(最多23个文件用随机2数字前缀,随后日期): “a1-20151101。 csv“,”b2-20151101.csv“,”cd-20151101.csv“等。
Inside CSV(名字;姓氏;电子邮件):
约翰;李四; [email protected]
简;史密斯; [email protected]
如果可能,请勿重新发明轮子并使用应在W2k8上运行的[JREPL.BAT](http://dostips.com/forum/viewtopic.php?f=3&t=6044):'call jrepl“\ x1F“”“/ m <”inputfile“>”outputfile“' – wOxxOm
所以这个工作?:'@echo off setlocal (for/f”delims =“%% i in('dir/b C:\ Uploads \ *。csv')do( set“inputfile = %% i” call jrepl“\ x1F”“”/ m <“C:\ Uploads \%inputfile%.csv”>“C:\ Uploads \%inputfile %.csv“ )'我尝试过了,但它看起来什么也没做。 –
不用。不要使用中间变量。直接指定''%% i'''并且不要使用相同的输出名称。 'call .... <"%%i" >“%% i.tmp”&move/y“%% i.tmp”“%% i”' – wOxxOm