我试图使用批处理代码从文本文件中提取特定文本。我需要提取数据的文件将包含多行文本,行数会有所不同,这意味着指标的位置也会发生变化。下面是文本文件的样本:使用批处理从文本文件中提取特定文本
文件1:
<File>
<General>
<Primary_1>1.2.3.4.5</Primary_1>
<Secondary_2>9.8.7.6.5</Secondary_2>
</General>
<Main_List>
<Details="Title" One="C:\Folder1\Folder2\Folder3\Folder4\Folder5" Two="I" Three="4"/>
</Main_List>
</File>
我通过一些操作了已提取包含数据我从文本文件所需要的行,并将其保存到两个独立的文本文件,所以我结束了这一点:
文件2:
<Primary_1>1.2.3.4.5</Primary_1>
文件3:
<Details="Title" One="C:\folder1\folder2\folder3\folder4" Two="A" Three="5"/>
所以,从上面的两个文件(文件2 &文件3),我需要能够提取两个值。第一个位于| Primary_1 |之间和|/Primary_1 |指标...在这种情况下,我需要拉动“1.2.3.4.5”值。第二个值是| Details =“|和之前的值|”一= |指标...在这种情况下,我需要拉动“标题”值。
我搜索周围,找不到任何相当适合该法案。我发现最接近的是“...在同一行......”代码(Extract part of a text file using batch dos),但我一直在收到错误。任何帮助将不胜感激。谢谢。
第一个“for”行完美工作,并拉出正确的信息......“1.2.3.4.5”的数据。但是,第二个“for”行拉动了“Details”而不是“Title”。 ?谢谢。 – user3208239
我的坏。看起来我错过了第三个文件中的空格如下: <详细=“标题”One =“C:\ folder1 \ folder2 \ folder3 \ folder4”Two =“A”Three =“ 5“/> 如何修改第二个语句中的分隔符以适应此空间?sp王牌是介于细节和等号之间。再次感谢。 – user3208239
试试我在答案中所做的修改。 – foxidrive