[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
这题应该是1.txt总是比2.txt多吧?
心绪平和,眼藏静谧。

TOP

这类的交错输出的文本题比较经典,不确定到底那个多,岂不是要先得读出行数多或行数少的那个?
心绪平和,眼藏静谧。

TOP

的确如此 思维定向了。
心绪平和,眼藏静谧。

TOP

@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

[ 本帖最后由 pusofalse 于 2008-7-25 16:55 编辑 ]
1

评分人数

    • batman: 这样的代码效率是最高的。PB + 10
心绪平和,眼藏静谧。

TOP

为了减少不必要的调用,修改如下。
  1. @echo off&set n=-1
  2. for /f "delims=" %%a in (1.txt) do (
  3. set/a n+=1
  4. set flag=
  5. if not defined faith call :lp %%a
  6. if not defined flag echo %%a
  7. )
  8. :lp
  9. if "%1" equ "" set/a n+=1
  10. set m=skip=%n%
  11. if "%m%" equ "skip=0" set "m="
  12. for /f "%m% delims=" %%a in (2.txt) do if "%1" neq "" (echo %1&echo %%a&set flag=a&goto :eof) else echo %%a
  13. set faith=faith
  14. if "%1" equ "" pause
复制代码
心绪平和,眼藏静谧。

TOP

jm厉害,考虑这么全面。
心绪平和,眼藏静谧。

TOP

返回列表