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

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

TOP

返回列表