在我们公司,他们将 SAP 数据导出到文本文件中。有时来自 SAP 的用户将双引号字符键入“而不是”。当它被导出时,它在记事本++ 中显示很奇怪并且当批处理回显它时。我想在运行我的批处理时删除这个字 rune 件进行分析。但是,我不知道该怎么做。
您可以在此处找到示例文本文件: https://1drv.ms/t/s!At4HWeqiFYNvh-d-1vpV9cLWvsXQug
我使用的代码是:
@echo off
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!
)
提前致谢!
最佳答案
迟到的答案,但我找到了解决方案。
通过更改代码页,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!
)
关于batch-file - 无法批量删除字符串中奇怪的双引号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46458330/