标题: [文本处理] 【已解决】BAT:如何将多个文本按特定规律合并 [打印本页]
作者: 思想之翼 时间: 2014-9-1 02:23 标题: 【已解决】BAT:如何将多个文本按特定规律合并
d:\文本\文本1\ 内有如下txt文本:
001_1.txt
001_2.txt
001_3.txt
001_4.txt
001_5.txt
001_6.txt
002_1.txt
002_2.txt
002_3.txt
002_4.txt
002_5.txt
002_6.txt
......
210_1.txt
210_2.txt
210_3.txt
210_4.txt
210_5.txt
210_6.txt
欲将
001_1 -- 001_6.txt 按4个文本为一组进行合并,共15个组合,合并后的文本分别命名为 001_1 -- 001_15.txt,写入d:\文本\文本2\
002_1 -- 002_6.txt 按4个文本为一组进行合并,共15个组合,合并后的文本分别命名为 002_1 -- 002_15.txt,写入d:\文本\文本2\
......
210_1 -- 210_6.txt 按4个文本为一组进行合并,共15个组合,合并后的文本分别命名为 210_1 -- 210_15.txt,写入d:\文本\文本2\
这样的代码如何写?
若6个文本按3个文本为一组进行合并,共20个组合,上述代码修改哪里?
若6个文本按5个文本为一组进行合并,共6个组合,上述代码修改哪里?
作者: terse 时间: 2014-9-1 19:32
- @echo off&setlocal enabledelayedexpansion
- set /a m=3,j=1,i=1
- for /l %%i in (1,1,6) do (
- if %%i gtr !m! (
- set /a "s=!s!0,i*=%%i,j*=(%%i-m)"
- )else set "s=1!s!"
- )
- set s=0!s!&set /a i/=j
- for /l %%i in (1 1 !i!) do (
- for /l %%j in (1 1 6) do (
- if "!s:~%%j,1!" == "1" set "$%%i=!$%%i!:%%j.txt"
- )
- for /f %%j in ("!s:10= !") do set "j=%%j"
- set s=0!j:0=!!j:1=!1!s:*10=!
- )
- pushd "d:\文本\文本1\"
- for /l %%a in (1,1 210) do (
- set str=00%%a
- for %%b in ("!str:~-3!") do (
- for /l %%i in (1 1 !i!) do (
- set "s=!$%%i:*:=!"
- set "s=%%~b_!s::=+%%~b_!"
- copy /b !s! "..\文本2\%%~b_%%i.txt" >nul
- )
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |