2014-12-09 2 views
0

word_A에서 word_B로 파싱 된 txt 파일을 가져 와서 출력을 새 파일 (new_file_1.txt)로 보내는 데 관심이 있습니다 ... word_A와 word_B가 원본 내에서 발견 될 때마다 ...파일을 분리하기 위해 DOS에서 텍스트를 추출하는 중

감사 TXT는 ... 출력이 다음 new_file_2.txt + N을 누르면 파일이이

내 목표는 둘 사이에 XML 태그이 txt 추출하여 개별 파일에 출력을 저장하는 것입니다 계속 .. 나는 좀 더 자세하게 귀하의 응답/내가 초보자로서 더 나은 도움을 언급해야합니다.

도스에서이 작업을 수행 할 수 있습니까? 나는 코드를 실행할 컴파일러가 없다 ...

+0

이것은 배치 파일에서 거친 말입니다. –

답변

0

힘든, schmuff. 오래된 배치를 재활용하면됩니다.

데이터 형식에 따라 달라 지지만 샘플을 제공하지 않았습니다. 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> 

수정 된 코드

Here's one I solved earlier

샘플 데이터에 맞게 '자신의 file` 요구 사항의 각 :

@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 

I가 떠날거야 outloc의 설정 당신 - 게시 한 위치가 내 시스템에 편리합니다. 태그와 xml 파일명에 따릅니다.

블록을 출력하거나 절대 소스 파일 이름에 공백과 같은 분리 기호가 포함 된 경우에는 약간의 변경이 필요합니다.