Board logo

标题: [文本处理] 求助:批处理删除文本中A字串符到B字串符的内容 [打印本页]

作者: hfstar    时间: 2021-7-5 15:31     标题: 求助:批处理删除文本中A字串符到B字串符的内容

如题:
      怎样删除文本中 {$CP949=  到  $} 的内容,在的行是随机的,请各位大佬指点一下

{$CP949=

명령행 옵션 : PotPlayer[Mini].exe "파일경로" [옵션]

"특수한 파일명"
-                    : 표준 입력(pipe)으로 스트리밍 재생

[옵션]
/filedlg          : 파일 열기 대화 상자
/urldlg                  : 주소 열기 대화 상자
/folderdlg          : 폴더 열기 대화 상자
/simple                  : 간편 열기 대화 상자
/cap                  : 화면 캡쳐
/cam                  : 캠이나 기타 장치
/atv[:ch]           : 아날로그 TV
/dtv[:ch[-순서]]  : 디지탈 TV
/dvd                  : DVD 기본 장치
/cd[:drive]          : CD 열기
/add                  : 재생 목록 마지막 위치에 추가
/insert                  : 재생 목록 재생중인 파일 뒤에 추가
/autoplay          : 자동으로 재생
/same                  : 항목을 모두 같이 재생
/sort                  : 항목을 이름순 정렬
/randomize          : 항목을 랜덤 정렬
/new              : 새로운 플레이어로 실행(다중 실행 금지 옵션 무시)
/current          : 현재 실행된 플레이어로 재생(다중 실행 금지 옵션 무시)
/clipboard        : 클립보드의 항목으로 재생
/seek=hh:mm:ss.ms : 지정된 시간으로 재생 시작
/sub=["]자막 파일["] : 같이 열 자막 파일 지정
/user_agent=["]문자열["] : http(s) 열기 시 사용할 user agent
/referer=["]문자열["] : http(s) 열기 시 사용할 reference
/headers=["]문자열["] : http(s) 열기 시 사용할 추가적인 정보
config="환경이름" : 지정된 환경 선택
$}
作者: idwma    时间: 2021-7-5 17:25

本帖最后由 idwma 于 2021-7-5 17:37 编辑

改一下
@echo off&setlocal enabledelayedexpansion
set file=fff.txt
for /f "tokens=1 delims=:" %%i in ('type !file! ^| findstr /n "{$CP949"') do (
set n=%%i
)
for /f "tokens=1 delims=:" %%i in ('type !file! ^| findstr /n "$}"') do (
set nn=%%i
)

for /f "tokens=1,* delims=:" %%i in ('type !file! ^| findstr /n ".*"') do (
set/a nnn+=1
if !nnn! leq !n! echo;%%j
if !nnn! geq !nn! echo;%%j
)>>aaa.txt

pause&exit
作者: newswan    时间: 2021-7-5 17:51

本帖最后由 newswan 于 2021-7-6 15:35 编辑

powershell
  1. $file1 = "1.txt"
  2. $file2 = "2.txt"
  3. (get-content -raw -path $file1 ) -replace "(?s)[{][$]CP949=.*[$][}]`r?`n","" -replace "`r?`n$","" | out-fiel $file2
复制代码

作者: newswan    时间: 2021-7-5 17:53

本帖最后由 newswan 于 2021-7-6 15:35 编辑

第三方 sed
  1. set file=1.txt
  2. sed -r -e "/[{][$]CP949=/,/[$][}]/d" -i %file%
复制代码
如果要修改文本 -i 否则 >2.txt
作者: hfstar    时间: 2021-7-5 18:38

多谢三位
作者: WHY    时间: 2021-7-5 22:02

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in (1.txt) do (
  4.     set "s=%%i"
  5.     if "!s:{$CP949=!" NEQ "!s!" (
  6.         set flag=1
  7.     ) else if not defined flag (
  8.         echo;!s!
  9.     ) else if "!s:$}=!" NEQ "!s!" (
  10.         set "flag="
  11.     )
  12. )) > 2.txt
  13. pause
复制代码

作者: hfstar    时间: 2021-7-6 13:29

回复 6# WHY
很好用,可惜没有评分给你了。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2