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

[文本处理] [已解决]修改BAT:按自然顺序合并文本

下述代码按1 10 100 ...顺序合并文本,欲按1 2 3...顺序合并文本,代码如何修改?
另:若将文本序号改为001 002 003... 似乎可以按自然顺序合并,但是下述代码却出错。欲使之正常运行,代码如何修改?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('dir/b/on *.txt') do (
  4. set/a n+=1
  5. set m=
  6. for /f "tokens=*" %%j in ('type "%%i"') do (
  7. set/a m+=1
  8. set #!n!!m!=%%j))
  9. (for /l %%i in (1,1,%m%) do (
  10. for /l %%j in (1,1,%n%) do (
  11. call echo !#%%j%%i!)))>a.txt
  12. start a.txt
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 terse 于 2013-11-13 20:04 编辑
  1. @echo off
  2. For /f %%i in ('dir /b *.txt ^|find /c /v ""') do set n=%%i
  3. (For /L %%i in (1,1,%n%) do type "%%i.txt")>Result.txt
  4. pause
复制代码
1

评分人数

TOP

假设文件名:1.txt,2.txt,3.txt,一直到100.txt
  1. @echo off&setlocal enabledelayedexpansion
  2. set "end=100"
  3. for /l %%i in (1 1 %end%) do (
  4.     set "m="
  5.     for /f "delims=" %%a in ('type "%%i.txt"') do (
  6.         set /a m+=1
  7.         set "#%%i#!m!=%%a"
  8.     )
  9. )
  10. (for /l %%i in (1 1 !m!) do (
  11.     for /l %%j in (1 1 %end%) do echo,!#%%j#%%i!
  12. ))>Result.txt
  13. pause
复制代码
1

评分人数

TOP

回复 2# terse

有规律:1 2 3 4 ...或者w1 w2 w3...但不是两者混杂

TOP

本帖最后由 foxJL 于 2013-11-12 14:13 编辑
  1. @echo off
  2. for /f %%i in ('dir /b/od *.txt') do (type %%i>>a.txt)
  3. pause
复制代码
我也来一个,这个是按时间顺序排列的。
1

评分人数

    • 思想之翼: 感谢帮助。标注:此为文本内数据大小顺序技术 + 1
初九的冬天

TOP

  1. @echo off
  2. for /f %%i in ('dir /b *.txt') do (type %%i>>a.txt)
  3. pause
复制代码
1

评分人数

    • 思想之翼: 感谢帮助。标注:此为001 002 003 ...顺序技术 + 1

TOP

前提是你的文件名有规律吗
是1.txt-100.txt 这样吗?还是有其他的

TOP

返回列表