2012-06-24 2 views
2

스크립트를 사용하여 파일의 단락 끝에 줄을 삽입하고 싶습니다. 내 파일에서 단락의 마지막 줄이 명확하지 않습니다. "LoadModule name moduleName"형식의 변수는 입니다.배치 파일을 사용하여 파일의 단락 마지막 줄 다음에 새 줄 삽입

새로운 라인 :

abc def xyz 

LoadModule foo_module libexec/mod_fooa.so 
LoadModule proxy_module libexec/mod_proxy.so 
LoadModule lmn_module libexec/mod_abc.so 
LoadModule xyz_module libexec/mod_def.so 

ExtendedStatus controls whether Apache will generate "full" status 

및 결과 input.conf "을 LoadModule new_module 모듈/mod_newmod.so"

내 파일 :

abc def xyz 

LoadModule foo_module libexec/mod_fooa.so 
LoadModule proxy_module libexec/mod_proxy.so 
LoadModule lmn_module libexec/mod_abc.so 
LoadModule xyz_module libexec/mod_def.so 
LoadModule new_module module/mod_newmod.so 

ExtendedStatus controls whether Apache will generate "full" status 

새로운 라인 "을 LoadModule new_module 모듈/mod_newmod.so "는 LoadModule 단락의 마지막에 삽입됩니다. 해결책을 제안하십시오. 너무 감사합니다.

답변

2
@echo off 
setlocal 
set "file=test.txt" 
set "here=" 
for /f "delims=:" %%A in ('findstr /lnbc:"LoadModule" "%file%" 2^>nul') do set here=%%A 
if defined here (
    >"%file%.new" (
    for /f "tokens=1* delims=:" %%A in ('findstr /n "^" "%file%"') do (
     echo(%%B 
     if %%A==%here% echo(LoadModule new_module module/mod_newmod.so 
    ) 
) 
    move /y "%file%.new" "%file%" 
) 
type "%file%" 

이 솔루션은 기존 라인의 어느 것도 :로 시작 없다고 가정합니다. 어떤 행이라도 :으로 시작하면 다른 해결책이 필요합니다.

편집 - TEST.TXT은 "을 LoadModule"로 시작하는 기존의 라인을 포함하지 않는 경우 TEST.TXT가 또는 존재하지 않는 경우 업데이트 대답은 아무것도 할 수 없습니다.

+0

그리고 배치 파일을 쓰는 방법을 배우기 위해 링크에 대해 저를 괴롭힐 수 있습니까? –

+0

@ romeo8812 - 모든 요구 사항을 충족하는 대답을 얻은 경우 체크 표시를 클릭하여 대답을 수락해야합니다. 답변을 수락하면 다른 사람들이 질문에 대한 답변을 받았음을 알게되며, 2 점을 수여하고 수락 한 답변을 올린 사람에게 15 점을 수여합니다. – dbenham

+0

체크 표시는 어디에 있습니까? 나는 보이지 않는다. –

관련 문제