특정 아래 줄 편집

특정 아래 줄 편집

Windows 8에서 .bat 또는 .vbs를 사용하여 .txt 파일을 편집하고 있습니다. 특정 텍스트가 포함된 특정 줄 아래 줄을 편집해야 합니다.

Account 1
ABC  -         Debit    900
     -         Credit   900
DEF  -         Debit    800
     -         Credit   100

출력이 다음과 같기를 원합니다

Account 1
ABC  -         Debit    900
ABC  -         Credit   900
DEF  -         Debit    800
DEF  -         Credit   100

답변1

일괄 편집은 파일을 다시 작성하는 것을 의미하므로 다음과 같이 작동할 수 있습니다.

:: Q:\Test\2018\04\17\SU_1314377.cmd
@Echo off
SetLocal EnableExtensions EnableDelayedExpansion
Set "File=Accounts.txt"
Set "NewFile=Accounts2.txt"

(For /f "delims=" %%A in (%File%) do (
    Set "Line=%%A"
    Set "Debit=!Line:*Debit=!"
    Set "Credit=!Line:*Credit=!"
    If "!Line!" Neq "!Debit!"  Call Set "Account=%%Line:Debit!Debit!=%%"
    If "!Line!" Neq "!Credit!" Call Set "Line=!Account!Credit!Credit!"
    Echo:!Line!
) )> "%NewFile%" 
  • 일괄 처리에서는 현재 줄의 모든 항목을 Debit/Credit 단어까지 바꿔서 Debit/Credit 값(선행 공백 포함)을 추출합니다.
  • 현재 줄에 Debit이 포함되어 있으면 앞의 이름이 var Account에 저장됩니다.
  • 현재 줄에 Credit이 포함되어 있는 경우 해당 줄은 앞에 저장된 값으로 다시 작성됩니다.

관련 정보