标题: [文件操作] [已解决]批处理命令copy合并多个txt文件时如何自动换行? [打印本页]
作者: shuzai 时间: 2012-1-12 23:47 标题: [已解决]批处理命令copy合并多个txt文件时如何自动换行?
本帖最后由 shuzai 于 2012-1-17 23:07 编辑
我用复制代码
合并多个文本文件
但是发现合并后的文件中,前面一个txt文件的内容末尾处就是紧接着是后一个文件的文件起始内容
希望可以让它自动换一行该如何操作
作者: ivor 时间: 2012-1-13 01:16
本帖最后由 ivor 于 2012-1-13 06:27 编辑
回复 1# shuzai
你新建一个文本NewLine..txt里面输入个回车或者一些明显的隔开符不就行了么
For Example:- copy 1.txt+NewLine.txt+2.txt+…… Target.txt
复制代码
作者: shuzai 时间: 2012-1-13 10:46
回复 2# ivor
因为要合并的文件数量起码成百上千,不能用 a.txt+b.txt... 这样的方式进行
作者: smily 时间: 2012-1-13 11:08
- @echo off
- setlocal enabledelayedexpansion
- set "a=enter.txt"
- for /f "delims=" %%i in ('dir /b *.txt') do (
- set a=!a!+tenter.txt+"%%i"
- )
- echo !a!
- copy !a! ..\tt.txt
- pause
复制代码
enter.txt 文件里面就是一个回车
作者: weichenxiehou 时间: 2012-1-13 18:59
- for %%i in (*.txt) do (type "%%i"&echo,)>"%%~ni.temp"
- copy *.temp result.txt
- del /a /q *.temp
复制代码
作者: CrLf 时间: 2012-1-14 01:03
本帖最后由 CrLf 于 2012-2-22 03:54 编辑
取巧的前提条件往往是苛刻的,如果硬要凑齐这个条件很可能得不偿失,这种时候不如改用笨办法。- @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,用这个生僻用法的目的是提高运行效率
复制代码
作者: shuzai 时间: 2012-1-14 12:28
大家的好方法~
作者: CrLf 时间: 2012-2-22 03:53
回复 8# soosa
多谢,当时没注意 result.txt 创建于 dir 之前,故容易出现错误,已修正。
作者: 潇洒人生 时间: 2014-9-18 23:17
回复 5# weichenxiehou
简单,明了,实用。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |