您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何實現兩個文本同行交替輸出的批處理的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
有兩個文本如下(實際中并不知道兩文本各有多少行):
文本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 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
感謝各位的閱讀!關于“如何實現兩個文本同行交替輸出的批處理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。