Board logo

标题: [文本处理] 批处理同时读取2个文本逐行合并怎么操作? [打印本页]

作者: mylove    时间: 2023-9-8 15:55     标题: 批处理同时读取2个文本逐行合并怎么操作?

文本A




文本B
1
2
3
4
需要得到文本C
赵,1
钱,2
孙,3
李,4
哪位大神救救命!!!
作者: qixiaobin0715    时间: 2023-9-8 16: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
复制代码

作者: hfxiang    时间: 2023-9-8 16:26

回复 1# mylove

用paste( http://bcn.bathome.net/tool/Gow,5.3.0/paste.exe )比较简单
  1. paste -d, a.txt b.txt>c.txt
复制代码
注意,分隔符只能是单个可打印的ACSII字符
作者: Batcher    时间: 2023-9-8 16:48

回复 4# mylove


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
作者: mylove    时间: 2023-9-8 16:56

回复 2# qixiaobin0715


    已解决..代码可用..非常感谢
作者: aloha20200628    时间: 2023-9-8 18:14


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

作者: Five66    时间: 2023-9-8 19:11

全保留空行
  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
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2