标题: [文本处理] 【已解决】批处理如何将两个txt文本行行对应合并成一行 [打印本页]
作者: hmlstfqtl 时间: 2016-7-20 15:47 标题: 【已解决】批处理如何将两个txt文本行行对应合并成一行
本帖最后由 hmlstfqtl 于 2016-7-20 20:28 编辑
我用下面的代码 输出的结果有问题
a.txt 内容
aaaaaaa
bbbbbbbb
cccccccc
ddddddddd
eeeeeeee
b.txt内容
11111111
2222222
333333333
444444444
555555555
我想实现的是轮流输出
aaaaaaa 11111111
bbbbbbbb 2222222
cccccccc 333333333
ddddddddd 444444444
eeeeeeee 555555555
结果却变成
aaaaaaa 11111111
aaaaaaa 2222222
aaaaaaa 333333333
aaaaaaa 444444444
aaaaaaa 555555555
bbbbbbbb 11111111
bbbbbbbb 2222222
bbbbbbbb 333333333
bbbbbbbb 444444444
bbbbbbbb 555555555
cccccccc 11111111
cccccccc 2222222
cccccccc 333333333
cccccccc 444444444
cccccccc 555555555
ddddddddd 11111111
ddddddddd 2222222
ddddddddd 333333333
ddddddddd 444444444
ddddddddd 555555555
eeeeeeee 11111111
eeeeeeee 2222222
eeeeeeee 333333333
eeeeeeee 444444444
eeeeeeee 555555555
代码是这个- @echo off
- for /f "delims=" %%i in (a.txt) do for /f "delims=" %%j in (b.txt) do echo %%i %%j>>c.txt
- pause
复制代码
作者: GNU 时间: 2016-7-20 15:52
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (a.txt) do (
- set /p str=
- echo !str! %%i
- ))<b.txt >c.txt
复制代码
作者: hmlstfqtl 时间: 2016-7-20 16:11
GNU 发表于 2016-7-20 15:52
如果我想生成其他格式的呢?
ttttttttttt
tttttttttttaaaaaaa
ttttttttttt11111111
tttttttttttaaaaaaa
ttttttttttt
ttttttttttt
tttttttttttbbbbbbbb
ttttttttttt222222
tttttttttttbbbbbbbb
ttttttttttt
ttttttttttt
tttttttttttccccccc
ttttttttttt33333333
tttttttttttccccccccc
ttttttttttt
类似上面这样 tttttt都是固定的 加红的部分是文本内容
作者: pcl_test 时间: 2016-7-20 16:24
回复 1# hmlstfqtl
第三方http://www.bathome.net/s/tool/index.html?down&key=gawk- gawk "NR==FNR{a[NR]=$0;next}{print a[++i],$0}" "1.txt" "2.txt">"3.txt"
复制代码
作者: GNU 时间: 2016-7-20 16:30
回复 3# hmlstfqtl
编写文本处理类型的代码是一件非常严谨的事情,很难根据你瞎编的文本写出适合你的代码。
建议把原始文件和希望得到的文件打包压缩传上来。
作者: hmlstfqtl 时间: 2016-7-20 16:42
本帖最后由 hmlstfqtl 于 2016-7-20 16:44 编辑
回复 5# GNU
文本a.txt
167.229.78.106
167.229.78.107
167.229.78.108
167.229.78.109
167.229.78.110
文本b.txt
t1
t2
t3
t4
t5
生成下面这样的
<VirtualHost 167.229.78.106>
DocumentRoot C:/xampp/htdocs/t1
ServerName 167.229.78.106
</VirtualHost>
<VirtualHost 167.229.78.107>
DocumentRoot C:/xampp/htdocs/t2
ServerName 167.229.78.107
</VirtualHost>
作者: pcl_test 时间: 2016-7-20 17:02
本帖最后由 pcl_test 于 2016-7-21 00:13 编辑
回复 6# hmlstfqtl - //&cls&cscript -nologo -e:jscript "%~f0" "1.txt" "2.txt"&pause&exit
- var str = '<VirtualHost {0}>\r\nDocumentRoot C:/xampp/htdocs/{1}\r\nServerName {0}\r\n</VirtualHost>';
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var f1 = fso.OpenTextFile(WSH.Arguments(0), 1);
- var f2 = fso.OpenTextFile(WSH.Arguments(1), 1);
- var txt = f1.ReadAll().split(/[\r\n]+/), i=0;
- while(!f2.AtEndOfStream){
- WSH.echo(str.replace(/\{0\}/g, txt[i]).replace(/\{1\}/, f2.ReadLine())+'\r\n');
- i++;
- }
复制代码
作者: hmlstfqtl 时间: 2016-7-20 17:09
怎么输出到文本
作者: pcl_test 时间: 2016-7-20 17:20
回复 8# hmlstfqtl
你猜- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('type "1.txt"') do (
- set /p str=
- echo;^<VirtualHost %%i^>
- echo;DocumentRoot C:/xampp/htdocs/!str!
- echo;ServerName %%i
- echo;^</VirtualHost^>
- echo;
- )<"2.txt"
- pause
复制代码
作者: hmlstfqtl 时间: 2016-7-20 17:31
回复 9# pcl_test
你这个不行啊 2.txt的内容只有第一行
<VirtualHost 167.229.78.106>
DocumentRoot C:/xampp/htdocs/t1
ServerName 167.229.78.106
</VirtualHost>
<VirtualHost 167.229.78.107>
DocumentRoot C:/xampp/htdocs/t1
ServerName 167.229.78.107
</VirtualHost>
作者: pcl_test 时间: 2016-7-20 17:36
回复 10# hmlstfqtl
都说让你猜,你说少了什么
作者: hmlstfqtl 时间: 2016-7-20 17:50
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type "1.txt"') do (
for /f "delims=" %%j in ('type "2.txt"') do (
echo;^<VirtualHost %%i^>
echo;DocumentRoot C:/xampp/htdocs/%%j
echo;ServerName %%i
echo;^</VirtualHost^>
echo;
)
)
pause
这样改了 不行 重复输出很多遍
作者: pcl_test 时间: 2016-7-20 17:58
回复 12# hmlstfqtl
2楼GNU的代码白写了
作者: gawk 时间: 2016-7-20 18:37
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (a.txt) do (
- set /p str=
- echo ^<VirtualHost %%i^>
- echo DocumentRoot C:/xampp/htdocs/!str!
- echo ServerName %%i
- echo ^</VirtualHost^>
- ))<b.txt >c.txt
复制代码
作者: hmlstfqtl 时间: 2016-7-20 20:27
gawk 发表于 2016-7-20 18:37
可以了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |