如何批量将txt文本中每两行合并成一行且第一行在第二行之后
例如:abcd改为:badc最好能编个批处理文件!分不多,先提前谢谢了!我现在有个通过编写批处理来处理的方法,但是每次只能实现将一个较小的txt文本进行上述处理,我要处理...
例如:a
b
c
d
改为:ba
dc
最好能编个批处理文件!分不多,先提前谢谢了!我现在有个通过编写批处理来处理的方法,但是每次只能实现将一个较小的txt文本进行上述处理,我要处理的txt文本比较大,处理不了。分不多,但是真心希望能够有人帮一下。谢谢!
代码如下:
@echo off
for /f "delims=" %%i in (201407.txt)do (
if defined f (
echo %%i&set "f="
) else (
set f=y&set/p=%%i-
)
)<nul >>b.txt
for /f "tokens=1-2 delims=-" %%c in (b.txt) do (
echo %%d%%c>>c.txt
)
del b.txt
move c.txt 201407.txt
201407为我要进行上述操作(指将每两行合并成一行且第一行在第二行之后)的文本的名字。 展开
b
c
d
改为:ba
dc
最好能编个批处理文件!分不多,先提前谢谢了!我现在有个通过编写批处理来处理的方法,但是每次只能实现将一个较小的txt文本进行上述处理,我要处理的txt文本比较大,处理不了。分不多,但是真心希望能够有人帮一下。谢谢!
代码如下:
@echo off
for /f "delims=" %%i in (201407.txt)do (
if defined f (
echo %%i&set "f="
) else (
set f=y&set/p=%%i-
)
)<nul >>b.txt
for /f "tokens=1-2 delims=-" %%c in (b.txt) do (
echo %%d%%c>>c.txt
)
del b.txt
move c.txt 201407.txt
201407为我要进行上述操作(指将每两行合并成一行且第一行在第二行之后)的文本的名字。 展开
2个回答
展开全部
@echo off
setlocal enabledelayedexpansion
set n=1
set fn=201407.txt
(for /f "tokens=*" %%i in ('type "%fn%"') do (
set /a n = 1 - !n!
if !n!==0 set s=%%i
if !n!==1 echo %%i !s!))>temp.txt
move /y temp.txt "%fn%"
批处理的效率不是太高,如果文本文件太太处理的时间会比较长。
追问
您好,首先感谢您的耐心解答!
按照您的方法我试了下,可以把第一行放在第二行之后,但是第二行的开头部分直接就没有了,这就造成了数据的不完整了。您能再改改吗?
我用很少量的数字数据试了下,是可以的。但是我要处理的是文字,不知道和这个有关系吗?
再次谢谢您,非常感谢!
追答
如果你方便把你测试的数据(能造成第二行开头没有的)放到网盘我试一下吗?
我用自己弄的模拟数据没问题。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询