标题: [文本处理] 批量合并多个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
- @echo off
- for /f %%a in ('dir /b *.txt') do (
- for /f %%b in (%%a) do (
- echo %%~na %%b>>合并.txt
- )
- )
- 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# 晓瑜 - @echo off
- for /f %%a in ('dir /b *.txt') do (
- for /f "delims=" %%b in (%%a) do (
- echo %%~na %%b>>合并.txt
- )
- )
- 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# 晓瑜
那你能不能一次说清楚?- @echo off
- for /f %%a in ('dir /b *.txt') do (
- for /f "skip=3 delims=" %%b in (%%a) do (
- echo %%~na %%b>>合并.txt
- )
- )
- pause
复制代码
作者: 晓瑜 时间: 2017-11-27 18:11
回复 12# Blitz
这是另外一个文件夹,我是第一次接触,弄完一个做下个时候才发现文件内容不一样,不好意思,麻烦您了,谢谢,
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |