Board logo

标题: 合并两个文件的行 [打印本页]

作者: fjcyz     时间: 2007-5-16 03:24    标题: 合并两个文件的行
a 文件

0638526668827
1502584252836
1467833311398
5967582477335
0579478512245
3007023284581
7677766839768
0098459371414
3407604726468
9930573897634
5390754524674
1838103002746
4592552155390

b文件

00-E0-4C-77-11-99 192.168.1.3 WIN2K
00-E0-1C-77-18-99 192.168.1.4 W2K
00-E0-4C-37-11-99 192.168.1.5 WINK
00-E0-4C-77-77-33 192.168.1.6 WIN

想把 A 的第一行, 合并到 B 行的未尾...
依次类推,第二行接第二行...第三行接第三行....

作者: bjsh     时间: 2007-5-16 09:05
什么意思?
要这样的效果
00-E0-4C-77-11-99 192.168.1.3 WIN2K
00-E0-1C-77-18-99 192.168.1.4 W2K
00-E0-4C-37-11-99 192.168.1.5 WINK
00-E0-4C-77-77-33 192.168.1.6 WIN
0638526668827
1502584252836
1467833311398
5967582477335
0579478512245
3007023284581
7677766839768
0098459371414
3407604726468
9930573897634
5390754524674
1838103002746
4592552155390

如果是这样的话:
copy b.txt+a.txt c.txt
看情况在b.txt最后加一空行;
copy

作者: ttyp     时间: 2007-5-16 09:26
他是要两个文件的对应行接起来

作者: bjsh     时间: 2007-5-16 10:12
哦;这个意思啊;那试试下面的这个行不

@echo off&setlocal enabledelayedexpansion
set /a count=1
for /f "delims=" %%b in (b) do (
set /p"=%%b"<nul
for /f "tokens=2 delims=:" %%a in ('findstr /n .* a^|findstr /b "!count!:"') do echo %%a
set /a count+=1
)

作者: gamevyo     时间: 2008-1-2 22:18
Originally posted by bjsh at 2007-5-16 10:12 AM:
哦;这个意思啊;那试试下面的这个行不

@echo off&setlocal enabledelayedexpansion
set /a count=1
for /f "delims=" %%b in (b) do (
set /p"=%%b"< ...



刚也遇到这个问题了 上面的 测试没通过

有没有可行的方法?

作者: zh159     时间: 2008-1-3 11:01
注:b.txt必须空头一行
@echo off
for /f "delims=" %%i in (a.txt) do (
set /a n+=1
call :loop "%%i"
)
pause
exit

:loop
for /f "skip=%n% delims=" %%n in (b.txt) do echo %~1 %%n&goto :eof

作者: HAT     时间: 2008-1-3 16:35
Unix小工具paste.exe实现这个功能很方便啊^_^

作者: gamevyo     时间: 2008-1-4 15:03
Originally posted by zh159 at 2008-1-3 11:01 AM:
注:b.txt必须空头一行
@echo off
for /f "delims=" %%i in (a.txt) do (
set /a n+=1
call :loop "%%i"
)
pause
exit

:loop
for / ...



Thank you very much~