中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 14:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求个文本合并的批处理或VBS 查看 821 回复 10
楼 主 求个文本合并的批处理或VBS 发表于 2009-04-07 06:29 ·  中国 广东 广州 天河区 电信
初级用户
积分 59
发帖 46
注册 2007-04-10 00:25
19年会员
UID 84529
性别 男
状态 离线
ab两个文本~
将b文本每行内容插在a文本对应行的后面

如:
a文本内容
123
456
789
...

b文本内容
abc
def
hij
...

处理后
123----abc
456----def
789----hij


想了很久不知道该怎么写
2 发表于 2009-04-07 07:31 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off
set n=0
for /f "tokens=*" %%a in (a.txt) do (
set/a n+=1
call set #%n%#=%%a
)
set n=0
for /f "tokens=*" %%a in (b.txt) do (
set/a n+=1
call echo.%%#%n%#%%----%%a
)

pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
77720666 +1 2009-04-08 06:05
精简
=> 个人网志
3 发表于 2009-04-07 07:46 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
如果两个文本的行数一样,可以参考下面的代码:
@echo off
for /f "delims=" %%a in (a.txt) do (
call :lp "%%a"
)
pause&goto :eof
:lp
for /f "%skp% delims=" %%b in (b.txt) do (
set /a n+=1
call set skp=skip=%%n%%
echo.%~1---%%b
goto :eof
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
77720666 +1 2009-04-08 06:06
4 发表于 2009-04-07 07:52 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
2楼的应该是这样吧:
@echo off
set n=0
for /f "tokens=*" %%a in (a.txt) do (
set/a n+=1
call set #%%n%%#=%%a
)
set n=0
for /f "tokens=*" %%a in (b.txt) do (
set/a n+=1
call call echo.%%%%#%%n%%#%%%%----%%a
)
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
77720666 +1 2009-04-08 06:06
5 发表于 2009-04-07 08:08 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线

'cscript -nologo a.vbs
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFileA = oFso.OpenTextFile("a.txt")
Set oFileB = oFso.OpenTextFile("b.txt")
While Not (oFileA.AtEndOfLine Or oFileB.AtEndOfLine)
WSH.Echo oFileA.ReadLine & "----" & oFileB.ReadLine
Wend
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
77720666 +2 2009-04-08 06:05
6 发表于 2009-04-07 09:06 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
4楼正解,
偶是漏掉了一层call
见笑了。^_^
精简
=> 个人网志
7 发表于 2009-04-07 10:37 ·  中国 广东 广州 花都区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
无差错行对应实例

@echo off
for /f "skip=4 tokens=1,2 delims=" %%i in ('find /v /n "" ?.txt^|sort') do (
If Not defined textnewline%%i (
set/p=%%j---<nul
set textnewline%%i=%%i
) else (
echo %%j
)
)>>output.txt

49206C6F766520796F752067757973 54656C3A3133383238343036373837
8 发表于 2009-04-07 11:11 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
不行的,如[1]的下一行可能是[10]
9 发表于 2009-04-07 11:33 ·  中国 广东 广州 花都区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
这个没考虑,哈哈
49206C6F766520796F752067757973 54656C3A3133383238343036373837
10 发表于 2009-04-08 06:05 ·  中国 广东 广州 天河区 电信
初级用户
积分 59
发帖 46
注册 2007-04-10 00:25
19年会员
UID 84529
性别 男
状态 离线
谢谢各位了~
看来最简单还是用VBS
11 发表于 2009-04-08 06:07 ·  中国 广东 广州 天河区 电信
初级用户
积分 59
发帖 46
注册 2007-04-10 00:25
19年会员
UID 84529
性别 男
状态 离线
Originally posted by everest79 at 2009-4-7 10:37 AM:
无差错行对应实例

@echo off
for /f "skip=4 tokens=1,2 delims=" %%i in ('find /v /n "" ?.txt^|sort') do (
If Not defined textnewline%%i (
set/p=%%j---< ...

对不起,您最近 24 小时评分数超过 5 点 限制,请返回。



不好意思了
论坛跳转: