Board logo

标题: [文本处理] 如何用批处理合并多个文本文件 [打印本页]

作者: snowsilent    时间: 2009-8-24 15:58     标题: 如何用批处理合并多个文本文件

合并*.txt文件时,将这些文件都追加到origin.txt中(origin.txt之前为空),但我这段代码有个问题,就是把已经生成的正确的origin.txt又追加到origin.txt一次,如何修改代码解决这个问题呢?

if exist d:\test1\tmp\origin.txt. (del d:\test1\tmp\origin.txt.)
for /r d:\test1\tmp\ %%i in (*.txt) do (
type %%i >>d:\test1\tmp\origin.txt
@echo merging with %%i
)
作者: januapr    时间: 2009-8-24 17:18

type %%i >>d:\test1\tmp\origin.txt
这里把origin.txt保存在非tmp目录下看看!
作者: more    时间: 2009-8-24 18:18

加一个是否为origin.txt的判断...
作者: terse    时间: 2009-8-24 18:29

这样不行吗?
  1. copy /a "d:\test1\tmp\*.txt" "d:\test1\tmp\origin.txt"
复制代码

作者: Seter    时间: 2009-8-24 18:50

楼上的估计不行....
  1. if exist d:\test1\tmp\origin.txt. (del d:\test1\tmp\origin.txt.)
  2. for /r d:\test1\tmp\ %%i in (*.txt) do (
  3. if "%%i" neq "d:\test1\tmp\origin.txt" (
  4. type %%i >>d:\test1\tmp\origin.txt
  5. @echo merging with %%i
  6. )
  7. )
复制代码
没试过...感觉应该可以..思路和3楼的MORE大大说的一样!
作者: zqz0012005    时间: 2009-8-24 20:16

直接用copy合并不行吗?

循环过程中有新文件生成时,for 直接遍历文件有bug,最好用for /f 解析 dir 的输出。
作者: terse    时间: 2009-8-24 20:28

原帖由 Seter 于 2009-8-24 18:50 发表
楼上的估计不行....if exist d:\test1\tmp\origin.txt. (del d:\test1\tmp\origin.txt.)
for /r d:\test1\tmp\ %%i in (*.txt) do (
if "%%i" neq "d:\test1\tmp\origin.txt" (
type %%i >>d:\test1\tmp\origin.t ...

COPY 为什么不行呢?
如要每个文件都IF 还真不如 for /f 里面 dir 出来
作者: Lumiere    时间: 2009-8-24 21:52     标题: 回复 1楼 的帖子

that is because you created origin.txt in the directory where your code is searching for all txt files.  Try substitute the following lines for your code.
  1. if exist d:\test1\tmp\origin.txt. (del d:\test1\tmp\origin.txt.)
  2. for /r d:\test1\tmp\ %%i in (*.txt) do (
  3. type %%i >>d:\origin.txt
  4. @echo merging with %%i
  5. )
复制代码

作者: canyuexiaolang    时间: 2009-8-25 10:02

我觉得用COPY可以呀,
还有种没试过
  1. @echo off
  2. for /f %%i in (1.txt) do set a=%%i
  3. echo %a%>origin.txt
  4. for /f %%l in (2.txt) do set b=%%l
  5. echo %b%>>origin.txt
  6. for /f %%m in (3.txt) do set c=%%m
  7. echo %c%>>origin.txt
复制代码

作者: canyuexiaolang    时间: 2009-8-25 10:04

试了下
好象不可以
再让人改改
看看可不可以
作者: snowsilent    时间: 2009-8-25 10:09

用2楼的方法将origin换了一个保存目录,就不会重复加了。也许要比在同一个目录下加判断条件简单。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2