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
如果两个文本的行数一样,可以参考下面的代码:
@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楼的应该是这样吧:
@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
'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
无差错行对应实例
@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
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 点 限制,请返回。 [ 点击这里返回上一页 ] 不好意思了