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

[文本处理] [已解决]BAT批处理怎样合并多个单列txt到一个txt?

本帖最后由 gottjie 于 2014-1-5 09:08 编辑

比如
1.txt里
1
2
3
2.txt里
4
5
6
3.txt里
7
8
9
合并文件为
1 4 7
2 5 8
3 6 9
就这样每个文件都是一列 最后合并完 这些列都到一个文件里面了

多谢了!!!

回复  gottjie
DAIC 发表于 2014-1-1 17:33



    多谢

TOP

回复 7# gottjie
  1. @echo off
  2. type nul >merge.dat
  3. for %%i in (*.txt) do (
  4.     paste -d " " merge.dat "%%i" >merge.tmp
  5.     type merge.tmp >merge.dat
  6. )
复制代码

TOP

十万行? 好像超出批处理的变量数上限了,而且处理时间超长~~
建议用2个文本先试试。


只要这一句改一下,从100000起,把max 设为100000+文本最大行
假设文本最大行为15w行,即是从 100000开始,每次加1,循环到100000+150000
改动如下:
for /l %%b in (100000 1 250000) do ....

TOP

回复 11# caruko

多余10000万行 就不行了 果断用excel编辑了 多谢大神指点 这段命令处理较少行数还是很犀利的!!!学习了

TOP

十万行? 好像超出批处理的变量数上限了,而且处理时间超长~~
建议用2个文本先试试。


只要这一句改一下,从100000起,把max 设为100000+文本最大行
假设文本最大行为15w行,即是从 100000开始,每次加1,循环到100000+150000
改动如下:
for /l %%b in (100000 1 250000) do ....

TOP

十万行? 好像超出批处理的变量数上限了,而且处理时间超长~~
建议用2个文本先试试。


只要这一句改一下,从100000起,把max 设为100000+文本最大行
假设文本最大行为15w行,即是从 100000开始,每次加1,循环到100000+150000
改动如下:
for /l %%b in (100000 1 250000) do ....

TOP

回复 8# caruko

多谢了哥们 我再问下如果我有几百个文件 每个文件有大概十万行 该怎么改

set  max=10000

这样行么

TOP

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. ::设置最大行数1000,可自己修改
  4. set  max=100
  5. set /a max+=10000
  6. ::设置分隔符,默认"," 可自己修改
  7. set "fg=,"
  8. for %%a in (*.txt) do (
  9.      (for /l %%b in (10000 1 %max%) do set /p #%%b=) <"%%~a"
  10. for /l %%b in (10000 1 %max%) do set "@%%b=!@%%b!%fg%!#%%b!"
  11. )
  12. ::默认输出CSV格式,用EXCEL打开,也可记事本打开
  13. (for /f "tokens=1* delims==" %%a in ('set @') do echo,%%b) > all.csv
复制代码

TOP

回复 6# DAIC


    是的 这些文件都只有一列 330个文件共330列 放在一个文件里 就是这个意思

TOP

回复 5# gottjie


    最终结果会有330列,是这个意思么?

TOP

回复 4# DAIC


    330个

TOP

回复 3# gottjie


    多少个?

TOP

DAIC 发表于 2014-1-1 11:31


哥们 如果是多个文件该怎么办啊?
多谢了!!!

TOP

  1. paste -d " " 1.txt 2.txt 3.txt > 4.txt
复制代码

TOP

返回列表