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
完美解决追加悬赏 展开
!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
完美解决追加悬赏 展开
展开全部
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)
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))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询