[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

  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
复制代码

TOP

回复 2# Blitz

运行出来的结果丢了一列数据。原文件内容是2列的  合并后的文件还是2列,文件名为第一列,原文件的第1列则变成第2列,原第2列的内容没了

TOP

回复 3# 晓瑜


    说清楚文件内容和你的要求

TOP

回复 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
......

TOP

回复 5# 晓瑜


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

原文件中的第2列没了

TOP

回复 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
复制代码
1

评分人数

TOP

回复 7# Blitz


      可以了  太牛了   万分感谢

TOP

回复 7# Blitz


    大神您好,还要麻烦您帮忙设计个代码。如果在包含以上需求的同时,还需要删除每个TXT文件的前3行然后进行合并,

TOP

回复 9# 晓瑜


    没明白你的意思

TOP

回复 10# Blitz


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

TOP

回复 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
复制代码

TOP

回复 12# Blitz

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

TOP

返回列表