无法批量删除字符串中的奇怪双引号字符

时间:2017-09-27 22:45:29

标签: batch-file

在我们公司,他们将SAP数据导出到文本文件中。有时来自SAP的用户在双引号字符中输入“而不是"”。当它被导出时,它在记事本++中显示出奇怪的效果,当批处理它时。我想在运行批处理文件进行分析时删除此字符。但是,我不知道该怎么做。

您可以在此处找到示例文本文件: https://1drv.ms/t/s!At4HWeqiFYNvh-d-1vpV9cLWvsXQug

我使用的代码是:

TryGetValues

提前谢谢!

1 个答案:

答案 0 :(得分:0)

迟到的答案,但我找到了解决方案。

通过更改代码页,Notepad ++和命令提示符都可以正确处理文本字符串。

首先,将批处理文件保存为UTF-8编码。可以通过选择" UTF-8"在编码菜单中。

其次,将chcp 65001添加到脚本的开头。这允许命令处理器将字符看作UTF-8。

这是固定代码:

@echo off

CHCP 65001

setlocal EnableDelayedExpansion
Set FileLocation=C:\desktop\test.txt
FOR /f "delims=" %%a IN ('findstr /I "ABC" %FileLocation%%') DO (
    Set FileLine=%%a
    echo !FileLine!
    Set RemoveChar=!FileLine:”=!
    Set RemoveChar=!RemoveChar:ö=!
    Echo !RemoveChar!
)