找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 63078|回复: 9

[文件操作] [已解决]批处理命令copy合并多个txt文件时如何自动换行?

[复制链接]
发表于 2012-1-12 23:47:23 | 显示全部楼层 |阅读模式
本帖最后由 shuzai 于 2012-1-17 23:07 编辑

我用
  1. copy  *.txt  合并文件.txt
复制代码
合并多个文本文件
但是发现合并后的文件中,前面一个txt文件的内容末尾处就是紧接着是后一个文件的文件起始内容
希望可以让它自动换一行该如何操作

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-1-13 01:16:04 | 显示全部楼层
本帖最后由 ivor 于 2012-1-13 06:27 编辑

回复 1# shuzai


    你新建一个文本NewLine..txt里面输入个回车或者一些明显的隔开符不就行了么

For Example:
  1. copy 1.txt+NewLine.txt+2.txt+…… Target.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-1-13 10:46:11 | 显示全部楼层
回复 2# ivor


    因为要合并的文件数量起码成百上千,不能用 a.txt+b.txt... 这样的方式进行
发表于 2012-1-13 11:08:53 | 显示全部楼层

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "a=enter.txt"
  4. for /f "delims=" %%i in ('dir /b *.txt') do (
  5. set a=!a!+tenter.txt+"%%i"
  6. )
  7. echo !a!
  8. copy !a! ..\tt.txt
  9. pause
复制代码
enter.txt 文件里面就是一个回车

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

发表于 2012-1-13 18:59:53 | 显示全部楼层

  1. for %%i in (*.txt) do (type "%%i"&echo,)>"%%~ni.temp"
  2. copy *.temp result.txt
  3. del /a /q *.temp
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

发表于 2012-1-14 01:03:11 | 显示全部楼层
本帖最后由 CrLf 于 2012-2-22 03:54 编辑

取巧的前提条件往往是苛刻的,如果硬要凑齐这个条件很可能得不偿失,这种时候不如改用笨办法。
  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b *.txt') do (type "%%i"&echo,) 9>>%%a)>result.txt 2>nul
  3. ::此处的  9>>%%a 是用句柄冲突产生的错误代替 if 对文件进行逻辑判断,仅在当前文件不为 result.txt 时执行 type,用这个生僻用法的目的是提高运行效率
复制代码
 楼主| 发表于 2012-1-14 12:28:15 | 显示全部楼层
大家的好方法~
发表于 2012-2-22 03:53:01 | 显示全部楼层
回复 8# soosa


    多谢,当时没注意 result.txt 创建于 dir 之前,故容易出现错误,已修正。
发表于 2014-9-18 23:17:33 | 显示全部楼层
回复 5# weichenxiehou
简单,明了,实用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 15:34 , Processed in 0.021895 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表