[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

文本A




文本B
1
2
3
4
需要得到文本C
赵,1
钱,2
孙,3
李,4
哪位大神救救命!!!

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

TOP


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

评分人数

    • 77七: 感谢分享技术 + 1

TOP

回复 2# qixiaobin0715


    已解决..代码可用..非常感谢

TOP

回复 4# mylove


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# mylove

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

TOP

本帖最后由 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
复制代码

TOP

返回列表