标题: [文本处理] 请教批处理前辈如何批量删除文本内容? [打印本页]
作者: nbxas 时间: 2011-2-16 07:56 标题: 请教批处理前辈如何批量删除文本内容?
例:
</style>
height:180%; COLOR: #000000; font-family: Verdana; font-size: 9pt; width=100%;
03:02:39.
<br>cart_add.asp?id=58">http://www.eeer.com/cart_add.asp?id=58</a><br>
当前购物车状态 • 76475<br></div>
<!-- /Copyright ?2005. Spidersoft Ltd -->
我想要批量删除 <!-- /Copyright ?2005. Spidersoft Ltd --> 以上的4行内容
1000多个文本 4行的内容都不一样的
请教前辈该如何写批处理 谢谢
[ 本帖最后由 nbxas 于 2011-2-16 08:10 编辑 ]
作者: Batcher 时间: 2011-2-16 09:24
就是删除</style>到<!-- /Copyright ?2005. Spidersoft Ltd -->之间的行?
作者: lvsehuaxue 时间: 2011-2-16 17:10
- @echo off&setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- set n=0
- (for /f "delims=" %%i in (%%a) do (
- set /a n+=1
- if !n! lss 2 echo %%i
- if !n! gtr 5 echo %%i
- ))>abc
- del %%a
- ren abc %%a
- )
- pause
复制代码
作者: CrLf 时间: 2011-2-16 17:51
提速一下:- @echo off&setlocal enabledelayedexpansion
- for %%z in (*.txt) do (
- set /p tmp=<"%%z"
- (echo !tmp!
- more +5 "%%z")>abc
- move>nul abc "%%z"
- )
- pause
复制代码
另一个方案,写来玩玩:- @echo off&setlocal enabledelayedexpansion
- for %%z in (*.txt) do (
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* %%z^|findstr /v ^[2-5]:') do echo %%b)>abc
- move>nul abc "%%z"
- )
- pause
复制代码
多谢5楼纠错,已修正
[ 本帖最后由 zm900612 于 2011-2-16 23:06 编辑 ]
作者: lvsehuaxue 时间: 2011-2-16 20:51
4楼的第二个方案中第三行有两点疏漏:for后缺/f,另外*.txt应替换成%%z
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |