标题: [文本处理] 批处理合并多个txt如何并自动换行? [打印本页]
作者: 厌世师 时间: 2021-5-1 10:27 标题: 批处理合并多个txt如何并自动换行?
例如:
a.txt内容是:
1
2
3
b.txt内容是:
A
B
C
我合并之后是
1
2
3A
B
C
有没办法在末尾换行,我测试过论坛以前的代码,要么乱码,要么会出现重复,有没大佬解答一下
我测试了这个会重复输出,有没大佬帮我修正一下
@echo off
(for /f "delims=" %%i in ('dir /b *.txt') do (type "%%i"&echo,) 9>>%%a)>result.txt 2>nul
::此处的 9>>%%a 是用句柄冲突产生的错误代替 if 对文件进行逻辑判断,仅在当前文件不为 result.txt 时执行 type,用这个生僻用法的目的是提高运行效率
复制代码
作者: 厌世师 时间: 2021-5-1 10:28
我希望的效果是:
1
2
3
A
B
C
多个文件批量合并到,不是一两个文件,谢谢
作者: 厌世师 时间: 2021-5-1 10:51
[code]@echo off
(for /f "delims=" %%i in ('dir /b *.txt') do (type "%%i"&echo,) 9>>%%a)>result.txt 2>nul
::此处的 9>>%%a 是用句柄冲突产生的错误代替 if 对文件进行逻辑判断,仅在当前文件不为 result.txt 时执行 type,用这个生僻用法的目的是提高运行效率
复制代码
作者: 厌世师 时间: 2021-5-1 10:52
for %%i in (*.txt) do (type "%%i"&echo,)>"%%~ni.temp"
copy *.temp result.txt
del /a /q *.temp
作者: newswan 时间: 2021-5-1 11:14
本帖最后由 newswan 于 2021-5-1 11:16 编辑
- for %%a in (*.txt) do (
- more %%a >>all
- )
- ren all all.txt
复制代码
作者: 厌世师 时间: 2021-5-1 14:38
回复 5# newswan
牛的,谢谢
作者: 厌世师 时间: 2021-5-1 14:56
回复 5# newswan
兄弟,你之个小文件能用,大一点就直接卡住了呀,我的文件十几个G运行不了,能不能优化一下呀
作者: went 时间: 2021-5-1 15:26
处理大文件,末尾添加换行符,按二进制合并
假定原文件末尾都没有换行符,如果有则会多出一个空行- @echo off & cd /d "%~dp0"
- echo.添加换行符
- for %%i in (*.txt) do (
- echo %%i
- echo.>>"%%i"
- )
- echo -----------------------
- echo.合并文件
- copy /b *.txt data
- echo -----------------------
- move /y "data" "data.txt"
- pause&exit
复制代码
作者: 厌世师 时间: 2021-5-1 16:46
回复 8# went
实测可以使用,但没第一个好,第一个换行是紧接上一个文本内容,这个会多换一行,而且同一个文件里面多次测试会叠加换行符,谢谢了凑合用一下
作者: newswan 时间: 2021-5-1 17:33
本帖最后由 newswan 于 2021-5-1 17:53 编辑
回复 7# 厌世师
more 的性能不高,要么换 powershell 试试?- powershell -c "Get-ChildItem *.txt | foreach-object -process{ Get-Content $_.fullname | out-file -append all }"
复制代码
作者: newswan 时间: 2021-5-1 18:47
或者,修正每个文件,让文件以换行符结束
作者: cutebe 时间: 2021-5-1 19:31
论坛下载三工具gawk.exe- gawk "{print $0}" *.txt>newfile.inf
- ren newfile.inf newfile.txt
复制代码
作者: 1152 时间: 2021-5-2 09:54
本帖最后由 1152 于 2021-5-3 11:00 编辑
回复 1# 厌世师
代码1复制代码
b.txt最后一行要加回车
代码2- copy a.txt+b.txt c.txt
- del b.txt
- ren c.txt b.txt
复制代码
作者: Batcher 时间: 2021-5-3 11:32
回复 10# newswan
more命令不是性能不高的问题,而是它无法处理超过6万多行的文件。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |