在DOS中提取文本以分隔文件

时间:2014-12-09 23:54:54

标签: xml batch-file text extract doc

我感兴趣的是将一个txt文件从word_A解析为word_B,并将输出发送到一个新文件(new_file_1.txt)...每次在该原始txt文件中找到word_A和word_B时,输出就会被推送到new_file_2.txt + N ......然后继续

我的目标是在两个xml标签之间提取txt并将输出存储到单个文件中......

谢谢......我应该提一下你的回复/帮助越详细,因为我是新手。

这也可以在dos中完成吗?我没有编译器来运行代码......

1 个答案:

答案 0 :(得分:0)

艰难,schmuff。只需要回收旧批次。

真的取决于您的数据格式 - 但您还没有提供样本。

Here's one I solved earlier

q23655846.txt

中的示例数据
<root>
<cities>
        <cityName>paris</cityName>
        <cityName>london</cityName>
        <cityName>...</cityName> 
        ...         
</cities>
<countries>
        <countryName>india</countryName>
        <countryName>japon</countryName> 
        <countryName>...</countryName>  
        ...         
</countries>
<continents>
        <continentName>asia</continentName>
        <continentName>america</continentName>
        <continentName>South america</continentName>
        <continentName>...</continentName>
        ...     
</continents>
</root>

修改代码以满足&#39;各自的文件`要求:

@ECHO OFF
SETLOCAL
SET "outloc=U:\destdir\file_"
set "tag=continentName"
set "f_xml=q23655846.txt"

set "tag2=/%tag%"
setlocal enabledelayedexpansion enableextensions

set fcnt=0
for /f  "tokens=2-4delims=<>" %%a in (%f_xml%) do (
 IF "%%a"=="%tag%" IF "%%c"=="%tag2%" SET /a fcnt+=1&>>"%outloc%!fcnt!" ECHO(%%b
)
GOTO :eof

outloc的设置会留给您 - 我发布的位置对我的系统来说很方便。同上标签和xml文件名。

如果要输出块或绝对源文件名包含空格等分隔符,则需要进行少量更改。