如何实现两个文本同行交替输出的批处理
短信预约 -IT技能 免费直播动态提醒
这篇文章给大家分享的是有关如何实现两个文本同行交替输出的批处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
有两个文本如下(实际中并不知道两文本各有多少行):
文本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 代码尽量简洁
目的:
唯一的目的在于共同提高!
答案:
代码如下:
@echo offsetlocal enabledelayedexpansionfor /f "delims=" %%a in ('type 11.txt') do (set /a m+=1set "home!m!=%%a")for /f "delims=" %%b in ('type 12.txt') do (set /a n+=1set "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 offfor /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=-1for /f "delims=" %%a in (1.txt) do (set/a n+=1set flag=call :lp %%aif not defined flag echo %%a):lpif "%1" equ "" set/a n+=1set 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 %%aif "%1" equ "" pause
batman:
代码如下:
@echo offset "n=-1"&set "flag=a":beginset /a n+=1if %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 nextset no=a:nextfor /f "%m% delims=" %%i in (2.txt) do echo %%i&goto beginif not defined no set "flag="&goto beginpause>nul
batman:
代码如下:
@echo off&setlocal enabledelayedexpansionset "num=0"for %%a in (1.txt 2.txt) do (for /f "delims=" %%i in (%%a) do (set /a n+=1if !n! gtr !num! set "num=!n!"set /p=%%i <nul>>temp.txt)echo.>>temp.txt&set "n=0"):lpset /a n+=1for /f "tokens=%n%" %%i in (temp.txt) do echo %%iif %n% neq %num% goto lpdel /q temp.txt&pause>nul
感谢各位的阅读!关于“如何实现两个文本同行交替输出的批处理”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341