标题: [文本处理] 批处理同时读取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编码试试。- @echo off
- chcp 65001
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (a.txt) do (
- set /p str=
- echo,%%i,!str!
- ))<b.txt>c.txt
- pause
复制代码
作者: hfxiang 时间: 2023-9-8 16:26
回复 1# mylove
用paste( http://bcn.bathome.net/tool/Gow,5.3.0/paste.exe )比较简单- 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
全保留空行- @echo off
- chcp 65001
- (for /f "delims=" %%a in ('findstr /n .* a.txt') do (
- set aaa=%%a
- set /p str=
- setlocal enabledelayedexpansion
- echo,!aaa:*:=!,!str!
- endlocal
- set str=
- ))<b.txt >c.txt
- pause&chcp 936
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |