我有一个用 UCS-2 编码的文件,该文件不断更新。我需要不断检查此文件中是否有重复出现的文本字符串,然后解析信息。我最初尝试使用 findstr,但它找不到文本。我尝试将文本字符串保存在一个类似编码的文件中,这有效,但我无法使用输出。我需要搜索一个包含类似文本的文件
</DocStreifenRoot>'
'Teile'='<?xml version="1.0" encoding="utf-16"?>
<DocLauefe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Lauefe>
<Lauf Name="RB6">
<ClassList>
<Class Type="Teil">
<TeilList>
<Teil Anzahl="1" Nummer="150">
<QualitaetList>
<Qualitaet Anzahl="1" Name="" />
</QualitaetList>
</Teil>
</TeilList>
</Class>
</ClassList>
</Lauf>
</Lauefe>
</DocLauefe>'
'Total'='1'
'Typ'='ReceiveMaterial'
'UnicKey'='PS5-113\RB6\00005\1-1/0.2.0'
'ZyklusName'='PS5-113\RB6\00005\1-1'
07.03.2019 15:09:45,163: HandleData: wanted (run) (pattern)RB6 00005
07.03.2019 15:09:45,207: HandleData: partsval exist
07.03.2019 15:09:45,246: --------used run: RB6
07.03.2019 15:09:45,287: Internal print: Handle event
07.03.2019 15:09:45,338: PrinterSystem_debug: sStreifenRoot
07.03.2019 15:09:45,382: PrinterSystem_debug: StreifenList
07.03.2019 15:09:45,421: PrinterSystem_debug: diffStripes
07.03.2019 15:09:45,462: PrinterSystem_debug: LageList
07.03.2019 15:09:45,504: PrinterSystem_debug: Entered_section_addinfo_run_and_part:RB6150
我想查找“Entered_section_addinfo_run_and_part”的每一个出现位置。我需要的是该行末尾的数据(在本例中为 RB6150),这样我就可以用它来搜索另一个文件。这可以使用批处理来完成吗?还是我最好用另一种方法来完成?
更新:我刚刚注意到文件中的编码是 utf-16,但 notepad++ 有 UCS-2,这就是我以这种方式措辞问题的原因。
答案1
Findstr 不支持 Unicode 文件,因此您必须先将文件转换为 ASCII。
您可以使用免费 Sysinternals 字符串 支持 UCS-2 文件的实用程序:
"C:\path\to\strings.exe" yourfile.txt