标题: [求助]如何把指定行的字符串追加到文件
[打印本页]
作者: 29984365
时间: 2007-4-6 05:57
标题: [求助]如何把指定行的字符串追加到文件
我有一堆类似这样的存储数据的文本,
Quote: |
标识a:1111个单位
中间可能有N个标识
标识b:222个单位
分隔符
标识c:333个单位
标识c:4444个单位
标识d:55个单位 |
|
文本特点:标识可能重复,每个数据的长度不固定,每种单位也不一定相同
我想从这样特点的数据文本里找到
分隔符下的那一行的数据追加到一个文件中
我的想法是先确定
分隔符的行数X,读取X+1行,提取需要的数据。因为是新手,看了置顶索引里的那些帖子还是迷迷糊糊的,下面写的这个批处理也是很笨拙,还有些问题:比如数据长度变动,就没法准确记录了!
@echo off
setlocal
for /f "tokens=1,* delims=:" %%a in ('findstr /n /c:"分隔符" test.txt') do (
set line=%%a
)
set num=0
setlocal enabledelayedexpansion
for /f "skip=%line% delims=" %%i in (test.txt) do (
set /a num+=1
set var=%%i
if !num! equ 1 echo !var:~7,3!>>num.txt
)
endlocal
不知道哪位高手能帮忙指点一二,优化下
[
Last edited by 29984365 on 2007-4-6 at 06:12 PM ]
作者: lxmxn
时间: 2007-4-6 07:00
根据楼主另提的要求及目的写了这个批处理,楼主试试,不行再跟贴讨论。
@Echo off&SetLocal EnableDelayedExpansion
for /f "delims=" %%a in ('findstr ">.*<" ko_.html') do (
set "string=%%a"
set "string=!string:>=\!"&set "string=!string:<=\!"
if defined lxmxn (set "lxmxn="&&call :printf "!string!") else (echo !string!|find "总帖数" >nul 2>nul&&set lxmxn=cn-dos)
)
:end
pause&exit/b
:printf
set hello=%~1
for /f "tokens=2 delims=\" %%i in ("%hello%") do echo %%i
exit/b
作者: 29984365
时间: 2007-4-6 07:12
测试过了,非常好用。
如果处理很多文件,估计需要漫长的等待了=.=