批量FOR LOOP来自每个文件的一行文本和ECHO两行

时间:2013-07-27 04:44:17

标签: loops batch-file merge

操作系统:Windows 7

我需要输出两行;每个文本文件中的一个,并排。与已展示的内容类似here

A.TXT;

1
2
3
4
5

B.txt;

A
B
C
D
E

所以我想回应一下;

1 A
2 B
3 C
4 D
5 E

3 个答案:

答案 0 :(得分:2)

我把它弄得松了一口气,这让你有了解决这个问题的技巧。

@echo off
del file1.txt 2>nul
del file2.txt 2>nul

for %%a in (A B C D) do echo %%a>>file2.txt
for %%a in (1 2 3 4) do echo %%a>>file1.txt

@echo off
setlocal DisableDelayedExpansion
< file2.txt (
   for /F "delims=" %%a in (file1.txt) do (
      set file2Line=
      set /P file2Line=
      set "file1Line=%%a"
      setlocal EnableDelayedExpansion   
      echo(!file1Line! !file2Line!
      endlocal
   )
)
pause

del file1.txt 2>nul
del file2.txt 2>nul
goto :EOF

答案 1 :(得分:0)

试试这个:

@echo off
setlocal enabledelayedexpansion
set /a count=0

For /f %%a in (A.txt) do (
set /a count=!count!+1
set A!count!=%%a
)
set count=0
For /f %%b in (B.txt) do (
set /a count=!count!+1
set B!count!=%%b
)
set recount=0
:loop
recount=%recount%+1
echo %A!recount!% %B!recount!%
if %recount% gtr %count% goto :end
goto :recount
:end
pause
exit

希望这有帮助,

你的莫娜

注意:如果A.txt中有更多行,则会忽略它们。如果数量较少,则会显示[blank] [line from B.txt]

答案 2 :(得分:0)

GNU代码

sed "s#.*#s/.*/& \&/g;n#" A.txt|sed -f - B.txt

>sed "s#.*#s/.*/& \&/g;n#" A.txt|sed -f - B.txt
1 A
2 B
3 C
4 D
5 E
相关问题