中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 04:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 合并两个文件的行 查看 950 回复 7
楼 主 合并两个文件的行 发表于 2007-05-16 03:24 ·  中国 福建 厦门 电信
初级用户
积分 68
发帖 36
注册 2006-12-20 15:31
19年会员
UID 74057
性别 男
状态 离线
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 行的未尾...
依次类推,第二行接第二行...第三行接第三行....
2 发表于 2007-05-16 09:05 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
什么意思?
要这样的效果
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
3 发表于 2007-05-16 09:26 ·  中国 上海 电信
初级用户
★★
积分 180
发帖 84
注册 2006-09-07 00:33
19年会员
UID 61995
状态 离线
他是要两个文件的对应行接起来
4 发表于 2007-05-16 10:12 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
哦;这个意思啊;那试试下面的这个行不

@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
)
5 发表于 2008-01-02 22:18 ·  中国 北京 朝阳区 联通
初级用户
积分 32
发帖 13
注册 2007-12-27 17:40
18年会员
UID 106963
性别 男
状态 离线
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"< ...



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

有没有可行的方法?
邮件地址去掉123
6 发表于 2008-01-03 11:01 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
注: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
7 发表于 2008-01-03 16:35 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Unix小工具paste.exe实现这个功能很方便啊^_^
8 发表于 2008-01-04 15:03 ·  中国 北京 联通
初级用户
积分 32
发帖 13
注册 2007-12-27 17:40
18年会员
UID 106963
性别 男
状态 离线
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~
邮件地址去掉123
论坛跳转: