Board logo

标题: 求个文本合并的批处理或VBS [打印本页]

作者: 77720666     时间: 2009-4-7 06:29    标题: 求个文本合并的批处理或VBS

ab两个文本~
将b文本每行内容插在a文本对应行的后面

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

b文本内容
abc
def
hij
...

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


想了很久不知道该怎么写
作者: netbenton     时间: 2009-4-7 07:31
@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
作者: moniuming     时间: 2009-4-7 07:46
如果两个文本的行数一样,可以参考下面的代码:
CODE:  [Copy to clipboard]
@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
)

作者: moniuming     时间: 2009-4-7 07:52
2楼的应该是这样吧:
CODE:  [Copy to clipboard]
@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

作者: s11ss     时间: 2009-4-7 08:08
CODE:  [Copy to clipboard]
'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

作者: netbenton     时间: 2009-4-7 09:06
4楼正解,
偶是漏掉了一层call
见笑了。^_^
作者: everest79     时间: 2009-4-7 10:37
无差错行对应实例
CODE:  [Copy to clipboard]
@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

作者: s11ss     时间: 2009-4-7 11:11
不行的,如[1]的下一行可能是[10]
作者: everest79     时间: 2009-4-7 11:33
这个没考虑,哈哈
作者: 77720666     时间: 2009-4-8 06:05
谢谢各位了~
看来最简单还是用VBS
作者: 77720666     时间: 2009-4-8 06:07


  Quote:
Originally posted by everest79 at 2009-4-7 10:37 AM:
无差错行对应实例
[code]
@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 点 限制,请返回。

[ 点击这里返回上一页 ]

不好意思了




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5