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

[文本处理] 批处理如何将多个以数字命名的txt文本按文件名递增顺序进行行行对应合并

本帖最后由 pcl_test 于 2016-9-29 07:45 编辑

老师们求赐教txt文档按数字序列文件名进行合并方法
我这里有上万个txt文档,命名规则是1.txt,2.txt...,举例如下:
1.txt              2.txt
step data      step  data
1      0.1         1    0.2
2      0.3         2    0.4
3      0.5         3    0.6

我希望的结果是:
all.txt
step  data    step data  
1      0.1         1    0.2
2      0.3         2    0.4
3      0.5         3    0.6
论坛里面有关于类似的合并方法,但是合并的排序方式是1,10,11,12……19,2,20,21……这种。我想要的合并排序是按照自然数序列,也就是1,2,3,……这种。求各位老师不吝赐教,感激不尽。把第一种排序合并的方式放在下面:

@echo off&setlocal enabledelayedexpansion
if exist merge.txt  del merge.txt
for /f "delims=" %%i in ('dir/b/a-d/on *.txt')do (set "n=0"
for /f "delims=" %%j in ('type "%%i"')do (
   set/a n+=1&call set "#!n!=%%#!n!%%%%j "))
:re
set/a n+=1
if defined #!n! goto re
set/a n-=1
(for /L %%h in (1,1,%n%)do set #%%h=!#%%h:~,-1!&echo.!#%%h!)>merge.txt
start merge.txt
1

评分人数

文件多大,行数有多少,文件的行数是是否都一样。这个信息挺关键的。如果文件小。用python之类的语言一次性读进内存再进行合并处理,逻辑会很简单。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

如果是批的话,一般都有性能限制的,你这上万个具体是多少个?
会员联盟,周末科技

TOP

回复 2# codegay

每个txt文件是由两列构成,单独一个txt文本的行数不超过1000行,每500个txt的行数都是一样的,所以可以分组来合并。老师求指点如何按照自然数序列进行合并吧,非常感谢

TOP

回复 3# 诗歌王位

可以分成每组500个文本进行合并,希望老师能指点一下

TOP

生成1。。500拼成文件名就好了。不用排序
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 pcl_test 于 2016-9-29 09:02 编辑

1、第三方sort       http://www.bathome.net/s/tool/index.html?key=sort
  1. dir /a-d/b *.txt|sort -n
复制代码
2、powershell
  1. powershell -c "dir [0-9]*.txt|sort {[int]$_.basename}|%%{$_.name}"
复制代码
3、先统一文件名位数,如000001.txt、000002.txt、000003.txt……

TOP

本帖最后由 hlzj88 于 2016-9-30 06:11 编辑

我处理这个问题采用的方法是  文件名+1000000000,然后type

你这个问题可能是 不仅文件名要按顺序,而且内容也要按顺序,后面的我搞会麻烦些,没有时间。
目的,学习批处理

TOP

返回列表