Board logo

标题: [文本处理] 批量合并多个TXT文件自动换行,把各文件名(不带后缀名)带入对应首列 [打印本页]

作者: 晓瑜    时间: 2017-11-23 11:35     标题: 批量合并多个TXT文件自动换行,把各文件名(不带后缀名)带入对应首列

请教大神,求实现如题的BAT代码,在网上搜索了好久,分开或者两两结合的功能都可以实现,但是三个都要达到的就没有了,需要的功能具体如下:
文件1: 文件名为“上海.txt”,内容为“11111”;
文件2:文件名为“北京.txt”,内容为“1234”;
文件3:文件名为“广州.txt”,内容为“123456”;
文件4:文件名为“深圳.txt”,内容为“888;
......
合并以后,想要实现的内容是:
上海 11111
北京 1234
广州 123456
深圳 888
......
作者: Blitz    时间: 2017-11-23 12:49

  1. @echo off
  2. for /f %%a in ('dir /b *.txt') do (
  3. for /f %%b in (%%a) do (
  4. echo %%~na %%b>>合并.txt
  5. )
  6. )
  7. pause
复制代码

作者: 晓瑜    时间: 2017-11-23 12:54

回复 2# Blitz

运行出来的结果丢了一列数据。原文件内容是2列的  合并后的文件还是2列,文件名为第一列,原文件的第1列则变成第2列,原第2列的内容没了
作者: Blitz    时间: 2017-11-23 13:06

回复 3# 晓瑜


    说清楚文件内容和你的要求
作者: 晓瑜    时间: 2017-11-23 13:11

回复 4# Blitz

    不好意思原文件由于涉及保密不能上传到网上,大致是这样的:
文件1: 文件名为“上海.txt”,内容为“111  111”;
文件2:文件名为“北京.txt”,内容为“12  34”;
文件3:文件名为“广州.txt”,内容为“123  456”;
文件4:文件名为“深圳.txt”,内容为“888  888;
......
合并以后想要生成的文件内容需要是:
上海 111  111
北京 12  34
广州 123  456
深圳 888  888
......
作者: 晓瑜    时间: 2017-11-23 13:13

回复 5# 晓瑜


    上面代码运行完以后,得到的结果是:
上海 111
北京 12
广州 123
深圳 888
......

原文件中的第2列没了
作者: Blitz    时间: 2017-11-23 13:14

回复 5# 晓瑜
  1. @echo off
  2. for /f %%a in ('dir /b *.txt') do (
  3. for /f "delims=" %%b in (%%a) do (
  4. echo %%~na %%b>>合并.txt
  5. )
  6. )
  7. pause
复制代码

作者: 晓瑜    时间: 2017-11-23 13:18

回复 7# Blitz


      可以了  太牛了   万分感谢
作者: 晓瑜    时间: 2017-11-23 14:48

回复 7# Blitz


    大神您好,还要麻烦您帮忙设计个代码。如果在包含以上需求的同时,还需要删除每个TXT文件的前3行然后进行合并,
作者: Blitz    时间: 2017-11-23 16:00

回复 9# 晓瑜


    没明白你的意思
作者: 晓瑜    时间: 2017-11-23 17:28

回复 10# Blitz


    是这样的 每个TXT文件的前三行数据都是文字,从第4行开始才是数据,我要合并的是每个文件中的数据,所以合并时候要把前3行删掉,其他还是需要把文件名称放到首列,文件和文件之间换行
作者: Blitz    时间: 2017-11-23 17:36

回复 11# 晓瑜


    那你能不能一次说清楚?
  1. @echo off
  2. for /f %%a in ('dir /b *.txt') do (
  3. for /f "skip=3 delims=" %%b in (%%a) do (
  4. echo %%~na %%b>>合并.txt
  5. )
  6. )
  7. pause
复制代码

作者: 晓瑜    时间: 2017-11-27 18:11

回复 12# Blitz

这是另外一个文件夹,我是第一次接触,弄完一个做下个时候才发现文件内容不一样,不好意思,麻烦您了,谢谢,




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