本帖最后由 zm900612 于 2011-6-12 15:26 编辑
楼主代码出错是因为tokens值上限为31,也许可以这样:- @echo off&setlocal enabledelayedexpansion
- :again
- (for %%1 in (a b) do (
- for /f "tokens=1-25*delims=\" %%a in (%%1.txt) do (
- for %%2 in (
- %%a %%b %%c %%d %%e %%f %%g %%h
- %%i %%j %%k %%l %%m %%n %%o %%p
- %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z
- ) do (
- set /a %%1+=1000001
- echo>>$!%%1:~-6!.txt %%2
- )
- echo;>%%1.txt %%z
- )
- ))>tmp.txt
- ::每次读取a与b的前25列到以其列数为名的临时文件,并把第26与之后的列输出到原文件中,以便下次分隔
- for /f %%a in (a.txt b.txt) do goto :again
- ::若还存在未分割的列,则继续分割
- copy /b $*.txt 合并.txt
- ::合并临时文件
- del /q $*.txt
- pause
复制代码
|