找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 123|回复: 12

[文本处理] 请教需要把1文本每行,都添加2文本里所有行一次

[复制链接]
发表于 昨天 15:44 | 显示全部楼层 |阅读模式
例如
文本1:内容
24.251.24.40:50637
177.136.120.145:1080
119.47.88.166:1080
186.226.160.3:1818
139.162.83.23:55477
94.158.70.97:1080
186.207.71.192:16588
65.35.38.244:35581
71.93.182.136:14912
179.153.212.126:55844
179.218.76.104:17009
179.153.241.141:65000
41.71.119.195:1080
189.100.88.111:22728

文本2:内容
----kuxtruz5----dFropqzxu881
----kuxtruz7----dFropqzxu883
----kuxtruz8----dFropqzxu884
----kuxtruz9----dFropqzxu885
----kuxtruz15----dFropqzxu891
----kuxtruz16----dFropqzxu892
----kuxtruz17----dFropqzxu893
----kuxtruz18----dFropqzxu894
----kuxtruz19----dFropqzxu895
----kuxtruz20----dFropqzxu896
----kuxtruz21----dFropqzxu897
----kuxtruz25----dFropqzxu901
----kuxtruz28----dFropqzxu904
----kuxtruz29----dFropqzxu905
----kuxtruz32----dFropqzxu908
----kuxtruz33----dFropqzxu909
----kuxtruz34----dFropqzxu910
----kuxtruz35----dFropqzxu911
----kuxtruz36----dFropqzxu912
----kuxtruz37----dFropqzxu913
----kuxtruz38----dFropqzxu914
----kuxtruz39----dFropqzxu915
----kuxtruz40----dFropqzxu916
----kuxtruz47----dFropqzxu923
----kuxtruz48----dFropqzxu924
----kuxtruz49----dFropqzxu925
----kuxtruz50----dFropqzxu926

最终想得到的结果

24.251.24.40:50637----kuxtruz5----dFropqzxu881
24.251.24.40:50637----kuxtruz7----dFropqzxu883
24.251.24.40:50637----kuxtruz8----dFropqzxu884
24.251.24.40:50637----kuxtruz9----dFropqzxu885
一直到最后
24.251.24.40:50637----kuxtruz50----dFropqzxu926
然后文本1的第二行添加
177.136.120.145:1080 添加文本2的27行
也就是文本1的每一行,都添加文本2的所有行一次一直添加完

能理解码???

能帮帮我看这个批处理该怎么写?????
发表于 昨天 18:53 | 显示全部楼层
处理结果文件是一个?还是两个?
理解如下:
第一个结果文件是 1.txt 第 1 行前缀到 2.txt 每一行?
第二个结果文件是 1.txt 第 2 行前缀到 2.txt 中第 27 行?
发表于 昨天 19:19 | 显示全部楼层
根据2楼理解为输出两个结果文件 2.1.txt 和 2.2.txt 造码如下:

test.bat
  1. @echo off &setlocal &set/p "s1="<1.txt
  2. (for /f "delims=" %%a in (2.txt) do echo,%s1%%%a)>2.1.txt
  3. (for /l %%n in (1,1,2) do set/p "s2=")<1.txt
  4. (for /f "tokens=1* delims=:" %%a in ('findstr /n ".*" 2.txt') do if %%a equ 27 (echo,%s2%%%b) else echo,%%b)>2.2.txt
  5. exit/b
复制代码
 楼主| 发表于 昨天 19:32 | 显示全部楼层
本帖最后由 649918043 于 2026-8-23 19:36 编辑
aloha20200628 发表于 2026-8-23 19:19
根据2楼理解为输出两个结果文件 2.1.txt 和 2.2.txt 造码如下:

test.bat


你这个批处理只把1文本第一行,合并到2文本了,其他的都每成功啊,我晕,我是要1文本的每行,都合并到2文本1次


