标题: [文本处理] [已解决]修改BAT:按自然顺序合并文本 [打印本页]
作者: 思想之翼 时间: 2013-11-11 21:33 标题: [已解决]修改BAT:按自然顺序合并文本
下述代码按1 10 100 ...顺序合并文本,欲按1 2 3...顺序合并文本,代码如何修改?
另:若将文本序号改为001 002 003... 似乎可以按自然顺序合并,但是下述代码却出错。欲使之正常运行,代码如何修改?- @echo off
- setlocal enabledelayedexpansion
- for /f %%i in ('dir/b/on *.txt') do (
- set/a n+=1
- set m=
- for /f "tokens=*" %%j in ('type "%%i"') do (
- set/a m+=1
- set #!n!!m!=%%j))
- (for /l %%i in (1,1,%m%) do (
- for /l %%j in (1,1,%n%) do (
- call echo !#%%j%%i!)))>a.txt
- start a.txt
复制代码
作者: terse 时间: 2013-11-12 00:18
前提是你的文件名有规律吗
是1.txt-100.txt 这样吗?还是有其他的
作者: foxJL 时间: 2013-11-12 09:53
- @echo off
- for /f %%i in ('dir /b *.txt') do (type %%i>>a.txt)
- pause
复制代码
作者: 1270697389 时间: 2013-11-12 12:56
本帖最后由 foxJL 于 2013-11-12 14:13 编辑
- @echo off
- for /f %%i in ('dir /b/od *.txt') do (type %%i>>a.txt)
- pause
复制代码
我也来一个,这个是按时间顺序排列的。
作者: 思想之翼 时间: 2013-11-13 14:21
回复 2# terse
有规律:1 2 3 4 ...或者w1 w2 w3...但不是两者混杂
作者: apang 时间: 2013-11-13 18:35
假设文件名:1.txt,2.txt,3.txt,一直到100.txt- @echo off&setlocal enabledelayedexpansion
- set "end=100"
- for /l %%i in (1 1 %end%) do (
- set "m="
- for /f "delims=" %%a in ('type "%%i.txt"') do (
- set /a m+=1
- set "#%%i#!m!=%%a"
- )
- )
- (for /l %%i in (1 1 !m!) do (
- for /l %%j in (1 1 %end%) do echo,!#%%j#%%i!
- ))>Result.txt
- pause
复制代码
作者: terse 时间: 2013-11-13 20:02
本帖最后由 terse 于 2013-11-13 20:04 编辑
- @echo off
- For /f %%i in ('dir /b *.txt ^|find /c /v ""') do set n=%%i
- (For /L %%i in (1,1,%n%) do type "%%i.txt")>Result.txt
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |