返回列表 发帖
@echo off
rem 批处理保存为utf-8编码格式
chcp 65001 >nul
for /f "useback delims=" %%i in (`dir /b /a-d *.txt`) do (
setlocal
for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i" ^|find "]第" ^|find "章"`) do (
set _"%%a"=1
)
(for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i"`) do (
if not defined _"%%a" (
echo=%%b
) else (
echo=
echo=
echo=
echo=%%b
echo=
echo=
echo=
)
))>$
move $ "%%i"
endlocal
)
pauseCOPY

使用前先备份!可能会有误差,如果”章“后面有个空格,代码改为 find "章 " 误差应该小点
bat小白,请多指教!谢谢!

TOP

wfr
http://bcn.bathome.net/tool/wfr.exe

wfr *.txt /encin:utf-8 /encout:utf-8 -r:"^\s*第\s*\d+\s*章.*" -t:"\n\n\n\0\n\n\n"COPY
bat小白,请多指教!谢谢!

TOP

回复 8# kokoxx


   
代码第6行改为
	for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i" ^|find "]第" ^|find "章" ^|find /v "此行不做添加空行处理"`) do (COPY
bat小白,请多指教!谢谢!

TOP

回复 10# kokoxx


  
@echo off
rem 批处理保存为utf-8编码格式
chcp 65001 >nul
for /f "useback delims=" %%i in (`dir /b /a-d *.txt`) do (
(for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i"`) do (
echo=
echo=%%b
))>$
move $ "%%i"
)
pauseCOPY
bat小白,请多指教!谢谢!

TOP

回复 12# kokoxx


  
@echo off
rem 批处理保存为utf-8编码格式
chcp 65001 >nul
for /f "useback delims=" %%i in (`dir /b /a-d *.txt`) do (
setlocal
for /f "useback tokens=1* delims=[]" %%a in (`find /n "猜你喜欢:" ^<"%%i"`) do (
set _"%%a"=1
)
for /f "useback tokens=1* delims=[]" %%a in (`find /n "更多推荐:" ^<"%%i"`) do (
set _"%%a"=1
)
(for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i"`) do (
if not defined _"%%a" (
echo=%%b
) else (
echo=
)
))>$
move $ "%%i"
endlocal
)
pauseCOPY
bat小白,请多指教!谢谢!

TOP

回复 18# kokoxx


   应该是 猜你喜欢: 这个字符串在原文中没有找到。
使用你提供的文件,我这里测试正常。
bat小白,请多指教!谢谢!

TOP

回复 20# kokoxx


  
@echo off
rem 批处理保存为utf-8编码格式
chcp 65001 >nul
for /f "useback delims=" %%i in (`dir /b /a-d *.txt`) do (
setlocal
for /f "useback tokens=1* delims=[]" %%a in (`find /n ".html" ^<"%%i"`) do (
for %%x in (-2 -1 0 1) do (
set /a n=%%a+%%x
call set _"%%n%%"=1
)
)
(for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i"`) do (
if not defined _"%%a" (
if defined m (
echo=
set m=
)
echo=%%b
) else (
set m=1
)
))>$
move $ "%%i"
endlocal
)
pauseCOPY
bat小白,请多指教!谢谢!

TOP

回复 22# kokoxx


   对的,7行缩成一行空白
bat小白,请多指教!谢谢!

TOP

回复 28# kokoxx


  
(for /f "useback tokens=1* delims=[]" %%a in (`find /n /v "" ^<"%%i"`) do (
if not defined _"%%a" (
echo=%%b
)
))>$COPY
12-18行改为上面的,即去掉else (echo=)
bat小白,请多指教!谢谢!

TOP

回复 30# kokoxx


  
@echo off
rem 批处理保存为utf-8编码格式
chcp 65001 >nul
cd /d "%~dp0"
set /a x=3,y=2
for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
setlocal
(for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
if "%%b" equ "" (
set /a n+=1
) else if defined n (
set /a m=n/x*y+n%%x
set n=
setlocal enabledelayedexpansion
for /l %%l in (1,1,!m!) do (
echo=
)
endlocal
echo=%%b
) else (
echo=%%b
)
))>$
move $ "%%i"
endlocal
)
pauseCOPY
bat小白,请多指教!谢谢!

TOP

返回列表