一共最终应该是   1文本的14行   X  2文本的  27=  378 行     14X27=  378
 楼主| 发表于 昨天 19:32 | 显示全部楼层
aloha20200628 发表于 2026-8-23 19:19
根据2楼理解为输出两个结果文件 2.1.txt 和 2.2.txt 造码如下:

test.bat

你这个批处理只把1文本第一行,合并到2文本了,其他的都每成功啊,我晕,我是要1文本的每行,都合并到2文本1次
 楼主| 发表于 昨天 19:37 | 显示全部楼层
aloha20200628 发表于 2026-8-23 18:53
处理结果文件是一个?还是两个?
理解如下:
第一个结果文件是 1.txt 第 1 行前缀到 2.txt 每一行?

一共最终应该是   1文本的14行   X  2文本的  27=  378 行     14X27=  378行
 楼主| 发表于 昨天 19:43 | 显示全部楼层
649918043 发表于 2026-8-23 19:37
一共最终应该是   1文本的14行   X  2文本的  27=  378 行     14X27=  378行

只要1个结果啊     2-1.txt   的结果X  14啊   
1文本的   每一行  合并1次到2文本
发表于 昨天 19:59 | 显示全部楼层
649918043 发表于 2026-8-23 19:32
你这个批处理只把1文本第一行,合并到2文本了,其他的都每成功啊,我晕,我是要1文本的每行,都合并到2文 ...

处理结果文件为 2.new.txt

test.bat
  1. @echo off &setlocal &for /f "tokens=1* delims=:" %%a in ('findstr /n ".*" 1.txt') do set "_#$%%a=%%b"
  2. (for /f "tokens=1* delims==" %%a in ('set _#$') do for /f "delims=" %%x in (2.txt) do echo,%%b%%x)>2.new.txt
  3. exit/b
复制代码
发表于 昨天 20:09 | 显示全部楼层
649918043 发表于 2026-8-23 19:43
只要1个结果啊     2-1.txt   的结果X  14啊   
1文本的   每一行  合并1次到2文本 ...

如要保持源文件行序不变,可改用以下版本...

test.bat
  1. @echo off &setlocal &for /f "tokens=1* delims=:" %%a in ('findstr /n ".*" 1.txt') do (
  2.    set/a "n=%%a+100" &call set "_#$%%n%%=%%b" )
  3. (for /f "tokens=1* delims==" %%a in ('set _#$') do for /f "delims=" %%x in (2.txt) do echo,%%b%%x)>2.new.txt
  4. exit/b
复制代码
 楼主| 发表于 昨天 20:32 | 显示全部楼层
aloha20200628 发表于 2026-8-23 19:59
处理结果文件为 2.new.txt

test.bat

处理了,20分钟了,一直黑着也不知道什么情况,
发表于 昨天 20:53 | 显示全部楼层
649918043 发表于 2026-8-23 20:32
处理了,20分钟了,一直黑着也不知道什么情况,

我用8楼或9楼的代码处理1楼提供的 1.txt (共14行) 和 2.txt (共27行),均是秒杀出结果文件 2.new.txt (共379行,包含最后一个空行) ...
发表于 昨天 22:02 来自手机 | 显示全部楼层
649918043 发表于 2026-8-23 20:32
处理了,20分钟了,一直黑着也不知道什么情况,

是不是有几千上万行?
发表于 昨天 22:39 | 显示全部楼层
649918043 发表于 2026-8-23 20:32
处理了,20分钟了,一直黑着也不知道什么情况,

如果要处理的真实文件均是超大文件(但每行长度不能超过8KB),可改用以下版本,没有变量字典的限量,只用两套逐行读写走到头...

test.bat
  1. @echo off &setlocal &(for /f "delims=" %%a in (1.txt) do for /f "delims=" %%b in (2.txt) do echo,%%a%%b)>2.new.txt
  2. exit/b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-8-24 04:52

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表