批处理如何逐行复制文本

来源:百度知道 编辑:UC知道 时间:2024/07/04 06:50:43
a.txt里的内容是
guo
huang
hello
b.txt里的内容是
jing
rong
world
合成c.txt是
guo jing
huang rong
hello world
To 09cdy
你最有一个if是判断什么的?没弄明白!请指教。
+!moon!的+号是干什么的?
顺便问一下,我原来做了个脚本,是find到“error:”就认为出错,便执行出错处理;但现在我想忽略除了“error:”没有其他任何文字的行,请指教,放心,我会给你加分的。

@echo off& setlocal enabledelayedexpansion
(for /f "delims=" %%1 in (a.txt)do (set /a wind+=1,snow=0
for /f "delims=" %%2 in (b.txt)do (set /a snow+=1
if !wind!==!snow! (echo %%1 %%2)))
if !wind! gtr !snow! (set moon=!snow!& set smile=a.txt)else set smile=b.txt& set moon=!wind!
more +!moon! !smile!) >c.txt

下楼的谢谢提醒 我刚看了一楼的 发现也有问题!
如果 a.txt内容为
1
2
3

b.txt内容为
1

2

3

4

5
显示的结果有问题

不能用more命令来显示剩下的内容

@echo off
set ju1=0
setlocal enabledelayedexpansion
for /f %%i in (a.txt) do (
set ju2=0
set /a ju1+=1
for /f %%j in (b.txt) do (
set /a ju2+=1
if !ju1!==!ju2! echo %%i %%j>>c.txt
))
if !ju1! gtr !ju2! (more +!ju2! a.txt >>c.txt
) else (more +!ju1! b.txt >>c.txt)
exit

楼上两位的思路基本上是一模一样的
但是测试了一下,一楼09cdy的代码更严谨一些
即使两个文本的行数不同,也可以将剩下的行复制到c.txt