Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理从CSV文件中删除十六进制1F_Batch File - Fatal编程技术网

Batch file 使用批处理从CSV文件中删除十六进制1F

Batch file 使用批处理从CSV文件中删除十六进制1F,batch-file,Batch File,我有来自公司不同站点的多个CSV文件,其中包含来自多个SQL数据库的多个名称和电子邮件地址,许多不同的公司用户将数据输入这些数据库。我有一个SQL导出程序,可以将姓名和电子邮件导出到CSV文件。我注意到,有时一些电子邮件地址在电子邮件地址之前或之后都有十六进制0x1F分隔符(在记事本++中,它看起来像一个黑色的“US”框) 如何编写一个简单的批处理文件,以便从任何CSV文件中查找并删除该分隔符。并使用/替换原始文件保存输出。最好使用简单的批处理命令,而不是Powershell或Java或其他类似

我有来自公司不同站点的多个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(名字;姓氏;电子邮件):
约翰;雌鹿;厕所。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附带的标准文件,还是我需要下载它?我找不到您以前链接中的下载链接。好的,我意识到该代码包含在该网站上,因此我创建了批处理。效果很好。谢谢你