bat编程,指定两行中间所有行输出到文本 10

想写个用来分割文本文件的bat,实现将a.txt文件中行!DATA和行!DATB中间的所有行输出到文本,!DATB以下的所有行输出到文本!DATA2014;Oct;[No... 想写个用来分割文本文件的bat,实现将a.txt文件中行!DATA和行!DATB中间的所有行输出到文本,!DATB以下的所有行输出到文本
!DATA
2014;Oct;[None];[None];[None];0
2014;Oct;[None];[None];[None];15056.32
!DATB
2014;Oct;[None];[None];[None];0
2014;Oct;[None];[None];[None];1000000
完美解决追加悬赏
展开
 我来答
就得清闲1
2014-12-16 · 超过32用户采纳过TA的回答
知道答主
回答量:79
采纳率:66%
帮助的人:40.2万
展开全部
setlocal enabledelayedexpansion
set start=0
for /f "delims=" %%i in (a.txt) do (
if "%%i"=="!DATA" set start=1
if "%%i"=="!DATB" set start=2
if !start!==1 echo %%i>>a.log
if !start!==2 echo %%i>>b.log)
更多追问追答
追问
!DATA和!DATB可以不输出么?
我的方法是在你的程序下面加了一段,将!DATA从a.log中删掉
另外,我的源文件有近1G,运行效率很低,10分钟还没看到结果,正常么?
追答
setlocal enabledelayedexpansion
set start=0
for /f "delims=" %%i in (a.txt) do (
if "%%i"=="!DATA" set start=1
if "%%i"=="!DATB" set start=2
if !start!==1 (if not "%%i"=="!DATA" echo %%i>>a.log)
if !start!==2 (if not "%%i"=="!DATB" echo %%i>>b.log))
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式