Batch file 使用批处理从CSV文件中删除十六进制1F
我有来自公司不同站点的多个CSV文件,其中包含来自多个SQL数据库的多个名称和电子邮件地址,许多不同的公司用户将数据输入这些数据库。我有一个SQL导出程序,可以将姓名和电子邮件导出到CSV文件。我注意到,有时一些电子邮件地址在电子邮件地址之前或之后都有十六进制0x1F分隔符(在记事本++中,它看起来像一个黑色的“US”框) 如何编写一个简单的批处理文件,以便从任何CSV文件中查找并删除该分隔符。并使用/替换原始文件保存输出。最好使用简单的批处理命令,而不是Powershell或Java或其他类似的命令。这将在Windows 2008 R2的标准安装上运行,无需添加任何额外程序 例如: 目录: C:\上传 文件名(最多23个文件,带有随机2位前缀,后跟日期): “a1-20151101.csv”、“b2-20151101.csv”、“cd-20151101.csv”等 内部CSV(名字;姓氏;电子邮件):Batch file 使用批处理从CSV文件中删除十六进制1F,batch-file,Batch File,我有来自公司不同站点的多个CSV文件,其中包含来自多个SQL数据库的多个名称和电子邮件地址,许多不同的公司用户将数据输入这些数据库。我有一个SQL导出程序,可以将姓名和电子邮件导出到CSV文件。我注意到,有时一些电子邮件地址在电子邮件地址之前或之后都有十六进制0x1F分隔符(在记事本++中,它看起来像一个黑色的“US”框) 如何编写一个简单的批处理文件,以便从任何CSV文件中查找并删除该分隔符。并使用/替换原始文件保存输出。最好使用简单的批处理命令,而不是Powershell或Java或其他类似
约翰;雌鹿;厕所。doe@johndoe.com
简;史密斯;jsmith@google.com您可以花宝贵的时间编写一个400行左右的
cmd
文件
或者,您可以直接从(流行UNIX工具到本机Windows的端口)获取tr
程序,该程序非常适合做这类事情
然后,批处理文件基本上由以下行组成:
tr -d "\37" inputFile >outputFile
tr
程序包含在包中。您可以花宝贵的时间编写一个400行左右的大型cmd
文件
或者,您可以直接从(流行UNIX工具到本机Windows的端口)获取tr
程序,该程序非常适合做这类事情
然后,批处理文件基本上由以下行组成:
tr -d "\37" inputFile >outputFile
tr
程序包含在软件包中。如果可能,不要重新发明轮子并使用应该在W2k8上运行的程序:调用jrepl“\x1F”“”/m“outputfile”
那么这会起作用吗?:@echo off setlocal(对于/f“delims=“%%i in('dir/b C:\Uploads\*.csv”)执行(设置“inputfile=%i”调用jrepl“\x1F”“/m“C:\Uploads\%inputfile%.csv”)
我试过了,但似乎没什么作用。不。不要使用中间变量。直接指定“%%I”
,不要使用相同的输出名称。例如调用…“%%I.tmp”&move/y“%%I.tmp”“%%I”
好的,我发现了导致文件无法工作的初始错误(有一个额外的括号)。现在我收到一个错误,“jrepl”未被识别为内部或外部命令、可操作程序或批处理文件。
。这是Windows附带的标准文件,还是我需要下载它?我找不到您以前链接中的下载链接。好的,我意识到该代码包含在该网站上,因此我创建了批处理。它工作得很好。谢谢Woxxomi如果可能的话,不要重新发明轮子并使用应该在W2k8上运行的程序:调用jrepl“\x1F”“”/m“outputfile”
那么这会起作用吗?:@echo off setlocal(for/f“delims=%%i in('dir/b C:\Uploads\*.csv')do(设置“inputfile=%%i”调用jrepl“\x1F”“/m”C:\Uploads\%inputfile%.csv“
我试过了,但似乎没什么作用。不。不要使用中间变量。直接指定“%%I”
,不要使用相同的输出名称。例如调用…“%%I.tmp”&move/y“%%I.tmp”“%%I”
好的,我发现了导致文件无法工作的初始错误(有一个额外的括号)。现在我收到一个错误,“jrepl”未被识别为内部或外部命令、可操作程序或批处理文件。
。这是Windows附带的标准文件,还是我需要下载它?我找不到您以前链接中的下载链接。好的,我意识到该代码包含在该网站上,因此我创建了批处理。效果很好。谢谢你