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

[文本处理] 批处理同时读取2个文本逐行合并怎么操作?

[复制链接]
发表于 2023-9-8 15:55:04 | 显示全部楼层 |阅读模式
文本A




文本B
1
2
3
4
需要得到文本C
赵,1
钱,2
孙,3
李,4
哪位大神救救命!!!
发表于 2023-9-8 16:00:00 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2023-9-8 16:54 编辑

要么将bat文件按下面重新修改,保存为UTF-8编码试试。
  1. @echo off
  2. chcp 65001
  3. setlocal enabledelayedexpansion
  4. (for /f "delims=" %%i in (a.txt) do (
  5.     set /p str=
  6.     echo,%%i,!str!
  7. ))<b.txt>c.txt
  8. pause
复制代码
发表于 2023-9-8 16:26:45 | 显示全部楼层
回复 1# mylove

用paste( http://bcn.bathome.net/tool/Gow,5.3.0/paste.exe )比较简单

  1. paste -d, a.txt b.txt>c.txt
复制代码
注意,分隔符只能是单个可打印的ACSII字符
发表于 2023-9-8 16:48:52 | 显示全部楼层
回复 4# mylove


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
 楼主| 发表于 2023-9-8 16:56:42 | 显示全部楼层
回复 2# qixiaobin0715


    已解决..代码可用..非常感谢
发表于 2023-9-8 18:14:27 | 显示全部楼层

set/p 与 for...in 联手给了纯P脚本一个并行处理文本数据的方法,实属难得。
但用 set/p 逐行读取有两点须明,一是每行只能读取至多1k的字符量,再读可能会乱套,这是原生限制;
二是遭遇空行会复读上一行已读数据,不知win8.1之后的系统版本是否填了坑。
不过真逢上述狭路时,还有vbs/js/ps/...用来救驾

评分

参与人数 1技术 +1 收起 理由
77七 + 1 感谢分享

查看全部评分

发表于 2023-9-8 19:11:26 | 显示全部楼层
全保留空行

  1. @echo off
  2. chcp 65001
  3. (for /f "delims=" %%a in ('findstr /n .* a.txt') do (
  4. set aaa=%%a
  5. set /p str=
  6. setlocal enabledelayedexpansion
  7. echo,!aaa:*:=!,!str!
  8. endlocal
  9. set str=
  10. ))<b.txt >c.txt
  11. pause&chcp 936
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 12:01 , Processed in 0.024193 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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