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

标签 batch-file

在我们公司,他们将 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/

相关文章:

windows - 在awk中转义嵌套的双引号

c# - 如何即时执行复杂的批处理命令

r - 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

windows-xp - 如何从批处理文件中的变量中删除双引号?

java - 批处理逻辑错误?

c - 构建后从批处理文件执行 C 程序

windows - ignite 节点未在 Windows 7 上启动

windows - 如何确定批处理文件是通过双击还是通过命令行打开的

batch-file - 批处理检查单个文件是否被修改

windows - 驱动器中没有磁盘。请将磁盘插入drive\Device\Harddisk\DR5