实现两个文本同行交替输出的批处理代码


有两个文本如下(实际中并不知道两文本各有多少行):

文本1.txt

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ggggggggggggggggggggggggggggggggggggggg
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

文本2.txt

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj


要求用批处理输出如下(两文本交替输出):

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
ccccccccccccccccccccccccccccccccccccccc
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
ggggggggggggggggggggggggggggggggggggggg

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

要求:
1 尽量不生成临时文件
2 代码要高效
3 代码尽量简洁
目的:
唯一的目的在于共同提高!

答案:
more:

复制代码 代码如下:

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('type 11.txt') do (
set /a m+=1
set "home!m!=%%a"
)
for /f "delims=" %%b in ('type 12.txt') do (
set /a n+=1
set "bat!n!=%%b"
)
if %m% gtr %n% (
for /l %%c in (1 1 %m%) do (
if not "!home%%c!"=="" echo !home%%c!
if not "!bat%%c!"=="" echo !bat%%c!
)
) else (
for /l %%d in (1 1 %n%) do (
if not "!home%%d!"=="" echo !home%%d!
if not "!bat%%d!"=="" echo !bat%%d!
)
)
pause

 

batman:
复制代码 代码如下:

@echo off
for /f "delims=" %%i in (1.txt) do set /a n+=1&call,set "_%%n%%=%%i"
for /f "delims=" %%i in (2.txt) do set /a m+=1&call,set ".%%m%%=%%i"
if %n% gtr %m% (set "num=%n%") else (set "num=%m%")
for /l %%i in (1,1,%num%) do (
if defined _%%i call,echo %%_%%i%%
if defined .%%i call,echo %%.%%i%%
)
pause>nul

 

pusofalse:
复制代码 代码如下:

@echo off&setlocal enabledelayedexpansion&set n=-1
for /f "delims=" %%a in (1.txt) do (
set/a n+=1
set flag=
call :lp %%a
if not defined flag echo %%a
)
:lp
if "%1" equ "" set/a n+=1
set m=skip=%n%
if "%m%" equ "skip=0" set "m="
for /f "%m% delims=" %%a in (2.txt) do if "%1" neq "" (echo %1&echo %%a&set flag=a&goto :eof) else echo %%a
if "%1" equ "" pause


 

batman:
复制代码 代码如下:

@echo off
set "n=-1"&set "flag=a"
:begin
set /a n+=1
if %n% equ 0 (set "m=") else (set "m=skip=%n%")
for /f "%m% delims=" %%i in (1.txt) do echo %%i&if defined flag goto next
set no=a
:next
for /f "%m% delims=" %%i in (2.txt) do echo %%i&goto begin
if not defined no set "flag="&goto begin
pause>nul

 

batman:
复制代码 代码如下:

@echo off&setlocal enabledelayedexpansion
set "num=0"
for %%a in (1.txt 2.txt) do (
for /f "delims=" %%i in (%%a) do (
set /a n+=1
if !n! gtr !num! set "num=!n!"
set /p=%%i <nul>>temp.txt
)
echo.>>temp.txt&set "n=0"
)
:lp
set /a n+=1
for /f "tokens=%n%" %%i in (temp.txt) do echo %%i
if %n% neq %num% goto lp
del /q temp.txt&pause>nul



相关阅读:
Linux创建文件命令的方法
mysqlreport显示Com_中change_db占用比例高的问题的解决方法
要精通ACCESS需掌握的内容
关于jsp的定时实现过程
jquery ajax return没有返回值的解决方法
GHOST参数、命令操作指南
解析Linux特殊文件
CSS布局带来的巨大影响:CSS display属性值
Apache+Servlet+Jsp环境设置(中)
分页显示Oracle数据库记录的类之一
Exchange数据库执行可靠恢复操作
Vista破解激活七种方法
asp.net SqlDataAdapter对象使用札记
H标记要在网页制作中合理使用
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 触动我心灵的那一幕作文1100字 不想冬眠的小青蛙 寻梅不见,又见梅开作文1100字 我的行囊 小学四年级作文700字:学当小记者 我过了一把瘾 隆志远 创建文明卫生城市调研报告 浮世绘【发个朋友圈能有多重要】 清明扫墓去 苏教版高一周测--江苏省姜堰二中高一语文周练二(转载)(会员上传) 小学四年级作文350字:参观江西革命烈士纪念堂有感 小学四年级作文400字:给最敬爱的老师 七街 西北地区和青藏地区教学反思 暑假趣事之一个我不认识的爷爷作文1200字 婚外恋的后果:害了自己也害了别人! 近日之感 相处,合作 北京猿人(转载)作文800字 鹊桥仙四首 2016县经济局工作总结范文 学着看淡生活,试着享受人生! 想念,纤纤蔓蔓 给老婆的检讨书1000字参考 2015班会演讲稿 “多嘴怪”的检讨书 小学数学教师师德工作总结 2016年度教育培训述职述廉报告 那天我拾到快乐的钥匙作文1000字 初雨小记 修水管 母鸡妈妈下的大鸡蛋 开启“德国模式” 自己酿的苦酒,只能自己尝! 大学生喜迎十八大的心得 喜迎十八大,青春展风采 一加一等于几作文300字 十月,爱的传奇 春天到了100字 “一”的联想作文400字 亦醉清华梦发表日志:109lg梦幻成长日志(整理)5 为什么玩对孩子非常重要 年轻的老母亲 2015毕业设计工作总结 高一写有关除夕的作文:除夕的特殊意义 小学六年级作文700字:让眼睛明亮起来 2016顶岗实习承诺书 谁的城镇化 人世间,并非无烦恼就快乐,也并非快乐就没有烦恼 致婚姻 小学六年级作文550字:听

Copyright © 2016 phpStudy |